Debuggen ohne Breakpoint (variable-watch)

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
rksteve
Beiträge: 716
Registriert: 11.09.2003 12:24:53
Kontaktdaten:

Debuggen ohne Breakpoint (variable-watch)

Beitrag von rksteve » 29.07.2010 16:00:52

Hallo!

Wie kann man Programme debuggen ohne dass man Breakpoints verwendet? Gdb habe ich erfolgreich zum Laufen gebracht nur macht er nicht ganz das was ich will. Ich möchte mir gerne Globale Variablen anzeigen lassen wie sie zurzeit stehen, ohne dass das Programm angehalten werden muß? Gibt es dfür Möglichkeiten?

lg
steve
Ich? Nein, ich bin keine Signatur, ich mach hier nur sauber...

Liffi
Beiträge: 2345
Registriert: 02.10.2004 01:33:05

Re: Debuggen ohne Breakpoint (variable-watch)

Beitrag von Liffi » 29.07.2010 16:18:46

Eine Moeglichkeit waere die globale Variable immer in ne Datei schreiben (oder std out), falls du Zugriff auf die Sourcen hast.
Muesste dann aber vermutlich an jede Stelle, wo sich die Variable aendern kann.

Benutzeravatar
GoKi
Beiträge: 2068
Registriert: 04.07.2003 23:08:56
Lizenz eigener Beiträge: MIT Lizenz

Re: Debuggen ohne Breakpoint (variable-watch)

Beitrag von GoKi » 29.07.2010 18:38:36

Du meinst, denke ich, einen "Watchpoint", siehe z.B. http://www.unknownroad.com/rtfm/gdbtut/gdbwatch.html
MfG GoKi
:wq

Benutzeravatar
rksteve
Beiträge: 716
Registriert: 11.09.2003 12:24:53
Kontaktdaten:

Re: Debuggen ohne Breakpoint (variable-watch)

Beitrag von rksteve » 31.07.2010 16:28:42

Ich benötige etwas das ohne anhalten des Prozessors funktioniert, also scheiden auch Watchpoints aus. Ich werde es wohl softwaremässig lösen müssen.

lg,
steve
Ich? Nein, ich bin keine Signatur, ich mach hier nur sauber...

Benutzeravatar
GoKi
Beiträge: 2068
Registriert: 04.07.2003 23:08:56
Lizenz eigener Beiträge: MIT Lizenz

Re: Debuggen ohne Breakpoint (variable-watch)

Beitrag von GoKi » 31.07.2010 16:53:19

Du kannst mittels gdb nach auslösen des Watchpoints gleich wieder fort fahren.

Code: Alles auswählen

(gdb) watch i
Watchpoint 1: i
(gdb) commands
Type commands for when breakpoint 1 is hit, one per line.
End with a line saying just "end".
>cont
>end
(gdb) run
Starting program: /tmp/bla 
Hardware watchpoint 1: i

Old value = 0
New value = 1
main () at bla.c:9
MfG GoKi
:wq

Antworten