13. maj 2003 - 00:51
Der er
4 kommentarer og
1 løsning
dabugging af codedumps?
Hey E!
Mit C program giver nogle gange en Segmesion Fault (Core Dumped)
jeg har hørt at man kan "debugge" dem på en måde og finde de fejl der forsager dem..
Ville lige høre om det kan lade sig gøre?
et brugbart svar giver 30 point extra..
segmentation fejl forekommer når programmet forsøger at benytte lager der ikke er tildelt det, enten at programmet forsøger at hoppe til en ulovlig adresse eller at bruge data på en ulovlig adresse.
Det første forekommer vist kun ved function pointer det andet ved pointer eller indekserings fejl i arrays.
Typiske årsager til dette er uinitialiserede data/variable der bruges som pointer eller index og reele fejl i programmet, lad din compiler fortælle dig når det første er tilfældet.
Reele fejl er lidt sværere og kan evt. løses med en debugger, her skal du først lokalisere problem området ofte bare lad programmet køre og vente på crash, se hvor du er og så sætte nogle passende breakpoints. Nu skriver du at den laver core dump, så husker jeg dunkelt at man kan gå gdb til at lave en postmortem så sådan en karl og se hvor det gik galt, så start gdb op med programmet sætte nogle breakpoints og finde fejlen.
Breakpoints er steder hvor programmet skal afgive kontrollen til debuggeren så kan du undersøge programmets tilstand der.