2017-01-10 7 views
1

gdb로 코어 파일을 디버깅하려고하면 더 이상 진행할 수있는 유효한 스택 추적이 표시되지 않습니다 (아래 링크에서보고 된 문제와 유사). 문제를 디버그하려면 어떻게 디버깅해야하는지 알려주세요. 문제를 조사하는 데 도움이되는 모든 포인터 또는 gdb 명령.디버그 방법은 gdb를 사용하여 주소에 액세스 할 수 없습니다

GDB debugging trace with no relevant info (#0 0x2e6e6f69 in ??())

(gdb) where 
#0 0x76c0da28 in ??() 
#1 0x76c0d9e0 in ??() 
#2 0x76c0d9e0 in ??() 
Backtrace stopped: previous frame identical to this frame (corrupt stack?) 
(gdb) 

편집은 다음 -g 플래그와 host environment 문제의 가능성을 배제하기 위해, 나는 의도적으로 충돌하는 코드를 추가하고 corefile (핵심 파일)에서 올바른 스택 추적을 얻을 수있었습니다했다. 내가 GDB로 디버그 코어 파일을하려고하면

+2

'-g' 옵션을 사용하여 바이너리를 컴파일 했습니까? –

+0

네, 컴파일되었습니다. –

+1

손상된 스택 메시지가 메모리 액세스에 문제가 있음을 나타낼 수 있습니다 (가장 잘못된 쓰기). [valgrind] (http://valgrind.org)와 같은 다른 도구가 문제를 파악하는 데 도움이 될 수 있습니다. – dvhh

답변

0

나는 유효한 스택 추적

가 동일한 호스트에 생성 된 코어는 어디 분석되고 있었

참조 해달라고?

그렇지 않은 경우 this answer은 수행해야 할 작업을 설명합니다.

+0

예. 동일한 호스트에 있습니다. –