Chrome:将nacl-gdb附加到作为解压缩扩展加载的打包应用程序

时间:2013-05-29 20:10:47

标签: google-chrome google-chrome-extension gdb google-nativeclient

我已经构建了一个简单的NaCl应用程序。为了运行应用程序,我使用Nacl Developer's guide中描述的技术2,这意味着我将应用程序加载为chrome的解包扩展,而不是运行本地服务器。到目前为止,该应用程序运行良好。

现在我想尝试使用nacl-gdb并在启动时将我的应用程序附加到它。 在NaCl开发人员指南中,只有关于如何在使用本地服务器运行的应用程序上附加nacl-gdb的说明(技术1)。我搜索到了互联网,我最终得到了以下方法,以便为使用技术2运行的应用程序附加nacl-gdb:

  1. 我启用了Chrome的“基于Native Client GDB的调试”标志。
  2. 我从这样的终端开始使用chrome:./ chrome“--nacl-gdb = gnome-terminal - /媒体/ SDB1 / leonidasbo / AncientRoot / nacl_sdk / pepper_27 /工具链/ linux_x86_glibc / bin中/ x86_64的-NaCl的GDB“
  3. Chrome启动后,我导航到我的应用程序。
  4. 通过这种方法,Chrome在我打开应用程序时自动启动了nacl-gdb。 然而,nacl-gdb试图附加但没有成功。输出如下:

    *此GDB配置为“--host = x86_64-unknown-linux-gnu --target = x86_64-nacl”。 从/opt/google/chrome/nacl_irt_x86_64.nexe ...处读取符号(找不到调试符号)...完成。 不知道如何附加。尝试“帮助目标”。 (GDB)*

    似乎gdb无法附加到我的应用程序。我尝试执行“target exec /path/to/my.nexe”,但没有改变。 我在这里错过了什么吗?有没有其他方法可以使用nacl-gdb来调试作为解包扩展加载的应用程序?

    我的操作系统是Ubuntu 12.04,我使用的是nacl_sdk的pepper_27。 Chrome版本为27.0.1453.93。

    由于

1 个答案:

答案 0 :(得分:1)

我假设您使用的是this guide,我之前也在使用它。它已经过时了。的 These are the real instructions 即可。您附加调试器的方式似乎已完全更改,并且不再可能使用--nacl-gdb(即planned for removal)。您必须按照以下步骤手动附加调试器。

完整指南是 here ,但我会总结一下:

  1. 使用chrome --enable-nacl --enable-nacl-debug --no-sandbox --disable-hang-monitor启动Chrome。
  2. 运行<NACL_SDK_ROOT>/toolchain/win_x86_newlib/bin/x86_64-nacl-gdb(不带参数)。
  3. 在gdb提示符中输入以下命令:
    • (gdb) nacl-manifest <path-to-your-.nmf-file>
    • (gdb) nacl-irt <CHROME-DIR>/nacl_irt_x86_64.nexe
    • (gdb) target remote localhost:4014
  4. 现在你可以正常使用gdb了。 (如果您只想运行应用程序直到它崩溃,请先键入continue。)