C++ SIGSEGV

Μάριος-Άγγελος Τριβυζάς invader at hol.gr
Thu Sep 12 17:09:01 EEST 2002


On Wednesday 11 September 2002 23:16, Nikos Kanellopoulos wrote:
> > Mporeis na steileis ton oso to dynato syntomotero kwdika poy na
> > paroysiazei ayto to problhma (mazi me ta minimum lex & yacc arxeia)?
> >
> > Ase poy me thn parapanw diadikasia mallon 8a breis to bug monos soy :)
>
> Δυστυχώς πρέπει να στείλω πάρα πολλά πράγματα για να μπορέσετε
> να μεταγλωττίσετε τον κώδικα.
>
> Δείτε όμως αυτό.
>
> -rw-rw-r--    1 nk       nk             30 Jul  5 08:20 5.txt
> -rw-rw-r--    1 nk       nk             30 Sep 10 21:51 file.txt
>
> ifstream myfile;
> myfile.open( "5.txt" /*path*/ );
>
> Και αυτό κάνει SIGSEGV!
> Και φυσικά, και δικαιώματα να μην υπήρχαν, αυτό δεν σημαίνει
> (Νίκο Μ.) ότι πρέπει να προκληθεί segmentation violation.
>
> Μήπως βλέπετε πρόβλημα στα headers:
> #include <fstream>
> #include <cstdlib>
> #include <cstring>
> #include <string>
> #include <cstdio>
> #include <cmath>
> #include <ctime>
> #include <cassert>
>
> Σ΄αυτά δεν βλέπω κάτι ύποπτο
> #include "program_data.h"
> #include "NKEsymtab.h"
> #include "y.tab.h"
> #include "commands.h"
> #include "error.h"
> #include "print.h"
>
>
> Παιδιά μην ασχολείστε άλλο. Κάποια στιγμή θα βρω τι φταίει.
> Προφανώς δεν μπορείτε να βοηθήσετε χωρίς τον πλήρη κώδικα.
> Κάτι ξεσκίζει την μνήμη σε άλλο σημείο και σκάει εδώ. Αφού
> όμως το path έχει σωστή τιμή, θέλει debugging σε assembly level
> (κάτι δεν μου άρεσε στην αντίστοιχη assembly, αλλά δεν ξέρω
> αρκετά από assembly)
>
>
> Αυτό δουλεύει:
>
> #include <fstream>
> #include <cstdio>
> #include <iostream>
>
> using namespace std;
>
> int main (int argc, char* argv[]) {
>         ifstream file ;
>         char str[20];
>
>         file.open (argv[1] );
>         file.getline(str, 20);
>         cout << str << endl;
> }

Δοκίμασε:  export MALLOC_CHECK_=1
και μετά τρέξε gdb για να δεις που ακριβώς χτυπάει.

-- 
Real programmers don't document; if it was
hard to write, it should be hard to understand.



More information about the Linux-greek-users mailing list