다중 스레드 응용 프로그램에서 작업 중이며 GDB를 사용하여 디버깅하고 싶습니다. 문제는 내 스레드 중 하나가 메시지와 함께 계속 죽어 간다는 것입니다. pure virtual method called terminate called without an active exception Abort 나는 그 메시지의 원인을 알고 있지만 내 스레드에서 그것이 발생하는 곳을 모릅니다. 역 추적이 정말 도움이 될 것입니다. …
gcc 또는 Clang으로 C 소스 코드를 컴파일 할 때 항상 -g플래그를 사용하여 gdb에 대한 디버깅 정보를 생성합니다. gcc -g -o helloworld helloworld.c 나는 어떤 사람들이 -g3대신 추천한다는 것을 알았습니다 . 플래그 -g와 -g3플래그 의 차이점은 무엇입니까 ? 또한 차이가 -g및 -ggdb?
stdin에서 입력을 받고 명령 줄에서 일부 매개 변수를 취하는 프로그램이 있습니다. 다음과 같이 보입니다. cat input.txt > myprogram -path "/home/user/work" emacs 내부에서 gdb로 코드를 디버그하려고합니다. Mx gdb에서 다음 명령으로 프로그램을로드하려고합니다. gdb cat input.txt > myprogram -path "/home/user/work" 그러나 gdb는 그것을 좋아하지 않습니다. 여기 에서 질문이 작성 되었습니다 . 불행히도 솔루션을 …
저는 GDB를 처음 사용하므로 몇 가지 질문이 있습니다. 스택의 내용을 어떻게 볼 수 있습니까? 예 : 레지스터의 내용을 보려면를 입력 info registers합니다. 스택의 경우 무엇이어야합니까? 의 내용을 $0x4(%esp)어떻게 볼 수 있습니까? 를 입력 print /d $0x4(%esp)하면 GDB에서 오류가 발생합니다. 플랫폼 : Linux 및 GDB
--command플래그를 사용하여 gdb 세션을 자동화하려고합니다 . 공유 라이브러리의 함수 (DLL에 해당하는 Unix)에 중단 점을 설정하려고합니다. 내 cmds.gdb는 다음과 같습니다. set args /home/shlomi/conf/bugs/kde/font-break.txt b IA__FcFontMatch r 그러나 다음을 얻습니다. shlomi : ~ / progs / bugs-external / kde / font-breaking $ gdb --command = cmds.gdb ... GNU gdb 6.8-2mdv2009.0 (Mandriva Linux …
다음과 같은 것을 가정합니다. #include <map> int main(){ std::map<int,int> m; m[1] = 2; m[2] = 4; return 0; } gdb에서 프로그램을 실행하는 맵의 내용을 검사하고 싶습니다. 아래 첨자 연산자를 사용하면 다음과 같은 결과가 나타납니다. (gdb) p m[1] Attempt to take address of value not located in memory. find 메서드를 사용하면 …
gdb"실행"을 입력 한 것처럼 실행 파일 을 즉시 실행하고 싶습니다 (동기 : "실행"입력을 싫어합니다). 한 가지 방법은 gdb다음과 같이 명령을 파이프하는 것입니다. $ echo run | gdb myApp 그러나이 접근 방식의 문제점은 gdb예 를 들어와의 상호 작용을 잃는다는 것입니다 . 중단 점이 트리거되거나 myApp충돌하면 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 …
gcc를 사용하여 C 프로그램을 컴파일 할 때 일반적으로 -g필요한 경우 gdb가 도움이 될 수 있도록 elf 파일에 디버그 정보를 가져 오는 데 사용합니다. 그러나 -ggdb디버그 정보를 더 gdb 친화적으로 만들기 위해 일부 프로그램에서을 사용한다는 것을 알았 습니다. 그것들은 어떻게 다르며 어떤 것을 사용하는 것이 좋습니까? 참고 : 프로그램 또는 GCC …