Wie lese und verwende ich Absturzberichte?

12

Eine kleine unabhängige Anwendung stürzt auf meinem System ab (Kubuntu 12.04). Ich möchte die Informationen im Absturzbericht manuell überprüfen und dann die relevanten Teile per E-Mail an den Entwickler senden. Die Datei befindet sich in, /var/crash/_usr_bin_appname.1000.crashich bin mir jedoch nicht sicher, welches Tool ich zum Lesen, Bearbeiten und Speichern des Absturzberichts in einer Form benötige, die ich per E-Mail an den Entwickler senden kann.

MountainX
quelle

Antworten:

7

Apport Crash-Berichte sollten sich befinden in:

/var/crash

Und wenn ich mir einen ansehe:

jmunsch@NE-522:/var/log$ sudo cat /var/crash/*.*


ProblemType: Crash
Architecture: i386
Date: Fri Jul 11 20:40:09 2014
DistroRelease: Ubuntu 12.04

Dies ist das Programm, das ein Problem verursacht hat:

ExecutablePath: /usr/sbin/winbindd
ExecutableTimestamp: 1395068066
ProcCmdline: /usr/sbin/winbindd
ProcCwd: /var/log/samba/cores/winbindd
ProcEnviron:
 TERM=linux
 PATH=(custom, no user)

Dies sind die C-gemeinsam genutzten Objekte / gemeinsam genutzten Bibliotheken, die vom Problemprogramm verwendet wurden:

ProcMaps:
 b6606000-b6622000 r-xp 00000000 08:01 394314     /lib/i386-linux-gnu/libgcc_s.so.1
 b6622000-b6623000 r--p 0001b000 08:01 394314     /lib/i386-linux-gnu/libgcc_s.so.1
 b6623000-b6624000 rw-p 0001c000 08:01 394314     /lib/i386-linux-gnu/libgcc_s.so.1
 b6642000-b664d000 r-xp 00000000 08:01 442782     /lib/i386-linux-gnu/libnss_files-2.15.so
 b664d000-b664e000 r--p 0000a000 08:01 442782     /lib/i386-linux-gnu/libnss_files-2.15.so
 b664e000-b664f000 rw-p 0000b000 08:01 442782     /lib/i386-linux-gnu/libnss_files-2.15.so
 b664f000-b6659000 r-xp 00000000 08:01 442517     /lib/i386-linux-gnu/libnss_nis-2.15.so
 b6659000-b665a000 r--p 00009000 08:01 442517     /lib/i386-linux-gnu/libnss_nis-2.15.so
 b665a000-b665b000 rw-p 0000a000 08:01 442517     /lib/i386-linux-gnu/libnss_nis-2.15.so
 b665b000-b6662000 r-xp 00000000 08:01 442803     /lib/i386-linux-gnu/libnss_compat-2.15.so
 b6662000-b6663000 r--p 00006000 08:01 442803     /lib/i386-linux-gnu/libnss_compat-2.15.so
 b6663000-b6664000 rw-p 00007000 08:01 442803     /lib/i386-linux-gnu/libnss_compat-2.15.so
 b666c000-b6670000 rw-s 00000000 00:0f 11331      /run/samba/messages.tdb
 b6670000-b6679000 rw-s 00000000 08:01 393253     /var/lib/samba/account_policy.tdb
 b6679000-b6682000 rw-s 00000000 08:01 445067     /var/lib/samba/passdb.tdb
 b6682000-b668a000 rw-s 00000000 08:01 394026     /var/cache/samba/winbindd_cache.tdb
 b668a000-b668b000 rw-s 00000000 08:01 442342     /var/cache/samba/netsamlogon_cache.tdb
 b668b000-b668d000 rw-s 00000000 00:0f 11353      /run/samba/serverid.tdb
.
.
.

Dies zeigt, was das Programm tat, als der Absturz passierte:

ProcStatus:
 Name:  winbindd
 State: S (sleeping)
 Tgid:  1556
 Pid:   1556
 PPid:  1
 TracerPid: 0
 Uid:   0   0   0   0
 Gid:   0   0   0   0
 FDSize:    256
 Groups:    
 VmPeak:       18000 kB
 VmSize:       17880 kB
 VmLck:        0 kB
 VmPin:        0 kB
 VmHWM:     2956 kB
 VmRSS:     2956 kB
 VmData:         400 kB
 VmStk:      136 kB
 VmExe:     7668 kB
 VmLib:     8656 kB
 VmPTE:       44 kB
 VmSwap:           0 kB
 Threads:   1
 SigQ:  2/30418
 SigPnd:    0000000000000000
 ShdPnd:    0000000000000000
 SigBlk:    0000000000000400
 SigIgn:    0000000000001000
 SigCgt:    0000000180014e47
 CapInh:    0000000000000000
 CapPrm:    ffffffffffffffff
 CapEff:    ffffffffffffffff
 CapBnd:    ffffffffffffffff
 Cpus_allowed:  3
 Cpus_allowed_list: 0-1
 Mems_allowed:  1
 Mems_allowed_list: 0
 voluntary_ctxt_switches:   1215
 nonvoluntary_ctxt_switches:    11
Signal: 6
Uname: Linux 3.2.0-53-lowlatency-pae i686
UserGroups: 

Dies könnte alle Ihre Passwörter enthalten. Seien Sie vorsichtig mit diesen Informationen:

CoreDump: base64
.
.
.
core dump looks like
aASDFNFOSIefnsldgfnsweifnLEGNi43ng3gSNSDLgn483LNdg43ls
WO$EIGNOIDGNW$INGLSDKGNSLDIGNO$WIGNLRSIGN*RW(GNDKJNLGD
*TNOIDUGNSKJDGNKSDGNSIUEGFBSGUDB*SDgUSHNEUGBSD&GSAUBSD
.
.
.
jmunsch
quelle
Wie würde ich den CoreDump anzeigen?
Alex Dueppen
@ A.Dueppen sollte sich am Ende der Datei befinden.
jmunsch
1
//, Wie ist das zu vergleichen apport-retrace? Würden Sie auch in Betracht ziehen , dieser Antwort wiki.ubuntu.com/DebuggingProgramCrash hinzuzufügen ?
Nathan Basanese
6

Hier ist die beste Lösung, die ich bisher gefunden habe:

apt-get install apport-retrace

Dann lesen Sie das Handbuch unter:

http://manpages.ubuntu.com/manpages/raring/en/man1/apport-retrace.1.html

oder

man apport-retrace

Ich habe mir diesen Befehl ausgedacht:

apport-retrace --confirm --gdb --sandbox system --verbose --cache /my/path/cache/apport-retrace --output /mypath/apport-retrace/appname.1000.crash /var/crash/_usr_bin_appname.1000.crash

Verwenden Sie im obigen Befehl Ihre eigenen Pfade (anstelle von / my / path) und den richtigen Anwendungsnamen (anstelle von 'appname'). Variationen dieses Befehls finden Sie im Handbuch.

MountainX
quelle
2
Wichtiger Hinweis für neue Benutzer: Wenn Sie die --cache ...Option weglassen , denken Sie möglicherweise, dass etwas schief geht, aber dies ist nicht der Fall. Es apt-getwird eine umfassende Prozedur ausgelöst ( ohne root !), Die sich als eine Art "virtuelle Maschine" vorstellen lässt, in der der betreffende Befehl ausgeführt wird. Ehrlich gesagt, als dies das erste Mal passierte, dachte ich nur "Was zum Teufel ist JETZT los?" Seien Sie außerdem geduldig - es dauert Minuten, bis die Debugging-Umgebung einsatzbereit ist.
Syntaxfehler
3
Zusätzlicher Hinweis : Sie dürfen NICHT -oresp. --outputin Kombination mit --gdbist dies nicht möglich.
Syntaxfehler
-1

Nun, Ubuntu hatte auch eine Sequenz für Sie entworfen. Es heißt D ebugging Program Crash Edit: Ich habe gerade von einem Programm namens Volatility gehört, das für Ubuntu verfügbar ist und mit dem Sie installieren können

sudo apt-get install ubuntu

für mehr Informationen

rɑːdʒɑ
quelle
2
StackExchange-Antworten sollten nicht nur Links zu anderen Websites sein.
MountainX
// , Einverstanden. Trotzdem ist es eine gute Verbindung.
Nathan Basanese