1

私は、pepper-25で導入された新しい MessageLoop クラスを使用しているので、ファイル IO の ppapi 呼び出しをブロックしてバックグラウンド スレッドを実行できます。これまで、フラグ--single-processを使用してビジュアル スタジオから chrome を実行していた--register-pepper-pluginsので、ビジュアル スタジオ内からプラグインをデバッグできました。

PPB_GetInterface get_browserこれらのフラグを使用すると、 forの呼び出しPPB_MESSAGING_INTERFACEが null を返していることがわかりました。いくつかの検索の結果、サポートを受けるにはフラグを使用して実行する必要があるというこの問題が見つかりました。--ppapi-out-of-processMessageLoop

そのフラグを追加get_browserすると、有効なインターフェイス ポインターが返されますが、プラグインが実行されている子プロセスにアタッチできないため、ビジュアル スタジオ ide でプラグインをデバッグできなくなりました。プラグインプロセスにアタッチするように指示する方法や、をサポートする単一のプロセスから実行する方法はありMessageLoopますか?

ありがとう、ジェームズ

4

1 に答える 1

2

Visual Studio を自動的に子プロセスにアタッチするには、WinDBG のような子プロセスをデバッグするために Visual Studio を作成できますか?で説明されている回避策を使用できます。.

別のアプローチは、フラグを使用して--no-sandboxChrome--ppapi-startup-dialogを起動することです。これにより、プラグイン プロセスが作成されたときに、メッセージ ボックスにプロセス ID が表示されます。その後、Debug -> Attach to process... -> pick process id を使用して、Visual Studio デバッガーをそのプロセスに接続できます。もちろん、Chrome フラグを使用せずにプロセスにアタッチすることもできますが、それは自動ではありません。そのため、同時に多数のプロセスを実行している場合に、適切なプロセスにアタッチしていることを確認できます。

3 つ目の方法は、Microsoft が提供する無料のデバッガー WinDbg を使用することです。これは複雑で、Visual Studio の組み込みデバッガーよりもユーザー フレンドリーではありませんが、子プロセスに自動的にアタッチする機能があります。http://msdn.microsoft.com/en-us/windows/hardware/gg463009.aspxからダウンロードできます。

MessageLoop に関しては、インプロセス プラグインではサポートされません。リンク先の問題が言及しているように、回避策なしで Visual Studio デバッガーを自動的にアタッチできないという不便さが追加されたとしても、開発者はアウトプロセスに移行する必要があります。

于 2013-01-17T22:16:51.363 に答える