Debuggen laufender Prozesse und Core-Files

Statt einen Prozeß direkt unter Debugger-Kontrolle zu starten, kann man auch einen laufenden Prozeß oder ein Core-File mit dem CXdb untersuchen - vorausgesetzt, es wurde vorher mit der Option -cxdb übersetzt und gelinkt. Man ruft dazu den CXdb ganz normal mit ''cxdb PROGRAMMNAME'' im Directory auf, in dem sich das Programm befindet, damit der Bezug zu den Source-Files hergestellt werden kann.
Um einen bereits laufenden Prozeß, gegeben durch seine PID, zu debuggen, holt man ihn mit
     attach PID .
Dies funktioniert auch für eigene Prozesse, die im Batchsystem laufen. Nun kann man alle normalen Debugger-Funktionen damit ausführen, insbesondere sich Variablen ansehen oder in Schritten weiterlaufen oder auch (Vorsicht!) Variablenwerte ändern. Weiß man genug, kann man den Prozeß wieder freigeben mit
     detach .
Danach läuft er normal weiter. Zum einen kann man auf diese Weise Programme debuggen, deren Fehler erst nach langer Rechenzeit auftreten; man kann aber auch einfach mal nachsehen, wie weit das Programm gerade ist und ob es noch Sinnvolles rechnet.
Ein Core-File kann man sich mit dem Befehl
     core CORE-FILE
ansehen, wobei CORE-FILE der Name des Core-Files ist (meist einfach ''core''). Natürlich kann man es nicht zum Leben erwecken, also keine Kommandos wie next oder continue eingeben. Aber man kann sich die Werte aller Variable ansehen, auch solcher in anderen Stack-Frames. Übrigens: Damit ein Core-File überhaupt angelegt wird, muß natürlich die ''coredumpsize'' mit dem limit-Befehl entsprechend groß genug gewählt werden.

previous    contents     next

Peter Junglas 18.10.1993