gdb从命令行运行,但不是从脚本运行

时间:2009-12-07 18:50:18

标签: objective-c gdb

如果我在控制台gdb中执行此脚本的每一行,它按预期工作(除了分离挂起,但我可以解决此问题。)但是,如果我将其保存到脚本文件并使用-x选项运行gdb它挂在[Visor install]行。很高兴知道它为什么这样做,或者甚至只是一个hacky解决方法。

剧本:

break -[NSApplication finishLaunching]
run
p (char)[[NSBundle bundleWithPath:@"~/Library/Application Support/SIMBL/Plugins/Visor.bundle"] load]
p (char)[Visor install]
detach
quit

运行:

gdb ~/Desktop/misc/dt/dt2/VisorTerminal.app/Contents/MacOS/Terminal -x load.gdb

版本:

$ gdb --version
GNU gdb 6.3.50-20050815 (Apple version gdb-1346) (Fri Sep 18 20:40:51 UTC 2009)
...
This GDB was configured as "x86_64-apple-darwin".

更新

如果我将cat文件导入GDB,它会挂起,除非行之间有3秒的等待,这可能是多线程问题还是什么?

2 个答案:

答案 0 :(得分:0)

也许你需要使用-batch选项。

答案 1 :(得分:0)

丑陋的解决方法:在问题调用之前添加一个睡眠调用。一个更好的解决方案仍然值得赞赏。

break -[NSApplication finishLaunching]
run
p (char)[[NSBundle bundleWithPath:@"~/Library/Application Support/SIMBL/Plugins/Visor.bundle"] load]
p (void) sleep(10)
p (char)[Visor install]
detach
quit