2012-12-18 3 views
22

gdb 스크립트에서 일부 중단 점을 미리 정의하고이 중단 점에서 몇 가지 특수 명령을 호출 한 후 프로그램 실행을 자동으로 계속 진행하고 싶습니다. 따라서, 이상적으로, 나는 같은 GDB 스크립트를 가지고 싶습니다 다음gdb 스크립팅 : 선택한 중단 점에서 명령 실행

b someFunction 
... 
if breakpoint from above reached do: 
    print var1 
    call someOtherFunction 
    continue 
done 

또한 불행한 사실은 내가에서 GDB 버전으로, 브레이크 포인트를 사용하기위한 파이썬 인터페이스에 의존 할 수있다 현재 제가 일하는 서버가 너무 오래되었습니다!

+0

가능한 복제본 [특정 중단 점이 gdb에있을 때 특정 작업 수행] (http://stackoverflow.com/questions/6517423/do-specific-action-when-certain-breakpoint-hits-in-gdb) –

답변

30

중단 점이 발생할 때 gdb 명령을 추가 할 수있는 command 명령을 살펴보십시오. gdb 매뉴얼의 breakpoint command list 섹션을 참조하십시오. 예를 들어

: someFunction에 브레이크 포인트가 자동으로 print var1, 타격

break someFunction 
commands 
print var1 
end 

뜻.

+8

감사합니다. 너, 그게 열쇠 야! 추가 명령이 하나 더 있습니다. 명령을 사용하여 광범위한 출력을 얻었을 때 터미널의 맨 아래에 도달 할 때마다 중지하지 않으려면 (gdb에서 "을 입력하거나 계속하려면 을 입력하십시오.") gdb 나 스크립트에서 "페이지 매김 설정"이라고 적어주십시오. –

+0

https://sourceware.org/bugzilla/show_bug.cgi?id=10079가 고정 될 때까지 비대화 형 모드 (예 : --batch 또는 MI 모드)에서는 작동하지 않습니다. – pixelbeat

+1

동일한 명령을 실행하도록 말하면 여러 개의 중단 점이있는 경우 어떻게 수행합니까? (사본 붙여 넣기 제외;) –

관련 문제