例如,我在调试Xcode 5中的程序时定义了lldb摘要字符串。
type summary add -s "${var._operation} ${var._text}" DMDiff
Run Code Online (Sandbox Code Playgroud)
这很好。但是,当我关闭Xcode,重新启动它并继续调试会话时,我的摘要字符串不见了。事先保存项目没有任何区别。
我的问题是:使这些摘要字符串从Xcode会话到Xcode会话持续存在的最佳方法是什么,即将它们保存在项目或调试信息中?
解决方法:我确实发现我可以在〜/ .lldbinit文件中定义摘要字符串,以使它们持久化,并且可以正常工作。但是,这似乎有点麻烦,而且是全球性的,而不是基于每个项目。我可能希望不同项目中的数据类型使用不同的摘要字符串。
在 lldb 命令行中,我可以使用 --stop-at-entry 选项通过编写以下命令来停止执行程序(没有调试符号):
(lldb) target create /bin/ls
Current executable set to '/bin/ls' (x86_64).
(lldb) process launch --stop-at-entry
Process 22250 launched: '/bin/ls' (x86_64)
Process 22250 stopped
* thread #1: tid = 0xc46fa, 0x00007fff5fc01028 dyld`_dyld_start, stop reason = signal SIGSTOP
frame #0: 0x00007fff5fc01028 dyld`_dyld_start
dyld`_dyld_start:
-> 0x7fff5fc01028: popq %rdi
...
Run Code Online (Sandbox Code Playgroud)
但是,我更喜欢在 Xcode (5) IDE 中为 lldb 工作。那里可能有同样的事情吗?我可以通过菜单调试->附加到进程->按进程标识符或名称成功附加到进程。如果您在那里输入应用程序名称,lldb 将在启动后立即接管该过程。但是,我认为没有办法在程序启动时停止执行,即相当于 --start-at-entry。我也没有看到在 IDE 的 lldb 窗口中输入相应命令的方法,因为应用程序尚未启动。
这在IDE中可能吗?