Josef Müller:
Hat jemand Erfahrung mit dem Debuggen von Pascal-Programmen in LINUX? Mir gelingt es nicht, mit dem Debugger den Inhalt von Variablen anzuzeigen.
Was nimmst du denn für einen Pascal-Compiler ? GNU-Pascal oder FreePascal ?
Die GNU-Variante sollte ordentliche Debugsymbole erzeugen und funkt AFAIK auch prima mit gdb, also dann auch mit DDD.
Bei der "OpenSource"-Software die von anderen Systemen kommt, wie NASM zum Beispiel, siehts mit den Debugsymbolen etwas trostlos aus (z.B. keine Zeileninfo).
Bei FreePascal sollte das aber schon funktionieren ...
Probier mal:
gdb program-mit-debuginfo set args Kommandozeilenparameter break dateiname:Zeilennummer run .... display Variablenname step step ....
Interessant beim Segfault ist noch: backtrace oder bt oder where disassemble und info registers ;)
Am Fre, 31 Mär 2000 schrieb Jens Lorenz:
Ich habe beinahe noch nie einen Debugger zur Fehlersuche genutzt ... Es geht IMHO nichts ueber ein gutes printf / writeln an der richtigen Stelle ... Damit kannst du dir auch den Inhalt der Variablen anschauen ...
printf ist gut, gdb mit display ist besser. IMHO ist DDD bei der Variableninspektion etwas umständlich zu bedienen.
Wichtig ist eigentlich nur, dass du saemtliche Ausgaben mit einem Newline abschliesst. Sonst werden sie gepuffert und diese Puffer landen bei einem segmentation fault im Nirvana ...
Meiner Erfahrung nach hat das nichts mit einem "\n" am Ende zu tun. z.B. hatte ich vor kurzem eine komplette Ausgabe, wenn stdout in eine Datei ging,allerdings eine unvollständige bei der Ausgabe ins Terminal. Natürlich endete das Programm beides mal mit SegFault.
Kann mal jemand das mit dem Puffern genauer erläutern ??
Bye, Stephan