이 질문 과 유사하게 LLDB를 사용하여 ctypes로 로드하는 라이브러리를 디버깅하는 방법은 무엇입니까?
디버거에서 시작할 수 있습니다.
$ lldb -- python myscript.py
하지만 C 라이브러리의 특정 함수에 중단 점을 설정하고 싶습니다. 다음 쓰기는 실패합니다.
(lldb) breakpoint set -f fft.c -l 78
Breakpoint 1: no locations (pending).
WARNING: Unable to resolve breakpoint to any actual locations.
달리기 image list
는 내 라이브러리가 표시되지 않습니다. 라이브러리를로드하도록 LLDB에 어떻게 지시합니까?
또한로드되면 LLDB가 디버그 기호를로드했는지 어떻게 확인할 수 있습니까?
아마도 fft.c의 코드가 포함 된 라이브러리를로드 한 지점까지 프로그램을 실행하지 않았을 것입니다.
lldb에게는 문제가되지 않습니다. 새 공유 라이브러리가로드 될 때마다 lldb는 기존의 모든 중단 점을 확인하여 새 공유 라이브러리에서 일치하는 항목이 있는지 확인합니다. 따라서 중단 점을 설정 한 다음 실행할 수 있어야하며 라이브러리가로드되면 새 위치가 추가됩니다. 사실이 아닌 경우 http://bugreporter.apple.com 으로 버그를 신고 하세요.
lldb는 실제로 이것이 명령 줄에 발생했다는 알림을 내 보냅니다.
원하는 경우 다음을 설정하여 공유 라이브러리로드를 볼 수 있습니다.
(lldb) settings set target.process.stop-on-sharedlibrary-events true
그러나 lldb가 중단 점 일치를 위해 새로로드 된 모든 라이브러리를 스캔하도록하는 데는 필요하지 않습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다