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.
Peter Junglas 18.10.1993