我正在尝试让nacl-gdb使用nacl_sdk提供的示例应用程序之一。特别是,我正在尝试使用get_started / part1文件夹中的示例hello_tutorial应用程序(本教程中的存根代码:https://developers.google.com/native-client/dev/devguide/tutorial/tutorial-part1)。
我已尝试按照此处的说明操作:https://developers.google.com/native-client/dev/devguide/devcycle/debugging#debugging-with-nacl-gdb
但是每当我连接到目标时,gdb会打印出以下内容:
(gdb) target remote localhost:4014
Remote debugging using localhost:4014
warning: Can not parse XML target description; XML support was disabled at compile time
0x00000000 in ?? ()
然后我可以继续并运行应用程序,但没有调试符号它会非常有用。有谁知道为什么这可能无法正常工作?
我执行了以下步骤:
Makefile
以构建hello_tutorial.pexe
而不进行最终确定,并在编译时添加-g
标记,然后重新运行make。pnacl-translate
从未完成的.pexe创建.nexe文件。
../../toolchain/linux_pnacl/bin/pnacl-translate --allow-llvm-bitcode-input hello_tutorial.pexe -arch x86-64 -o hello_tutorial_x86_64.nexe hello_tutorial.nmf
以指向nexe文件而不是pexe文件。index.html
以指向“application / x-nacl”,而不是“application / x-pnacl”使用以下命令启动Chrome:
/opt/google/chrome/chrome --enable-nacl --enable-nacl-debug --no-sandbox --disable-hang-monitor localhost:5103
使用以下命令从part1文件夹启动调试器:
../../toolchain/linux_x86_newlib/bin/x86_64-nacl-gdb
从gdb中运行以下命令。 (注意,当从nacl_irt_x86_64.nexe读取时,它显示“找不到调试符号” - 这是一个问题吗?)
(gdb) nacl-irt hello_tutorial_x86_64.nexe
Reading symbols from /home/bender/dev/nacl_sdk/pepper_33/getting_started/part1/hello_tutorial_x86_64.nexe...done.
(gdb) nacl-irt /opt/google/chrome/nacl_irt_x86_64.nexe
Reading symbols from /opt/google/chrome/nacl_irt_x86_64.nexe...(no debugging symbols found)...done.
(gdb) target remote localhost:4014
Remote debugging using localhost:4014
warning: Can not parse XML target description; XML support was disabled at compile time
0x00000000 in ?? ()
我在Linux上运行:
Linux bender-VirtualBox 3.11.0-18-generic #32-Ubuntu SMP Tue Feb 18 21:11:14 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
答案 0 :(得分:1)
如果我使用pepper_canary而不是pepper_33,看起来这样可以正常工作。在此链接中找到了一些信息:https://code.google.com/p/nativeclient/issues/detail?id=3739