2015-08-24 65 views

回答

0

有是支持這樣做

watchpoint command add [-e <boolean>] [-s <none>] [-F <python-function>] <watchpt-id> 

如果你有一個SBWatchpoint,您可以查詢它的ID,然後手藝適當的命令行向下傳遞給

watchpoint command add 

命令SBDebugger.HandleCommand

您將需要您的Python模塊來包含要執行的腳本函數,並在命令行中通過限定名稱傳遞它。舉例來說,如果你有

# myfile.py 
def callback(wp_no): 
    # stuff 
# more stuff 
mywatchpoint = ... 
debugger.HandleCommand("watchpoint command add -F myfile.callback %s" % mywatchpoint.GetID()) 

將告訴LLDB有關回調

目前的方式,有沒有辦法直接通過Python函數來LLDB API調用。

沒有理由說這是不可能的,但要在一個多種腳本語言可以共存的世界中正確使用是有點棘手的,並且考慮到缺乏可行的替代策略,沒有太大的壓力讓它工作。

+0

有趣的是,SBWatchpoint沒有辦法直接傳遞python回調函數,但是SBBreakpoint卻有。 – ericg

+0

不完全。您可以傳遞函數名稱或函數體,但不能傳遞函數對象。 –

+1

但是,是的,將這些相同條款擴展到SBWatchpoint的補丁將非常受歡迎 –