在MAC上调试32位NACL exe?

时间:2012-12-24 10:15:39

标签: gdb google-nativeclient

我希望在mac平台上调试32位nacl exe。我无法调试它,因为在mac平台上我找不到32位nacl-gdb。有没有人成功完成它?

1 个答案:

答案 0 :(得分:1)

GDB for Native Client在Pepper 23中发布,因此请首先检查您是否正在使用Pepper 23版本的NaCl SDK或更新版本。 (要下载SDK的任何新版本,请从./naclsdk update目录中发出nacl_sdk。完成后,您应该会看到pepper_23目录(或更新版本)。该目录中的工具。)

在SDK中,GDB二进制文件位于这些位置(例如基于Pepper 23):

nacl_sdk/pepper_23/toolchain/mac_x86_glibc/bin/i686-nacl-gdb
nacl_sdk/pepper_23/toolchain/mac_x86_glibc/bin/x86_64-nacl-gdb
nacl_sdk/pepper_23/toolchain/mac_x86_newlib/bin/i686-nacl-gdb
nacl_sdk/pepper_23/toolchain/mac_x86_newlib/bin/x86_64-nacl-gdb

这两个i686-nacl-gdb实际上只是两个x86_64-nacl-gdb的符号链接。 x86_64-nacl-gdb二进制文件允许您调试32位和64位x86 NaCl目标。但是,在Mac上,Chrome总是32位,并且总是运行32位.nexe,即使您的操作系统或机器是64位。

newlib和glibc工具链都包含一整套工具;这就是为什么你有两个x86_64-nacl-gdb二进制文件。目前,这两者没有区别,但为了您自己的理智,在与构建所用工具相同的目录中使用GDB可能最容易。

https://developers.google.com/native-client/devguide/devcycle/debugging#gdb还有一些额外的指导。最重要的是将标记--enable-nacl-debug传递给Chrome,或在Chrome中的about:flags下激活它。这将导致Chrome在执行Native Client内容之前等待调试器连接。