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를 사용할 수 있습니다.
답변
나는 같은 문제가 있고이 게시물을 따랐으며 내 문제가 해결되었습니다.
다음 두 단계를 따르십시오.
- 최적화 수준이
-O0
-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 test
Mac (10.15.2)에서 프로그램을 컴파일 한 후 gdb
VirtualBox에서 Ubuntu (16.04)의 실행 파일로 실행했습니다.
수정 : Ubuntu에서 동일한 명령으로 다시 컴파일하면 괜찮을 것입니다.