LLDB - 在... exit 上退出?

3
我当前正在编写一个脚本,以彻底自动化我的编译运行调试程序,针对Cocoa/Objective-C项目。 我的最后一行代码是:
lldb -f Build/MyApp.app -o "run"

该命令将打开调试器,附加进程并运行它。

然而,当应用程序退出时,调试器保持开启状态,等待指令。

有没有办法使得在所附加的进程退出后,调试器也关闭?

2个回答

4
使用Python接口会为您带来更大的灵活性和能力,如果您计划自动化更复杂的任务,那么学习它绝对是值得的。
然而,您应该能够说:
lldb -f <Whatever> -o run -o quit

目前无法正常工作只是一个漏洞。几天前,这个问题已经在最新版本的lldb中得到了解决。不知道它将何时出现在由Apple发布的Xcode中,但它也应该很快能够正常工作。


1
非常感谢。我尝试了,但是它没有起作用 - 所以知道这点很好! - Dr.Kameleon

1
一种方法是使用Python绑定并监听来自lldb的事件。
如果您运行以下脚本,它将在调试模式下启动应用程序,如果关闭应用程序,脚本也会结束:

http://www.opensource.apple.com/source/lldb/lldb-179.1/examples/python/process_events.py

可能还有其他的方法可以使用:

  • 运行应用程序,
  • 获取正在运行的应用程序的进程ID,
  • 启动lldb并附加到pid上
  • 监控应用程序是否正在运行,如果没有则杀死lldb。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接