Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Errore: Segmentation Fault

    Ciao a tutti!!!
    Ho un problema che mi sta facendo impazzire!!!
    In pratica devo compilare ed eseguire un programma...è un progeto in fase di costruzione di un compilatore....e mi da il seguente errore:

    /bin/CompilatoreProgetto.bin: line 1: 9130 Segmentation fault

    La cosa assurda è ke a ad un mio collega, lo stesso e identico codice va...e a me no!!
    Ah...dimenticavo....ho Ubuntu Hardy 8.04 e compilo cn g++

    VI PREGO AIUTATEMIIIIII...!!!!

    Vi posto la parte di copice che mi da problemi:

    #include <FlexLexer.h>
    #include <iostream>
    #include <algorithm>
    #include <stdlib.h>
    #include "token.hh"
    #include "analyzer.hh"
    #include "countOccurrences.hh"
    #include "identifiers_table.h"

    using namespace std;

    int main( int /* argc */, char** /* argv */ ){

    Analyzer* lexer = new Analyzer(&cin,&cerr);
    try {
    while(lexer->yylex() != 0)
    identifiers_table symbols(lexer->getTokenList());
    if(symbols.errors.empty()==false){
    throw symbols.errors;
    }
    }
    catch (list<ParserError> errors) {
    list<ParserError>::iterator i = errors.begin();
    for(;i!=errors.end();i++){ //Scorro la lista di errori e li stampo a video
    cerr << (*i) << endl;
    }
    }
    delete lexer;
    return 0;
    }

    GRAZIE IN ANTICIPO A TUTTI!

  2. #2
    Ormai il progetto di MARTINI si fa su HTML!!

    L'errore che ottieni e causato da un indirizzo di memoria sbagliato, puo essere un accesso non consentito, comunque il problema sta su un puntatore (presumo)!

    Nel mai che hai postato non c'è un errore di questo tipo... controlla meglio gli altri file, dove usi i puntatori e l'allocazione dinamica della memoria!

  3. #3

    Re: Segmentation fault

    No no....ho controllato...nn mi sembra che ci sia nessun errore!!
    Comunque al mio collega, lo stesso e identico programma va bene!
    Ho letto su vari forum che bisognerebbe allocare la memoria tramite funzioni malloc, callog e cose varie....ho provato ma niente da fare....sempre lo stesso problema!

  4. #4
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381

    Re: Re: Segmentation fault

    Originariamente inviato da Acciues

    Ho letto su vari forum che bisognerebbe allocare la memoria tramite funzioni malloc, callog e cose varie...
    Falso. In C++ si usano new e delete per la gestione della memoria.

    A me sembra strano quel catch. In genere il paramento è un reference non una copia.

    catch (list<ParserError>& errors)

    Però come dice PeppePes88 il problema è sicuramente un puntatore su cui si fa una doppia delete.

  5. #5
    le funzioni malloc calloc free realloc sono le funzioni per gestire la memoria dinamica in c! I c++ bastano e avanzano new e delete..

    Bo io ricontrolato ora il main! ma a me sembra correto... Spera che ti possa aiutare qualcuno piu di me! symbols.errors e una lista che contiene Parser error che quindi viene caturata dal cacth di sotto??

  6. #6
    1. Non puoi avviarlo con gdb così magari ci dai più informazioni ?
    2. Identazione e tag CODE
    3. Non è detto che il problema sia nel codice che hai postato, sei sicuro che per ogni new ci sia una delete, e che gli array non escano mai dai loro limiti ?
    4. Usa gli smart pointers se vuoi avere meno problemi.

  7. #7
    Bo io ricontrolato ora il main! ma a me sembra correto... Spera che ti possa aiutare qualcuno piu di me! symbols.errors e una lista che contiene Parser error che quindi viene caturata dal cacth di sotto??
    Le doppie non si pagano a parte...
    "Se riesci a passare un pomeriggio assolutamente inutile in modo assolutamente inutile, hai imparato a vivere."

  8. #8

    RISOLTO!!

    Perfetto ragazzi!!!
    Ho risolto...era un puntatore che nn avanzavo! Adesso tutto ok!
    Vi ringrazio per la disponibilità!
    Ciao!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.