1

私が収集したものから、Google Chrome はNPAPIを使用して記述されたブラウザー プラグインを実行できます。

Firefox で問題なく機能するものを作成しましたが、ページに埋め込むとすぐに Chrome がクラッシュして焼き付きます。メソッドを呼び出す必要さえありません。埋め込みはクラッシュを引き起こすのに十分です。

これをデバッグするにはどうすればよいですか? デバッガーをクロムに接続しようとしましたが、得られるスタックトレースはChrome自体の奥深くにあり、前述のように、「私の」実際のコードは実行されておらず、おそらくNPAPI初期化コードのみが実行されています.

いくつかの指針をいただければ幸いです。

4

3 に答える 3

4

Chromium開発ドキュメントでは、VisualStudioをChromeプロセスにアタッチするためのいくつかの秘訣について説明しています。Chromium開発者向けドキュメント>Chromiumのデバッグ

ChromeのNPAPIプラグインで直面する可能性のあるいくつかの問題:

  • プラグインは、ChromeUIとは別のプロセスで実行されます。(あなたはおそらくこれをすでに知っています:)
  • プラグインの複数のインスタンスが(同じHTMLページまたは異なるChromeタブに)ロードされている場合、プラグインインスタンス同じプロセスで一緒に実行されます。グローバル変数がある場合は、プラグインインスタンスが互いに踏みにじっている可能性があります。
  • ChromeはDEP(データ実行保護)を使用しますが、Firefoxは使用しません。ATLまたはその他のJITtedコードトリックを使用している場合、DEPはプラグインをクラッシュさせる可能性があります。
于 2009-02-03T18:17:36.400 に答える
2

Chromeはオープンソースです...ソースをダウンロードしてビルドしてみましたか?そうすれば、少なくともIDEをソースコードツリーにポイントして、クラッシュ時に自動接続させることができます。これにより、何が起こったのかについてもう少し情報を得ることができます。

もちろん、これでバグが解決するわけではありませんが、Chromeチームに報告するのに役立つ場合があります。ご存知のとおり、プラグインAPIはChromeにとってかなり新しいものであり、バグがあなたのものではなく、彼らのものである可能性があります。

于 2009-02-02T20:06:50.473 に答える
2

結局のところ、私が使用していた古い NPAPI プラグインの例の初期化コードの一部がクラッシュの原因でした。申し訳ありませんが、かなり前にこれを解決しましたが、バージョン管理履歴で修正するために行った特定の変更を見つけることができないようです。とにかく、私の問題は修正されました。これは、私が愚かで盲目的にコード例を信頼したことが原因でした。

于 2009-02-04T09:13:08.573 に答える