จะอ่านและใช้รายงานข้อขัดข้องได้อย่างไร


13

แอปพลิเคชันอิสระขนาดเล็กหยุดทำงานบนระบบของฉัน (Kubuntu 12.04) ฉันต้องการตรวจสอบข้อมูลด้วยตนเองในรายงานข้อผิดพลาดแล้วส่งอีเมลส่วนที่เกี่ยวข้องไปยังนักพัฒนา ไฟล์อยู่ใน/var/crash/_usr_bin_appname.1000.crashอย่างไรก็ตามฉันไม่แน่ใจว่าเครื่องมือใดที่ฉันต้องการเพื่ออ่านแก้ไขและบันทึกรายงานข้อขัดข้องในรูปแบบที่ฉันสามารถส่งอีเมลไปยังนักพัฒนาได้

คำตอบ:


8

รายงานความผิดพลาดของ Apport ควรอยู่ใน:

/var/crash

และเมื่อฉันดูที่หนึ่ง:

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

นี่คือโปรแกรมที่ทำให้เกิดปัญหา:

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

นี่คือ C shared objects / shared library ที่ถูกใช้โดยโปรแกรมปัญหา:

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
.
.
.

นี่แสดงให้เห็นว่าโปรแกรมกำลังทำอะไรเมื่อเกิดข้อผิดพลาด:

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: 

นี่อาจมีรหัสผ่านทั้งหมดของคุณในนั้นควรระวังข้อมูลนี้:

CoreDump: base64
.
.
.
core dump looks like
aASDFNFOSIefnsldgfnsweifnLEGNi43ng3gSNSDLgn483LNdg43ls
WO$EIGNOIDGNW$INGLSDKGNSLDIGNO$WIGNLRSIGN*RW(GNDKJNLGD
*TNOIDUGNSKJDGNKSDGNSIUEGFBSGUDB*SDgUSHNEUGBSD&GSAUBSD
.
.
.

ฉันจะดู CoreDump อย่างไร
Alex Dueppen

@ A.Dueppen ควรอยู่ที่ด้านล่างของไฟล์
jmunsch

1
//, สิ่งนี้เปรียบเทียบกับapport-retraceอย่างไร นอกจากนี้ควรพิจารณาเพิ่มwiki.ubuntu.com/DebuggingProgramCrashในคำตอบนี้หรือไม่
Nathan Basanese

6

นี่เป็นทางออกที่ดีที่สุดที่ฉันพบ:

apt-get install apport-retrace

จากนั้นศึกษาคู่มือที่:

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

หรือ

man apport-retrace

ฉันมากับคำสั่งนี้:

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

ใช้เส้นทางของคุณเอง (แทน / my / path) และชื่อแอปพลิเคชันที่ถูกต้อง (แทน 'appname') ในคำสั่งด้านบน ดูคู่มือสำหรับรูปแบบต่างๆในคำสั่งนั้น


2
หมายเหตุสำคัญสำหรับผู้ใช้ใหม่: เมื่อคุณตัดสินใจที่จะไม่ใช้--cache ...ตัวเลือกนี้คุณอาจคิดว่ามีบางอย่างผิดปกติ แต่ไม่ใช่ apt-getโพรซีเดอร์ที่ครอบคลุมจะถูกทริกเกอร์ ( โดยไม่มี root !) ซึ่งสามารถจินตนาการได้ว่าเป็น "เครื่องเสมือน" ซึ่งจะใช้คำสั่งที่เป็นปัญหา ตรงไปตรงมาเมื่อสิ่งนี้เกิดขึ้นเป็นครั้งแรกฉันแค่คิดว่า "ห่าเกิดอะไรขึ้นตอนนี้?" นอกจากนี้ให้อดทนรอสักครู่จนกว่าสภาพแวดล้อมการดีบักจะพร้อมใช้งาน
ไวยากรณ์

3
หมายเหตุเพิ่มเติม : คุณไม่สามารถใช้-oresp --outputเมื่อรวมกับ--gdbสิ่งนี้เป็นไปไม่ได้
ไวยากรณ์

-2

อูบุนตูก็ออกแบบชุดให้คุณเช่นกัน มันชื่อเป็น D ebugging Program Crash Edit: ฉันเพิ่งได้ยินเกี่ยวกับโปรแกรมที่มีชื่อว่า volatility และมีให้สำหรับ Ubuntu คุณสามารถติดตั้งด้วย

sudo apt-get install ubuntu

สำหรับข้อมูลเพิ่มเติม


2
คำตอบ StackExchange ไม่ควรเชื่อมโยงไปยังเว็บไซต์อื่น
MountainX

//, ตกลง ถึงกระนั้นมันก็เป็นลิงค์ที่ดี
Nathan Basanese
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.