在调试时如何让nacl-gdb显示调试符号?

时间:2014-03-25 18:27:30

标签: gdb google-nativeclient

我正在尝试让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 ?? ()

然后我可以继续并运行应用程序,但没有调试符号它会非常有用。有谁知道为什么这可能无法正常工作?

我执行了以下步骤:

  1. 修改Makefile以构建hello_tutorial.pexe而不进行最终确定,并在编译时添加-g标记,然后重新运行make。
  2. Ran 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
  3. 修改hello_tutorial.nmf以指向nexe文件而不是pexe文件。
  4. 修改index.html以指向“application / x-nacl”,而不是“application / x-pnacl”
  5. 使用以下命令启动Chrome:

    /opt/google/chrome/chrome --enable-nacl --enable-nacl-debug --no-sandbox --disable-hang-monitor localhost:5103
    
  6. 使用以下命令从part1文件夹启动调试器:

    ../../toolchain/linux_x86_newlib/bin/x86_64-nacl-gdb
    
  7. 从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 ?? ()
    
  8. 我在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
    

1 个答案:

答案 0 :(得分:1)

如果我使用pepper_canary而不是pepper_33,看起来这样可以正常工作。在此链接中找到了一些信息:https://code.google.com/p/nativeclient/issues/detail?id=3739