【问题标题】:Chrome: Attaching nacl-gdb to packaged application loaded as an unpacked extensionChrome:将 nacl-gdb 附加到作为解包扩展加载的打包应用程序
【发布时间】:2013-05-29 20:10:46
【问题描述】:

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

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

  1. 我启用了 Chrome 的“基于本机客户端 GDB 的调试”标志。
  2. 我从这样的终端启动了 chrome:./chrome "--nacl-gdb=gnome-terminal -- /media/sdb1/leonidasbo/AncientRoot/nacl_sdk/pepper_27/toolchain/linux_x86_glibc/bin/x86_64-nacl-gdb"
  3. Chrome 启动后,我导航到我的应用程序。

通过这种方法,当我打开我的应用程序时,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。

谢谢

【问题讨论】:

  • 我在新构建的带有 Pepper 29 的 Chrome / NaCl SDK 中遇到了完全相同的问题。目前还没有解决方案。
  • 你在使用this guide吗?我也是,但事实证明它已经过时了。

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


【解决方案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

现在您可以正常使用 gdb。 (如果您只想运行应用程序直到它崩溃,请输入continue。)

【讨论】:

  • 本指南是最新的,但不包括作为解压缩扩展加载的应用程序的说明。例如,第三个项目符号((gdb)目标远程本地主机:4014)的步骤不适用,因为我没有运行任何服务器来加载我的应用程序。
  • 它确实适用于打包的应用程序(事实上我正在使用它)。我链接到的指南使用两个 localhost 地址:一个是 4014,一个是另一个;我编辑了另一个,因为它不适用于打包的应用程序。 localhost:4014 是连接 GDB 客户端的 GDB 服务器地址。它使用 --enable-nacl-debug 自动运行。
猜你喜欢
  • 2023-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-24
相关资源
最近更新 更多