Debugg Hilfen ?
-
Hallo,
Ich habe ein Programm(C Quellcode), das zu weiten Teilen nicht von mir ist,
und dieses muss ich eben zum laufen bringen. (GCC auf Windows (Cygwin))
Compilieren lässt es sich zwar aber das Programm schein eindeutig noch Fehler zu haben (momentan eine Endlosschleife).
Beim ersten mal kam es auch zu einem sofort Absturz (leider weiß ich genaue Fehlermeldung nicht mehr) da gabs dann auch ein *.stackdump-file.Jetzt wollt ich mal wissen obs irgendwelche Hilfsprogramme zum Debuggen gibt, die einem zB helfen dieses *.stackdump-file zu lesen/entschlüsseln.
Exception: STATUS_ACCESS_VIOLATION at eip=004023B9 eax=00233000 ebx=00000B30 ecx=00000008 edx=00021E30 esi=0020F910 edi=0020F8C0 ebp=0020F7D8 esp=0020F7C0 program=E:\Programme\cygwin\home\USER\Code\program.exe, pid 3788, thread main cs=001B ds=0023 es=0023 fs=003B gs=0000 ss=0023 Stack trace: Frame Function Args 0020F7D8 004023B9 (0022CCDC, 0022CCC4, 00211140, 0020F910) 0022CCE8 004039C0 (00000001, 6116B690, 00660090, 0022CC70) 0022CD98 610060D8 (00000000, 0022CDD0, 61005450, 0022CDD0) 61005450 61004416 (0000009C, A02404C7, E8611021, FFFFFF48) 65 [main] program 3788 _cygtls::handle_exceptions: Error while dumping state (probably corrupted stack)
oder wie man sonnst beim debuggen vorgehen kann.
Bin eigentlich kein/ kein C Programmierer, und hätte da eine einfache das "überall ausgaben einbauen und schauen wohin er überall kommt" Verfahren angewandt.
-
Du musst lediglich mit aktivierten Debuginformationen kompilieren und das ganze mit dem Debugger starten. Idealerweise benutzt du dafür eine IDE (ich würde Code::Blocks empfehlen).
Wenn jetzt wieder eine Zugriffsverletzung auftritt, hält der Debugger das Programm an, die IDE zeigt dir die exakte Codestelle, an der das Problem aufgetreten ist und du kannst dir den call stack und die Werte sämtlicher Variablen ansehen, um Hinweise auf die Ursache zu sammeln.
-
Nanyuki schrieb:
Du musst lediglich mit aktivierten Debuginformationen kompilieren und das ganze mit dem Debugger starten. Idealerweise benutzt du dafür eine IDE (ich würde Code::Blocks empfehlen).
Wenn jetzt wieder eine Zugriffsverletzung auftritt, hält der Debugger das Programm an, die IDE zeigt dir die exakte Codestelle, an der das Problem aufgetreten ist und du kannst dir den call stack und die Werte sämtlicher Variablen ansehen, um Hinweise auf die Ursache zu sammeln.das klingt ja direkt gut
aber letztesmal als ich Code::Blocks versucht hatte fand es den GCC nicht ..
dabei verwende ich ihn doch mit cygwin ...
oder soll cih ihn nochmal mit MinGW installieren (kommts da zu keinen konflickten ?)
würd ich dann zuhause heute Abend ausprobieren.was ich ganz vergessen habe zu fragen.
Das Programm soll nacher auch auf Linux kompilierbar sein.
worauf muss ich da achten?
bis jetzt habe ich hald auf die Header geachtet.
sprich es werden nur <stdio.h> und <stdlib.h> verwendet.
gibts irgendwelche befehle dich ich noch beachten muss ?