在 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中可能吗?
不确定您要做什么,但 lldb 确实有一个设置可以停止共享库加载:
(lldb) settings set target.process.stop-on-sharedlibrary-events 1
Run Code Online (Sandbox Code Playgroud)
这将导致程序 lldb 在加载新共享库时停止调试。在第一个共享库加载之前,这个过程中没有太多的事情发生,所以这会很早就被发现。
| 归档时间: |
|
| 查看次数: |
2332 次 |
| 最近记录: |