[c] 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를 사용할 수 있습니다.


답변

나는 같은 문제가 있고이 게시물을 따랐으며 내 문제가 해결되었습니다.

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

  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.


답변

오늘 아침에 다른 OS에서 동일한 실행 파일을 사용했기 때문에이 문제를 만났습니다. gcc -ggdb -Wall test.c -o testMac (10.15.2)에서 프로그램을 컴파일 한 후 gdbVirtualBox에서 Ubuntu (16.04)의 실행 파일로 실행했습니다.

수정 : Ubuntu에서 동일한 명령으로 다시 컴파일하면 괜찮을 것입니다.


답변