MacOS에 설치 한 C 언어 기반 응용 프로그램의 lldb에 많은 중단 점을 설정했습니다. 중단 점은 대부분 응용 프로그램에서 같은 기능으로 설정되었습니다. 그러나 다음 날 응용 프로그램으로 돌아가서 작업을 계속하고 동일한 기능에서 중단 점을 다시 설정하기 시작했습니다. 중단 점이 응용 프로그램 기능 내부에서 발생하지 않고 하나의 함수의 기본 라이브러리 (예 : 기본 라이브러리에서 멈춤)를 반복 할 때마다 반복적으로이 작업을 계속 수행하며 스테핑으로 원하는 함수에 도달 할 수 없습니다 (매 단계마다 , 그것은 기본 라이브러리에서 앞으로 나아 간다).프로그램에 신호를 전달하도록 LLDB에 지시하는 방법
업데이트 :
내가 시그널 핸들러 내에서 호출에 중단 점을 설정하고 함수입니다. 예를 들어 SIGINT 신호를 보내면 신호 처리기가 응용 프로그램에서 정리할 함수를 호출하고 해당 정리 중 하나에 중단 점을 설정합니다. 경우에 따라 LLDB는 중단 점을 (stop reason = breakpoint 1.1
과 함께) 설정하는 기능에서 멈추는 경우가 있습니다. 때로는 stop reason = signal SIGSTOP
이 포함 된 기본/포함 이벤트 처리 라이브러리에서 중지되고, 후자 인 경우 "c"를 누르면 (중단 점에 계속하기 위해) 응용 프로그램이 희망적으로 그리고 이벤트 처리 라이브러리에서 빠져 나옵니다.) 때때로, 단지 원하는 중단 점에 계속 진행할 수 있습니다. 다른 경우에는 "Process 41524 resuming"이라고 말하면서 원하는 중단 점에 도달 할 수 없습니다. AFAIK (OP를 참조, 고정되지 않은 문제, 그래서 이것은 좋은 해결책이 아니다 다음 .lldbinit 파일에 target.inline-breakpoint-strategy
설정을 추가, 문제 해결 가이드에서 언급 한 바와 같이
Xcode를 사용하여 중단 점 또는 명령 줄 lldb를 설정하고 있습니까? Xcode의 경우 캐시 중단 점을 수행하지만 중단 점 탐색기에서 중지 할 수 있습니다. –
명령 줄 lldb 인 경우 디버깅중인 프로그램을 다시 실행할 때마다 활성 상태로 설정하고 중단 점을 유지하지만 lldb 자체 실행에서 캐싱을 수행하지 않습니다. –
"break list"명령의 출력과 예기치 않게 충돌하는 중단 점 번호를 제공 할 수 있다면 어쩌면 우스운 이야기를 볼 수 있을까요? –