【问题标题】:How do I print a timestamp with LLDB in Xcode?如何在 Xcode 中使用 LLDB 打印时间戳?
【发布时间】:2012-11-05 06:25:41
【问题描述】:

我正在尝试分析一些代码,并且我需要查看运行某些命令的时间戳。我可以通过在我的代码中插入 NSLog() 语句来做到这一点,但出于多种原因,我更喜欢使用调试器。

我已经在每个重要事件上设置了一个断点,我可以在断点上使用“日志消息”操作打印出一条消息,但我希望它打印出一个 NSLog() 样式的时间戳(毫秒准确性)。

是否有 LLDB 命令来执行此操作?

【问题讨论】:

    标签: xcode profiling timestamp lldb


    【解决方案1】:

    这种技术有效,但似乎有点老套(肯定有更好的方法吗?):

    从调试器命令调用NSLog()

    call (void) NSLog(@"An Important Event Occurred")
    

    【讨论】:

    • 是的,在断点上添加命令以调用 NSLog() 绝对是一种解决方案 - 这将在您的应用程序中执行 NSLog()。另一种选择是在断点上添加 python 脚本,在 python 中获取当前时间并打印它 - 这应该比执行劣质函数调用更快(劣质函数调用意味着在您的应用程序中执行函数调用,而不是在 Xcode/lldb )。我不认为 Xcode 断点编辑器可以添加 python 命令,但是,您需要在调试器控制台窗口中或通过 ~/.lldbinit 文件(或您在控制台中获取的命令文件)来完成。
    • 这令人失望,我认为这将是调试器中一个相对常见(且易于实现)的功能,而且我想在 GDB 到 LLDB 的过渡中又是一个牺牲品。 :-(
    • 我认为您没有看到 lldb vrs。 gdb 变化,也许是 Xcode 3 和 Xcode 4 的变化?
    • 你说得对,gdb 中的时间戳功能并没有按照我的描述做。也就是说,这不应该是 LLDB 或 Xcode 的 debugger-wrapper-GUI 的内置功能吗?
    • 这是一个很好的功能创意,我建议在 bugreport.apple.com 提交错误报告。
    【解决方案2】:

    在消息行中写: [您的留言] @Date().timeIntervalSince1970 * 1000@ 这将以毫秒为单位打印时间戳

    【讨论】:

    • 它有效!这对我来说是最好的解决方案,然后我可以使用控制台左下角的按钮过滤掉所有调试消息。
    猜你喜欢
    • 1970-01-01
    • 2017-02-02
    • 2016-07-12
    • 1970-01-01
    • 1970-01-01
    • 2014-07-30
    • 2017-07-27
    • 2016-04-07
    • 1970-01-01
    相关资源
    最近更新 更多