LLDB

2014-10-12 4 views
4
에 신호를 보내기

나는 독립 디버거로 LLDB을 사용하고, 그리고 LLDB, 당신은 GDB에서 그것을 할 수 같은 방식으로 (즉, 신호 SIGINT)LLDB

답변

5

봐 신호를 보낼 수있는 방법이 있는지 궁금 해서요 process signalprocess handle 명령에서 예 : 나는 다른 창 (그래서 프로세스가 실행되는 동안 lldb하는 명령을 입력 할 수 있습니다에 lldb와이에 연결하는 경우

#include <signal.h> 
#include <stdio.h> 
#include <unistd.h> 

void handler (int in) 
{ 
    puts ("signal handled"); 
} 

int main() 
{ 
    signal (SIGUSR1, handler); 
    while (1) 
     sleep (1); 
} 

같은 프로그램 - 나는 lldb에서, 입력/출력 할 때를이 프로그램을 실행하면 프로그램은 lldb가 아니라 프로그램으로 간다.) SIGUSR1 신호를 보낼 때 lldb에게 프로세스 실행을 멈추지 말라고 말할 수있다. (기본값은 실행을 멈추고 다시 continue이 필요하다.) 신호를 보낼 수있다. . 예 :

(lldb) pro handle -s false SIGUSR1 
NAME  PASS STOP NOTIFY 
========== ===== ===== ====== 
SIGUSR1  true false true 
(lldb) pro signal SIGUSR1 
Process 6628 stopped and restarted: thread 1 received signal: SIGUSR1 

그리고 내 신호 처리기가 호출 된 것을 보여주는, 다른 창에 signal handled 출력을 볼 수 있습니다.