debugging

funktioniert net

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

debugging
gdb schickt mir immer ne SIGTRAP, bevor der code ausgeführt wird, das wars dann … das ist bei jedem code so :-/
zuhause funktioniert gdb auch net, aber da meckert er, dass der prozess angeblich schon geöffnet sei :-/

ein kleiner doofer fehler hat mir 2h meines lebens geraubt :wand:

meinung eines betreuers “debugging wird erst noch behandelt” … :frowning: auch dieser konnte mir die ursache nicht nennen.


wie machst du das denn?

kompilierst du mit option -g ? (für debugging symbole)

zB gcc -g -o queue queue.c

und rufst dann

gdb queue

auf?

dann kannst du breakpoints setzen zB mit

break append_element

und mit run das programm zur ausführung bringen, wobei die ausführung beim betreten von append_element stoppt…

funktioniert bei mir…


Hi kabel,

sorry, dass ich die so billig abgespeisst hab in der Uebung, aber die anderen hatten meine Hilfe noch noetiger als du, und in den gdb hab ich mich erstmal reindenken muessen.
Der Effekt den du hast, wird im Internet oefters beschrieben z.B. hier
http://sources.redhat.com/ml/gdb-prs/2003-q4/msg00058.html

Soweit ich das jetzt verstanden habe dient das SIGTRAP dazu, die breakpoints die man setzt zu realisieren d.h. wenn ein Prozess im gdb gestartet wird, setzt der gdb in die Maschinenbefehle des Programms so ein SIGTRAP rein, da haellt der Prozess dann wieder an und der gdb kriegt wieder die Kontrolle um dem Benutzer die Daten zu diesem breakpoint zu liefern. Dieser letzte Schritt scheint schief zu gehen, der gdb kriegt die Kontrolle wieder, erkennt aber nicht, dass er selbst den SIGTRAP reingesetzt hat und schon beim breakpoint ist.

Wenns dir wichtig ist, dann kannst du mir deinen Code mal schicken, sowie die compilerversion (rauszukriegen mit gcc --version), die gdb version und den Rechnernamen, an dem der Fehler aufgetreten ist. Am besten an sp1@frahi.de.

Es wird immer wieder kleine Fehler geben, die dir noch mehr von deinem Leben rauben werden


ich werde am montag mal ein bisschen rumspielen. ohne debugger find ichs ziemlich heftig, bin da von früher leider etwas M$-verwöhnt … wobei die ddd gui doch ganz nett aussieht :smiley: bisher sieht sie leider tatsächlich nur gut aus …

das wird leider der fall sein, und wenn ich daran denke, könnt ich nur heulen.

@mikey: ich hab den breakpoint mal an einem malloc-aufruf ansetzen lassen, mal direkt an die main-funktion; immer dasselbe resultat.

für die ergreifung der lösung ist das kopfmagazin Der IT-Director 11/03 ausgesetzt.
für ein paar lacher ist das mag allemal gut :wink:
und nein, ich hab das ding nicht gekauft! :wink:


Ohne Debugger gibt’s immer noch die printf-lösung :slight_smile:

Und der ddd ist doch ok … man kann da doch wunderbar seine Variablen überblicken, etc …

Sebbi


tritt mich ein pferd – es funktioniert! und zwar auch der wsort-code! :slight_smile:

ich weiss, den spruch kennt jeder von anwendern, aber hier trifft er tatsächlich zu:

ich hab nix gemacht.

gar nix. wirklich. nichts im zusammenhang mit gdb, nichts mit ddd, nichts mit der shell (bash), nichts mit dem compiler, nichts mit den flags, …

ich bin trotzdem neugierig, woran das nu gelegen haben könnte?