我在lldb中爲我安裝在MacOS上的基於C語言的應用程序設置了很多斷點。斷點大多在應用程序中設置爲相同的功能。然而,第二天我回到應用程序繼續工作,並且我開始在同一個函數中再次設置斷點,出現了一個問題,即應用程序函數內部沒有發生中斷,而是出現在該應用程序的底層庫,並且每當我嘗試打破該函數時(例如停止在底層庫中),它都會一遍又一遍地執行此操作,並且我無法通過步進來達到所需的功能(每次我步,它只是在底層庫中向前邁進)。如何告訴LLDB將信號傳遞到程序
更新:
我設置的是從信號處理程序中調用斷點功能。例如,當我發送一個SIGINT信號時,信號處理程序會調用一些函數來在應用程序中進行清理,並且我正在設置其中一個清理函數的斷點。有時候,LLDB會停止在我設置斷點的函數中(使用stop reason = breakpoint 1.1
),有時它會停止在底層/包含的事件處理庫中,並且如果後者是按下「c」(繼續進入斷點該應用程序希望並且不在事件處理庫中),但有時它可以讓我繼續到期望的斷點,其他時候它只是說「過程41524恢復」,並且我永遠不能達到期望的斷點。
您是否使用Xcode設置斷點或命令行lldb?如果Xcode,它會緩存斷點,但可以在斷點瀏覽器中禁用它們。 –
如果這是命令行lldb,它不會緩存從運行到運行lldb本身,儘管它會保持您設置爲活動的斷點並在每次重新運行正在調試的程序時重置它們。 –
如果你可以給出「break list」命令的輸出和你意想不到的斷點數,也許我們可以看到有趣的東西? –