2014-12-07 10 views
0

내 프로그램이 훨씬GDB는 오류가 나는 GDB를 사용하려고 할 때

gdb ./a.out 
Program received signal SIGSEGV, Segmentation fault. 
0x0000000000406d74 in class::function()() 
bt 
#0 0x0000000000406d74 in class::function()() 
#1 0x0000000000407893 in main() 

그다지 많지 않죠 내가 생각할 수있는 도움이되지 않았다, 세그먼트 폴트를 반환 (분할 오류)가 발생 기능을 보여줍니다. 실제로 도움이 될만한 세부 정보를 얻기 위해 gdb에서 할 수있는 일이 있습니까?

+0

디버그 정보 (gcc 및 clang의 경우'-g')로 컴파일 했습니까? –

+0

이것은 실제로 트릭을 만들었고, "g ++"다음에 -g3을 추가 한 다음 gdb를 실행하면 segfault가 발생한 위치가 정확히 표시됩니다. –

답변

1

바이너리에 디버그 정보를 포함시키는 것을 잊어 버린 것처럼 보입니다. 이 경우 g++ 또는 clang++을 사용하는 경우 -g으로 컴파일하고 컴파일러 설명서를 읽으면 bt의 출력에 중요한 줄 번호가 표시되고 gdb은 일반적으로 자세한 정보를 제공 할 수 있습니다.

관련 문제