我在我想调试的OS X 10.6.8上运行一个NPAPI插件。当我使用FireFox 3.6.19加载它时,我可以将活动可执行文件设置为FF,启动FF,使用XCode进行连接,并且断点将在预期时间触发。如何让XCode/GDB打破Safari 5.1 NPAPI插件?
如果使用Safari 5.1,我看到,在用完工艺的插头,所以我创建并激活客户可执行/System/Library/PrivateFrameworks/WebKit2.framework/PluginProcess.app。然后,我启动Safari,导航到托管插件的页面,附加到插件进程,然后使用UI来触发断点,但事实并非如此。我可以告诉用户界面,该插件明确加载。如果暂停过程,我看到:
(gdb) i b
Num Type Disp Enb Address What
1 breakpoint keep y <PENDING> "ADP_NPAPI_Interface.m":34
2 breakpoint keep y <PENDING> "ADP_NPAPI_Interface.m":34
3 breakpoint keep y <PENDING> "ADP_NPAPI_Interface.m":34
4 breakpoint keep y <PENDING> "plugin.cpp":244
5 breakpoint keep y <PENDING> "plugin.cpp":358
6 breakpoint keep y <PENDING> objc_exception_throw
(gdb) show directories
Source directories searched: $cdir:$cwd
(gdb) info sources
No symbol table is loaded. Use the "file" command.
(gdb) file sources
sources: No such file or directory
(gdb) info file
No registers.
No registers.
(gdb) show paths
Executable and object file path: /Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin
DEBUG_INFORMATION_FORMAT = dwarf-with-dsym。我的理解是符号会插入,所以我相信gdb找不到我的源文件。
预先感谢您的帮助, 戴夫,我已经与FireBreath插件偶尔使用
这并不是真的回答这个问题;您的指示用于附加,而OP成功附加,但缺少符号信息。 (此外,只有在需要调试初始化时才需要这种破解,否则不需要暂停并等待附加。) – smorgan
啊,自从我回答后,他添加了更多信息;我相信他没有遵循正确的程序。那么,无论如何这都是有用的信息,所以时间不会被浪费。 – taxilian