【问题标题】:Step into -[NSInvocation invoke] during debugging在调试期间进入 -[NSInvocation 调用]
【发布时间】:2016-08-11 11:01:25
【问题描述】:

在调试 Objective-C 代码时,lldb 会跳过对 objc_msgSend 的调用,并在实际调用的方法处停止。

在调试一些使用NSInvocation 的代码时,我希望有类似的行为。当到达调用-[NSInvocation invoke] 的位置时,我想做一个“步入”命令并跳过objc_msgSend-[NSInvocation invoke]__invoking___objc_msgSend 并使用实际方法。

是否有一些 LLDB 设置可用于实现此目的?

【问题讨论】:

    标签: objective-c debugging lldb nsinvocation


    【解决方案1】:

    lldb 没有对 NSInvocation 的原生支持。

    如果您愿意,请提交有关此问题的错误。由于它是特定于 ObjC 的,最好使用http://bugreporter.apple.com 归档。

    【讨论】:

    • 报告为openradar.appspot.com/radar?id=6097195182850048。同时,我将研究这是否可以通过使用 Python 绑定为 LLDB 编写自定义线程计划来实现。请参阅lldb.llvm.org/python-reference.html“使用 Python API 创建自定义步进逻辑”。任何帮助表示赞赏。
    • 应该可以的。如果您有任何问题,lldb-dev 列表可能是最好的资源:lldb-dev@lists.llvm.org。 SB 实现的步进计划的限制之一是您当前不能在线程计划中调用函数。但是,我无法直接判断您是否需要这样做。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-10
    • 2020-03-17
    • 2011-11-20
    • 1970-01-01
    • 1970-01-01
    • 2019-07-30
    • 1970-01-01
    相关资源
    最近更新 更多