Sam wrote:
>
> Jeg er C++ programmer, men helt nye I UNIX og gcc. Jeg får fejl og core dump
> når jeg kompilere min kod.
Herligt, så behøver du ikke bruge "ulimit"
> Jeg tænkte om der er nogle flag eller kommandoer i gcc, som gøre det muligt
> at see hvor fejlen læger og hvad fejlen er, det er håbløs hvis man kun får
> core dump uden at vide hvad fejlen er.
Når du får et core dump, har du for så vidt alle de informationer du
skal bruge, men det vil hjælpe hvis gcc includerede symbol informationer
i din kode (med mindre du tænker naturlligt i hex
. Hvis du ønsker
dette bruger du "-g" optionen til gcc under oversættelsen.
Herefter vil du når du kører programmet igen, få et nyt core dump (denne
gang med forståelige symbol navne), som du kan pusse gdb på.
Så hvis nu dit program, meget originalt, hedder "a.out" og du får et
coredump kan du skrive :
> gdb a.out core
Du får så en prompt efter at gdb har loaded dit programs symboler og
informationerne fra core dumpet. Her kan du skrive commandoen "bt" eller
"backtrace" som kommer med et total kalde stak fra starten af dit
program og indtil den opstået fejl. Dette plejer for det meste at være
nok for mig med mindre jeg koder tråde
Efter lidt kløen i nakken, og rettelse af fejlen i en editor, og en
recompilering (husk det nu
, kan du skrive commandoen "q" eller
"quit", som får gdb til at stoppe (her kræves flere vinduer).
gdb virker måske til at være et lidt primitivt værktøj, når man kommer
fra Windows verdenen, men tag ikke fejl af den, den er MEGET stærk !
Stort set alle grafiske debug værktøjer i Linux verdenen er baseret på gdb !
Håber dette kan bruges !
/BL