2010-01-13 2 views
2

gdb를 사용하여 프로그램의 모든 내용을 추적해야합니다. 명령어를 실행할 때마다 gdb가 지정된 함수를 호출하도록합니다.gdb의 stepi 명령에 대한 도움말

가능한 일입니까? 이것을 달성하는 방법?

인터넷을 검색 한 결과 gdb의 "stepi arg"명령이 arg 명령을 처리 할 수 ​​있음을 알았습니다. 그러나 전체 명령어 수를 찾는 방법은 무엇입니까? 모든 명령을 수행 한 후 gdb가 내 기능을 자동으로 호출하도록 만드는 방법은 무엇입니까?

+0

떨어져 다음 명령 중 하나 GDB 프롬프트 또는 .gdbinit 파일

설정 높이를 0 또는 설정 페이지 매김을주고 당신이 이것을 해제하기 위해

? 함수가 gdb 함수 또는 프로그램의 함수입니까? 각 명령 다음에 실행하려는 예제와 실행하려는 프로그램의 예를 지정하면 도움이 될 것입니다. – Olof

답변

3
cat t.c 
int main() { int x=1; int y=2; int z=x+y; printf("%d",z); return 0; } 

gcc t.c 
gdb -q ./a.out 
break main 
run 
(no debugging symbols found)... 
Breakpoint 1, 0x0000000000400488 in main() 
set logging on 
while 1 
>stepi 
>info registers 
end 
quit 

이제 gdb.log을 살펴보십시오. 찾고있는 정보가 포함되어 있어야합니다.

P. 토론 포럼이 아닙니다. 질문을 "답변"으로 추가하지 마십시오. 대신 원래 질문을 수정하거나 의견을 사용하십시오.

1

GDB는 항상 높이 또는 페이지 매김 매개 변수 때문에 실행 중에 "--- 계속하려면 입력하거나 q를 종료합니다 ---"를 실행합니다. 피하거나 당신이를 위해 GDB를 사용 하시겠습니까

관련 문제