probleme mit debuggen eines Python prozesses

Hallo, ich möchte einen Zope-Process der von Zeit zu Zeit 99.9 % CPU frist untersuchen. Dazu habe ich ein Howto gefunden (http://zopelabs.com/cookbook/1073504990) das emfiehlt einen traceback desjenigen Threads zu erzwingen. Dazu soll fogendes gemacht werden: 1. mit gdb an den Zope Prozess attachen 2. mit info treads den sunder suchen 3. den sunder zum default machen mit thread X 4. sich mit call PyRun_SimpleString(...) einen traceback in eine datei schreiben lassen
Meine Probleme: 1. Schon die Thread info sieht anders aus als erwartet Laut Dokumentation erwarte ich in etwa Folgendes:
(gdb) info threads 3 process 35 thread 27 0x34e5 in sigpause ()
2. Ich habe es nicht fertiggebracht, dass "call PyRun_SimpleString.." etwas anderes als einen Fehler produzierte.
Was mach ich falsch?
Danke für eure Hilfe. Robert
hier meine Schritte, und der produzierte output:
gdb python (gdb) info threads 11 Thread 1109482416 (LWP 13933) 0xffffe410 in ?? () 10 Thread 1111583664 (LWP 13934) 0xffffe410 in ?? () 9 Thread 1113684912 (LWP 13935) 0xffffe410 in ?? () 8 Thread 1115786160 (LWP 13936) 0xffffe410 in ?? () 7 Thread 1117887408 (LWP 13937) 0xffffe410 in ?? () 6 Thread 1119988656 (LWP 13938) 0xffffe410 in ?? () 5 Thread 1122089904 (LWP 13939) 0xffffe410 in ?? () 4 Thread 1124191152 (LWP 13940) 0xffffe410 in ?? () 3 Thread 1126292400 (LWP 13941) 0xffffe410 in ?? () 2 Thread 1128393648 (LWP 13942) 0xffffe410 in ?? () 1 Thread 1076090240 (LWP 13927) 0xffffe410 in ?? () (gdb) thread 1 [Switching to thread 1 (Thread 1076090240 (LWP 13927))]#0 0xffffe410 in ?? ()
(gdb) call PyRun_SimpleString("import sys, traceback; sys.stderr=open('/tmp/tb','w',0); traceback.print_stack()")
Program received signal SIGABRT, Aborted. 0xffffe410 in ?? () The program being debugged was signaled while in a function called from GDB. GDB remains in the frame where the signal was received. To change this behavior use "set unwindonsignal on" Evaluation of the expression containing the function (PyRun_SimpleString) will be abandoned. (gdb)
_______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de

On 11.12.05 10:28:15, robert rottermann wrote:
Hallo, ich möchte einen Zope-Process der von Zeit zu Zeit 99.9 % CPU frist
BTW: Es gibt ne deutsche Zope-Usergroup mit ner eigenen ML, da kriegst du vllt. noch mehr Hilfe.
untersuchen. Dazu habe ich ein Howto gefunden (http://zopelabs.com/cookbook/1073504990)
Ohne da jetzt zu lesen,..
das emfiehlt einen traceback desjenigen Threads zu erzwingen. Dazu soll fogendes gemacht werden:
- mit gdb an den Zope Prozess attachen
Aber Python-Applikationen debuggt man normalerweise mit pdb, dem python-debugger. Weiterhin kennen neuere Zope-Versionen (ab 2.7) mit zopectl debug eine Moeglichkeit Zope direkt im debug-Modus zu starten. Dort hast du dann bereits einen pdb der am Zope-Prozess "haengt.
Andreas

Andreas Pakulat wrote: Andreas, Danke für Deine Antwort, ich möchte aber Zope nicht im debug modus starten. Sondern mich an den Thread hängen, der die hohe Last verursacht. Insofern hat das eigentlich mit Zope wenig zu tun. Ich will einen Traceback eines Threads erzwingen, der irgenwann einmal plötlich hohe last verursacht. Ich glaube kaum das ich das mit dem pdb machen kann. Gruss Robert
On 11.12.05 10:28:15, robert rottermann wrote:
Hallo, ich möchte einen Zope-Process der von Zeit zu Zeit 99.9 % CPU frist
BTW: Es gibt ne deutsche Zope-Usergroup mit ner eigenen ML, da kriegst du vllt. noch mehr Hilfe.
untersuchen. Dazu habe ich ein Howto gefunden (http://zopelabs.com/cookbook/1073504990)
Ohne da jetzt zu lesen,..
das emfiehlt einen traceback desjenigen Threads zu erzwingen. Dazu soll fogendes gemacht werden:
- mit gdb an den Zope Prozess attachen
Aber Python-Applikationen debuggt man normalerweise mit pdb, dem python-debugger. Weiterhin kennen neuere Zope-Versionen (ab 2.7) mit zopectl debug eine Moeglichkeit Zope direkt im debug-Modus zu starten. Dort hast du dann bereits einen pdb der am Zope-Prozess "haengt.
Andreas
_______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
participants (2)
-
Andreas Pakulat
-
robert rottermann