我正在尝试通过编辑 jsinterp.cpp 文件在 SpiderMonkey 中启用线程调试转储。基本上,我想做的事情如下:
- 在 Interpret() 的主循环开始之前捕获一个 JSScript。
- 打开一个单独的线程。
- 在该线程中,使用脚本调用 js_Disassemble 以获取机器代码。
- 将机器代码写入文件。
尝试线程版本的原因仅仅是出于性能问题。如果我运行 disassmeble 并将输出写入同一个线程,一些插件会变得“无响应”。我可以在单个线程中获得一些输出,但它太慢了。
我按照https://developer.mozilla.org/en/Making_Cross-Thread_Calls_Using_Runnables 中的教程创建线程。但是当我构建它时,我遇到了 11 个“未解决的外部符号错误”。再次谷歌搜索后,我发现通过#define XPCOM_GLUE 1 设置XPCOM_GLUE。但是,这次我面临一个新问题:“未定义基类nsRunnable”。我找不到解决方案。
任何帮助,将不胜感激。谢谢,