충돌 보고서를 읽고 사용하는 방법?


13

작은 독립 응용 프로그램이 내 시스템에서 충돌하고 있습니다 (Kubuntu 12.04). 충돌 보고서의 정보를 수동으로 검토 한 다음 관련 부품을 개발자에게 이메일로 보내려고합니다. 파일이 /var/crash/_usr_bin_appname.1000.crash있지만 개발자에게 전자 메일로 보낼 수있는 형식으로 충돌 보고서를 읽고 편집하고 저장하는 데 필요한 도구가 확실하지 않습니다.

답변:


8

Apport Crash 보고서는 다음 위치에 있어야합니다.

/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 공유 오브젝트 / 공유 라이브러리는 다음과 같습니다.

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 ) 해당 명령이 실행되는 일종의 "가상 머신"으로 상상할 수 있습니다. 솔직히, 이것이 처음 일어 났을 때, 나는 "지금 도대체 무슨 일이 일어나고 있는가 ??"라고 생각했습니다. 게다가, 인내심 -디버깅 환경을 사용할 준비가 될 때까지 몇 분이 걸릴 것입니다.
syntaxerror

3
추가 사항 : -oresp를 사용할 수 없습니다 . --output와 함께 --gdb사용할 수 없습니다.
syntaxerror

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.