在Xcode 8中使用Debug -> Attach to Process by PID or Name...
,我可以在将lldb附加到它之前等待程序启动,类似于命令行中的process attach --name FOO --waitfor
。
就像启动程序时一样,命令行会在程序启动时挂起程序,将程序放在macho
或dyld
的某处。从那里,我可以设置断点,然后继续(或基本上启动)程序并开始我的调试。
然而,Xcode成功附加到程序但立即继续执行。因此,我无法在启动逻辑的早期部分设置断点。
有没有办法在附加之前添加断点,或者阻止Xcode自动恢复进程?
答案 0 :(得分:1)
没有选项让Xcode在连接后不自动继续。但是,有几种方法可以插入断点。
如果您要附加的流程是使用Xcode项目构建的流程,那么您可以编辑该项目的运行方案,并在Info
选项卡集Launch
中{ {1}}然后点击Wait for Executable to launch
。这告诉Xcode你附加的东西从这个项目得到它的断点,并在继续之前设置它们。然后只需设置文件& Xcode中的线或符号断点,以及你的路上。
如果你不能这样做,那么你可以使用〜/ .lldbinit文件中设置的断点复制到lldb调试的所有新目标这一事实。这是强制某些断点进入Xcode调试会话的另一种方法。所以只需在那里设置你的断点,它们应该在附加时被选中。