编译并链接了一个 NaCl 模块后,我现在正在尝试调试它为什么似乎无法运行。不幸的是,该平台没有传递任何关于为什么什么都没有发生的信息。
我不敢相信我在问这个基本的问题,但是你必须做什么才能让一个 printf() 语句出现在 stdout/stderr 中?还是在 Javascript 控制台中?
是的,我已经阅读了有关调试的 SDK 页面并启用了所有数十个环境变量和标志,我已经将日志记录的详细程度提高到了最大值,而且绝对没有一个会产生最明显的差异。任何信息都不会出现在任何地方。
JS 控制台偶尔会打印“ServiceRuntime::Start (start failed)”行(也出现在标准输出中),但更多时候我什么也得不到。
NaCl SDK 版本是 28,我在 OS X Mavericks 上运行 Chrome 30。
用于使用 SDK 中的 Graphics 3D 示例启动 Chrome 的命令:
export NACL_EXE_STDERR=~/nacl_stderr.log
export NACL_EXE_STDOUT=~/nacl_stdout.log
open -a "Google Chrome" http://localhost:5103/api/graphics_3d/ --args --enable-logging --no-sandbox --vmodule=ppb*=4
这应该会生成大量日志记录,但永远不会创建日志文件。