jsinterp.cpp ファイルを編集して、SpiderMonkey でスレッド化されたデバッグ ダンプを有効にしようとしています。基本的に、私がやろうとしていることは次のとおりです。
- Interpret() のメイン ループが始まる前に JSScript をキャッチします。
- 別のスレッドを開きます。
- そのスレッドで、スクリプトを使用して js_Disassembly を呼び出し、マシン コードを取得します。
- マシン コードをファイルに書き込みます。
スレッド化されたバージョンを試す理由は、単純にパフォーマンスの問題です。disassmeble を実行して出力を同じスレッドに書き込むと、一部のアドオンが「応答しなくなります」。単一のスレッドである程度の出力を取得できますが、遅すぎます。
スレッドの作成については、 https://developer.mozilla.org/en/Making_Cross-Thread_Calls_Using_Runnablesのチュートリアルに従いました。しかし、ビルドすると、11 の「未解決の外部シンボル エラー」に直面しました。再びグーグルで調べたところ、#define XPCOM_GLUE 1 で XPCOM_GLUE を設定することがわかりました。ただし、今回は「基本クラス nsRunnable が定義されていません」という新しい問題に直面しています。これに対する解決策が見つかりません。
どんな助けでも大歓迎です。ありがとう、