2017-04-13 4 views
0

this question과 비슷하게 LLDB를 사용하여로드 할 라이브러리를 디버그하는 방법은 ctypes입니까?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가 디버그 기호를로드했는지 확인할 수 있습니까?

답변

1

아마도 fft.c의 코드가 들어있는 라이브러리를로드 한 시점까지 프로그램을 실행하지 않았습니까?

lldb에서 문제가되지 않아야합니다. 새로운 공유 라이브러리가로드 될 때마다 lldb는 기존의 모든 중단 점을 검사하여 새로운 공유 라이브러리에서 일치하는 항목이 있는지 확인합니다. 따라서 중단 점을 설정 한 다음 실행하면 라이브러리가로드되면 새 위치가 추가됩니다. 그것이 사실이 아니라면, http://bugreporter.apple.com으로 버그를 보내주십시오.

lldb는 실제로 명령 행에서 발생했음을 알립니다.

(lldb) settings set target.process.stop-on-sharedlibrary-events true 

을하지만 그 브레이크 포인트 일치에 대한 모든 새로로드 라이브러리를 스캔 lldb을받을 필요가 없습니다 :

당신은 설정하여 공유 라이브러리가 원하는 경우로드 볼 수 있습니다.

+0

올바른 라이브러리가 아직로드되지 않았습니다. 위의 메시지에서'(보류 중) '을 설명합니다. 감사. – bcattle

관련 문제