デバッガーでのシンボルサーバーの設定
デバッグシンボルを使用すると、より良いデバッグセッションが可能になります。これらには、実行可能ファイルとダイナミックライブラリに含まれる関数に関する情報が含まれており、クリーンなコールスタックを取得するための情報を提供します。シンボルサーバーを使用すると、デバッガーは、ユーザーに大きなデバッグファイルをダウンロードさせることなく、正しいシンボル、バイナリ、およびソースを自動的にロードできます。このサーバーはMicrosoft のシンボルサーバーのように機能するため、そちらのドキュメントが役立ちます。
リリースされた Electron ビルドは高度に最適化されているため、デバッグは必ずしも簡単ではないことに注意してください。デバッガーは、すべての変数の内容を表示することができず、インライン化、末尾呼び出し、その他のコンパイラの最適化のために実行パスが奇妙に見えることがあります。唯一の回避策は、最適化されていないローカルビルドを構築することです。
Electron の公式シンボルサーバーの URL は https://symbols.electronjs.org です。この URL に直接アクセスすることはできず、デバッグツールのシンボルパスに追加する必要があります。以下の例では、サーバーから PDB を繰り返しフェッチすることを避けるために、ローカルキャッシュディレクトリを使用しています。c:\code\symbols
を、お使いのマシンの適切なキャッシュディレクトリに置き換えてください。
Windbg でのシンボルサーバーの使用
Windbg のシンボルパスは、アスタリスク文字で区切られた文字列値で構成されます。Electron のシンボルサーバーのみを使用するには、シンボルパスに次のエントリを追加します (注: c:\code\symbols
は、ダウンロードされたシンボルの別の場所が希望の場合は、コンピューター上の任意の書き込み可能なディレクトリに置き換えることができます)。
SRV*c:\code\symbols\*https://symbols.electronjs.org
この文字列を環境変数 _NT_SYMBOL_PATH
として設定するか、Windbg のメニューを使用するか、.sympath
コマンドを入力します。 Microsoft のシンボルサーバーからもシンボルを取得する場合は、そちらを最初にリストする必要があります。
SRV*c:\code\symbols\*https://msdl.microsoft.com/download/symbols;SRV*c:\code\symbols\*https://symbols.electronjs.org
Visual Studio でのシンボルサーバーの使用
トラブルシューティング: シンボルがロードされない
Windbg で次のコマンドを入力して、シンボルがロードされない理由を出力します。
> !sym noisy
> .reload /f electron.exe