在 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
...
然而,我更喜欢在 lldb 的 Xcode (5) IDE 中工作。那里可能有同样的事情吗?我可以通过菜单“调试”->“附加到进程”->“按进程标识符或名称”成功附加到进程。如果您在那里输入应用程序名称,lldb 将在启动后立即接管该进程。但是,我看不到程序启动时停止执行的方法,即相当于 --start-at-entry。我也没有看到在 IDE 的 lldb 窗口中输入相应命令的方法,因为应用程序尚未启动。
这在IDE中可行吗?
不确定您要做什么,但 lldb 确实有一个设置可以在共享库加载时停止:
(lldb) settings set target.process.stop-on-sharedlibrary-events 1
这将导致 lldb 正在调试的程序在加载新共享库时停止。在第一次加载共享库之前,该过程中没有进行太多操作,因此这将很早就捕获它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)