IT박스

gdb :“기호 테이블이로드되지 않았습니다.”

itboxs 2020. 9. 21. 07:30
반응형

gdb :“기호 테이블이로드되지 않았습니다.”


gdb에 중단 점을 추가하려고 할 때이 오류 메시지가 계속 표시됩니다.

다음 명령을 사용하여 컴파일했습니다.

gcc -g main.c utmpib2.c -o main.o
and:
cc -g main.c utmpib2.c -o main.o
and also:
g++ -g main.c utmpib2.c -o main.o

나는 또한 "-g"대신 "-ggdb"를 시도했지만 여전히 그 오류 메시지가 나타납니다.

그런 다음 gdb를 실행합니다.

$gdb

gdb에서 :

(gdb)exec-file main.o
(gdb)break 59
No symbol table is loaded. Use the "file" command.

우선, 당신이 가지고있는 것은 오브젝트 파일이 아니라 완전히 컴파일 된 프로그램이므로 .o확장명을 삭제하십시오 . 이제 오류 메시지가 말씀에 관심을 지불, 그것은 당신을 알려줍니다 정확하게 문제를 해결하는 방법 : "어떤 심볼 테이블이로드되지 않습니다. 사용"파일 "명령을 ."

(gdb) exec-file test
(gdb) b 2
No symbol table is loaded.  Use the "file" command.
(gdb) file test
Reading symbols from /home/user/test/test...done.
(gdb) b 2
Breakpoint 1 at 0x80483ea: file test.c, line 2.
(gdb) 

또는 명령 줄에서 프로그램을 전달하십시오.

$ gdb test
GNU gdb (GDB) 7.4
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
[...]
Reading symbols from /home/user/test/test...done.
(gdb) b 2
Breakpoint 1 at 0x80483ea: file test.c, line 2.
(gdb) 

소스 레벨 디버그 정보를 생성하는 추가 매개 변수 -g를 추가해야합니다. 다음과 같이 표시됩니다.

gcc -g prog.c

그 후 일반적인 방법으로 gdb를 사용할 수 있습니다.


나는 같은 문제가 있고이 Post를 따랐으며 내 문제가 해결되었습니다.

다음 두 단계를 따르십시오.

  1. 최적화 수준이 -O0
  2. -ggdb프로그램을 컴파일 할 때 플래그 추가

행운을 빕니다!


gcc컴파일 머신과 gdb테스트 머신에서 버전다를 때마다 debuginfo 형식이 호환되지 않을 수 있습니다 .

이 문제를 해결하려면 debuginfo 형식을 다운 그레이드하십시오.

gcc -gdwarf-3 ...
gcc -gdwarf-2 ...
gcc -gstabs ...
gcc -gstabs+ ...
gcc -gcoff ...
gcc -gxcoff ...
gcc -gxcoff+ ...

또는 사용중인 gdb것과 일치 합니다 gcc.

참고 URL : https://stackoverflow.com/questions/9245685/gdb-no-symbol-table-is-loaded

반응형