/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
Gcc og core dump
Fra : Sam


Dato : 11-09-03 18:30


Hi alle,

Jeg er C++ programmer, men helt nye I UNIX og gcc. Jeg får fejl og core dump
når jeg kompilere min kod.

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.

Tak på forhånd Sam



 
 
Kent Friis (11-09-2003)
Kommentar
Fra : Kent Friis


Dato : 11-09-03 21:46

Den Thu, 11 Sep 2003 10:30:16 -0700 skrev Sam:
>
>Hi alle,
>
>Jeg er C++ programmer, men helt nye I UNIX og gcc. Jeg får fejl og core dump
>når jeg kompilere min kod.

Sandsynligvis en pointer-fejl.

>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.

-g giver debug-informationer. Så kan du bruge debuggeren til at finde
fejlen, det nemmeste er nok at loade core-filen i debuggeren og så lave
en backtrace.

Mvh
Kent
--
Indlæringskurven til Linux er stejl, til tider lodret... Men for katten
hvor er udsigten på toppen dog fantastisk
- Michael G. Vendelbo i dk.snak

Peter Jensen (11-09-2003)
Kommentar
Fra : Peter Jensen


Dato : 11-09-03 22:09

Sam wrote:

> Jeg får fejl og core dump når jeg kompilere min kod.

Sig venligst at jeg læser det dér forkert. Laver *gcc* en core dump når
du kompilerer koden? Eller er det din egen kode der fejler når den
bliver kørt?

--
PeKaJe

"Ask not what A Group of Employees can do for you. But ask what can All
Employees do for A Group of Employees." -- Mike Dennison

Sam (12-09-2003)
Kommentar
Fra : Sam


Dato : 12-09-03 04:45

Der er fejl i min egen program, men jeg ved ikke hvordan kan jeg finde
fejlen via gcc.
I Visual C eller Borland kan man hurtig see hvad og hvor fejlen er.
Ved ikke om det er mulight i gcc.

"Peter Jensen" <jdogh001@sneakemail.com> wrote in message
news:3f60e487$0$13153$edfadb0f@dread15.news.tele.dk...
> Sam wrote:
>
> > Jeg får fejl og core dump når jeg kompilere min kod.
>
> Sig venligst at jeg læser det dér forkert. Laver *gcc* en core dump når
> du kompilerer koden? Eller er det din egen kode der fejler når den
> bliver kørt?
>
> --
> PeKaJe
>
> "Ask not what A Group of Employees can do for you. But ask what can All
> Employees do for A Group of Employees." -- Mike Dennison



guppy (12-09-2003)
Kommentar
Fra : guppy


Dato : 12-09-03 07:57

Brug gdb, eller hvis du foretrækker det grafisk Insight
(http://sources.redhat.com/insight/) - fås både til windows og div. linux
varianter
"Sam" <sam_cph2300@yahoo.com> wrote in message
news:3f616b3e$0$24623$edfadb0f@dread14.news.tele.dk...
> Der er fejl i min egen program, men jeg ved ikke hvordan kan jeg finde
> fejlen via gcc.
> I Visual C eller Borland kan man hurtig see hvad og hvor fejlen er.
> Ved ikke om det er mulight i gcc.
>
> "Peter Jensen" <jdogh001@sneakemail.com> wrote in message
> news:3f60e487$0$13153$edfadb0f@dread15.news.tele.dk...
> > Sam wrote:
> >
> > > Jeg får fejl og core dump når jeg kompilere min kod.
> >
> > Sig venligst at jeg læser det dér forkert. Laver *gcc* en core dump når
> > du kompilerer koden? Eller er det din egen kode der fejler når den
> > bliver kørt?
> >
> > --
> > PeKaJe
> >
> > "Ask not what A Group of Employees can do for you. But ask what can All
> > Employees do for A Group of Employees." -- Mike Dennison
>
>



Bo Lorentsen (13-09-2003)
Kommentar
Fra : Bo Lorentsen


Dato : 13-09-03 19:42

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


Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408924
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste