2013-03-09 3 views
5

gdb에서 다음 n 개의 중단 점을 "continue n"으로 건너 뛰거나 다음 n 줄을 "다음 n"으로 건너 뛸 수 있습니다. lldb의 등가물은 무엇입니까?lldb에서 다음 n 개의 중단 점 건너 뛰기

그리고 아무 것도 없으면 어떻게 lldb 파이썬 확장에서 직접 만들 수 있습니까? 나는 이런 식으로 시도했지만 작동하지 않았다. 내가 추가 한 명령을 입력하면 lldb가 멈추었다.

def cc(debugger, args, result, dict): 
    target = debugger.GetSelectedTarget() 
    process = target.GetProcess() 
    process.Continue() 

답변

4

process continue 명령은 현재 현재 스레드에 중단하고 중단 점에 대한 다음 내가 일치를 무시하는 -i 옵션을 받아들입니다. 예 :

Process 13559 stopped 
* thread #1: tid = 0xb7da5, 0x0000000100000f21 a.out`main + 49 at a.c:7, stop reason = breakpoint 2.1 
    #0: 0x0000000100000f21 a.out`main + 49 at a.c:7 
    4  int i; 
    5  for (i = 0; i < 100; i++) 
    6  { 
-> 7   printf ("%d\n", i); 
    8  } 
    9 } 
(lldb) c -i 5 
Process 13559 resuming 
0 
1 
2 
3 
4 
5 
Process 13559 stopped 
* thread #1: tid = 0xb7da5, 0x0000000100000f21 a.out`main + 49 at a.c:7, stop reason = breakpoint 2.1 
    #0: 0x0000000100000f21 a.out`main + 49 at a.c:7 
    4  int i; 
    5  for (i = 0; i < 100; i++) 
    6  { 
-> 7   printf ("%d\n", i); 
    8  } 
    9 } 
(lldb) 

또한 breakpoint modify -i count bpnum 직접 중단 점의 무시-수를 설정할 수 있습니다.

+0

좋은 답변입니다. 고마워요! – Rick

+0

한 가지 더. 다음 n 줄을 건너 뛰는 것은 어떨까요? (gdb의'next n '과 같습니다). lldb에서,'process'는'step-over' 서브 명령을 가지고 있지 않습니다. 'thread'는'step-over'를 가지지 만'-i' 옵션을 취하지 않는 것처럼 보입니다. – Rick

+0

'thread step-over '(일명'n')'-i' 옵션을 사용하는 것이 좋은 향상이 될 것이라고 제안 할 것입니다. 'tbr '이 lldb에 추가되었을 때 기억할 수는 없지만 임시 별 중단 점 ("one-shot"중단 점)을 명령 별명'tbr'에 추가 할 수 있습니다 ('breakpoint set' 옵션에 불과합니다). 아직 출시 된 버전 일 수 있습니다. –