2013-08-12 2 views
8

test라는 파일이 있습니다. -g로 컴파일 한 후에도 gdb에서 실행할 때 디버깅 심볼이 없다고 표시됩니다. 나는 또한 -ggdb를 사용해 보았지만 너무 유용하지는 않았다. 도와주세요. 실행 파일이 제거되지 않도록gdb : (디버깅 기호 없음)

Output for : gdb test 

This GDB was configured as "x86_64-linux-gnu". 
For bug reporting instructions, please see: 
<http://www.gnu.org/software/gdb/bugs/>... 
Reading symbols from /usr/bin/test...(no debugging symbols found)...done. 

답변

7

에 문제는 잘못된 프로그램을 디버깅하려고하는 것입니다 것을 볼 수 있습니다.

귀하의 프로그램은 /usr/bin/test (기호가 포함되지 않은 거의 확실하게 배송되며, 소스 코드와 관련이없는 시스템 프로그램)을 디버깅합니다.

gdb은 실행 파일을 찾기 위해 $PATH을 검색합니다. here에서 :

간부 파일 [파일 이름] 프로그램이 실행되도록 (그러나 심볼 테이블) 파일 이름에서 찾을 수 있음을 지정합니다. gdb는 프로그램을 찾기 위해 필요하다면 환경 변수 변수 PATH를 검색합니다. 파일 이름이 누락되면 은 실행 파일에 대한 정보를 버리는 것을 의미합니다. 명령을 사용하여

시도 :

$ gdb ./test 
+0

단순히 파일이나 디렉토리를 찾을 수 없다는 뜻입니다. 웹에서 gdb에 대한 튜토리얼을 한 번 따르고 있는데, 프로그램 이름이 test.cpp 인 경우 gdb test를 사용하도록 요청한 곳입니다. – psyc0der

+0

'./test'파일이 있습니까? – trojanfoe

+0

./test는 test.out을 실행하는 방법이라고 생각합니다. 그리고 test.cout을 test.out에 출력하여 test.cpp를 컴파일했습니다. – psyc0der

0

확인, 당신은 file /usr/bin/test

+0

gdb에서/usr/bin/test 파일을 실행하면 동일한 결과를 얻을 수 있습니다. /usr/bin/test...(디버깅 기호 없음)에서 기호를 읽는 중 ... 완료되었습니다. – psyc0der

+0

'file/usr/bin/test'의 결과를 게시 할 수 있습니까? – Mali

+0

'/usr/bin/test...(no debugging symbols found) ... done.'에서 기호를 읽음. – psyc0der

1

a.out을 제거하고 다시 시도하십시오. 나는 또한 같은 오류가 발생하면서 나를 위해 일했다.

rm a.out 
gcc -g your_code.c