일부 gdb 명령을 실행하는 간단한 텍스트 기반 사용자 인터페이스를 개발하려고합니다. 코드의 특정 영역에서 점을 설정하고 중단/추적하고 디버그 명령을 실행할 수 있기를 원합니다.GDB에서 함수 코드보기/인쇄
사용자가 디버깅해야하는 기능을 입력하고 싶습니다. 그런 다음이 함수 이름을 사용하여 함수의 소스 코드를 인쇄 한 다음 사용자에게 중단 점/추적 점을 설정할 코드 행을 선택하도록 요청합니다. 현재, 디스어셈블 명령을 사용하여 사용자의 메모리 주소를 출력 할 수 있지만 대신 실제 소스 코드를 인쇄하고 싶습니다.
gdb에서이 작업을 수행 할 수 있습니까? 현재
는 :
Dump of assembler code for function test_function:
0x03800f70 <test_function+0>: push %ebp
0x03800f71 <test_function+1>: mov %esp,%ebp
0x03800f73 <test_function+3>: sub $0x48,%esp
내가 원하는 것은 :
void main()
{
printf("Hello World\n");
}
감사합니다!
편집 : "목록 파일 이름을
(gdb) list directory/directory_etc/sourcefile.c:941
936 in directory/directory_etc/sourcefile.c
그래서 행동은 당신이 설명하는 것과 유사하지만, : 내가 지정 linenum 인 시도 후
(gdb) list myFunction
941 directory/directory_etc/sourcefile.c: No such file or directory.
in directory/directory_etc/sourcefile.c
: 나는이납니다 linenum 인을 "아직 작동하지 않습니다
고마워요!
현재 함수 : http://stackoverflow.com/questions/12824251/gdb-list-source-of-current-function-without-typing-its-name –