Hallo Jens,

Was Du da über "gdb" und "strace" geschrieben hast interessiert mich... Wie geht denn das?

'gdb' ist der GNU Debugger, 'strace' ein Tool um System Calls und Signals in einem Prozess zu tracen.

Da OpenOffice.org ja nicht sofort abstürzt, kannst Du Dich mit einem der beiden Tools sozusagen in den laufenden Prozeß 'einklinken' und feststellen, was da so vor sich geht. Dazu brauchst Du die process id des laufenden OpenOffice.org (genauer gesagt: Des 'soffice.bin' Prozesses).

Also etwas so:

X=`ps -ef | grep soffice.bin | grep -v grep | awk '{ print $2}'` ; gdb 
/proc/self/$X $X

Die Outputs des GDB ggf. mit 'Enter' bestätigen, bis der GDB Prompt kommt, und mit 'c' weitermachen (continue). Anschließend den Absturz reproduzieren.

Wenn Du Glück hast, wird dieser im GDB über das Signal abgefangen und Du kannst mit 'bt' (Backtrace) den Stack anschauen. Eigentlich sollte OOo das im Crashreporter selber machen, aber IIRC hattest Du gesagt, da passiert bei Dir nichts.

Mit 'strace' geht's ähnlich, z.B.

X=`ps -ef | grep soffice.bin | grep -v grep | awk '{ print $2}'` ; strace -f -F 
-p $X -o /tmp/foobar

man bekommt dann eine Datei /tmp/foobar, in der die Systemaufrufe, evtl. auch Signale etc. drin sind. Daraus kann man aber weit weniger ableiten, als aus dem GDB Output, man würde aber z.B. ein kritisches Signal sehen, z.B. bei einem Zugriff auf nicht gemappte Speicherbereiche.

Gruß

Guido
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Antwort per Email an