背景
デバッグシンボルは、バイナリから報告されるクラッシュから、関数名や行番号などの情報が抜けている場合に必要です。デバッグシンボルがないと、Backtrace で人間が判読できる形式でコールスタックを提供したり、効果的に重複排除したりすることができません。Backtrace を使用すると、シンボルをシステムに直接アップロードしたり、管理しているプライベートシンボルサーバーから必要に応じてシンボルを取得したりすることができます。
symbold is the name of the service in Backtrace that is responsible to gather symbols from connected symbol servers or stores (see this guide from Microsoft about setting up symbol servers and symbol stores). symbold scans the missing symbols logs, downloads those symbols from connected symbol servers, converts them into a variety of formats, and then reprocesses the set of objects referencing those missing symbols. symbold comes preconfigured by Backtrace to automatically download symbols from public 3rd party symbol servers of commonly used libraries such as those from Electron, Microsoft, and others. We refer to these as default public symbol servers. Backtrace also allows administrators to configure connections to their own private symbol servers to further speed debugging time and minimize setup effort.
機能の概要
Enterprise プランをご利用のお客様は、デフォルトのパブリックシンボルサーバーのホワイトリストとブラックリストを管理できるほか、独自のプライベートシンボルサーバーを追加して設定を簡略化し、すべてのコールスタックを人間が判読できる形式にすることで、デバッグにかかる時間を短縮できます。このガイドで確認する具体的な機能は次のとおりです。
- Backtrace によって設定されたデフォルトのパブリックシンボルサーバーに関する統計と情報を確認し、それらのホワイトリスト/ブラックリストを管理する。
- プロジェクトで使用する 1 つ以上のプライベートシンボルサーバーを追加する
- プライベートシンボルサーバーの統計と利用状況を確認する
- ホワイトリストとブラックリストを管理する
- スキップされたリストとログファイルを確認して、シンボルの取得と変換に関する問題をより詳しく診断する。
機能の詳細
シンボルサーバーには、「プロジェクト設定」からアクセスできます。
Backtrace によって設定されたデフォルトのパブリックシンボルサーバー
プロジェクトごとに、Backtrace によって設定されたデフォルトのパブリックシンボルサーバーに関する情報を表示できます。これらには、msdl.microsoft.com、symbols.mozilla.org、electron-symbols.githubapp.com、download.amd.com のシンボルサーバーが含まれます。
Enterprise プランをご利用のお客様で、かつ専用ホストまたはオンプレミスのホストを使用している場合は、Backtrace によって設定されたそれらのデフォルトのパブリックシンボルサーバーの接続、再試行回数、ブラックリスト、ホワイトリストを自分で管理できます。共有展開(Enterprise 以外)を使用している場合は、パブリックシンボルサーバーの設定を、共有ホスト上の他のすべての組織と共有します。そのため、統計や利用状況、ホワイトリスト、ブラックリスト、スキップリスト、ログなどの共有された情報を表示することはできますが、編集することはできません。
以下に示すのは、シンボルサーバーの管理 UI のスクリーンショットです。「プロジェクト設定」 > 「シンボル」 > 「シンボルサーバー」の順に移動してアクセスします。
注 - これらのデフォルトのパブリックシンボルサーバーの範囲は組織全体です。これはつまり、利用状況と統計、ホワイトリスト、ブラックリスト、スキップリスト、ログはプロジェクトごとには変更されないということです。次に、各タブとその中のデータについて簡単に説明します。
- 「統計と利用状況」 - このタブには、システムにシンボルサーバーが追加されてからダウンロードされたデータの量や、成功または失敗したダウンロード数に関する情報が表示されます。
- 「ホワイトリスト」 - ホワイトリストが有効になっている場合は、ホワイトリスト内のシンボルファイルのみがダウンロードされます。デフォルトでシードされているパブリックシンボルサーバーについては、ホワイトリストが有効になっており、一般的に使用されるシンボルが取得対象としてリストされます。
- 「ブラックリスト」 - ブラックリスト内の項目は、シンボルサーバーからのダウンロードが試行されません。管理者は、スタックトレース情報で何も変更しない、追加のデバッグ情報を一切追加しない、ネットワーキングの問題のみを引き起こす可能性がある(ファイルが大きすぎる、あまりにも頻繁に変更される)項目を、ブラックリストに追加します。
- 「スキップリスト」 - 指定した再試行回数以内にシンボルサーバーからダウンロードされない項目は、自動的にスキップリストに追加されます。スキップリスト内のシンボルは、それ以降はダウンロードが試行されません。
- 「ログ」 - 成功したダウンロードと失敗したダウンロード、変換の試行に関する情報をログに記録します。
新しいシンボルサーバーを追加または編集する
Customers on our Enterprise plan can add new private symbol servers to connect to. These can be a symbol server or symbol store provided by Microsoft Debugging tools for Windows, or a simple AWS S3 Bucket.
You will need the following information to connect:
- 「URL」 - シンボルサーバーまたは S3 バケットに接続するための HTTPS URL。
- When using an AWS S3 bucket, use the HTTPS URL of the region the S3 bucket is hosted from.
- 「名前」 - この接続のわかりやすい名前。
- ホワイトリストを有効にするかどうか。プライベートシンボルサーバーの最も一般的な設定は、ホワイトリストを使用せず、ブラックリストにもスキップリストにもないすべてのシンボルのダウンロードがオンデマンドで試行されるようにすることです。ホワイトリストが有効になっている場合、システムではホワイトリストで指定されたシンボルのみのダウンロードが試行されます(その他のシンボルはダウンロードされません)。
- 「資格情報」 - Basic 認証またはバケット名、S3 キー、S3 シークレットを使用した S3 認証がサポートされています。
- 「プロキシオプション」 - プロキシサーバーが必要な場合。
- 「ダウンロードオプション」 - 許可する同時ダウンロード数、シンボルをスキップリストに追加する前の試行回数のオプション。
以下に「シンボルサーバーを追加」画面の UI のスクリーンショットを示します。
管理者が新しいシンボルサーバーを追加すると、symbold によって接続が検証されます。こうすることで、定義したシンボルサーバーが接続の問題で機能しない状況を回避できます。
管理者ユーザーとして、シンボルサーバーを無効にできます。シンボルサーバーに問題がある場合や、何らかの理由でシンボルサーバーが利用できるようにならない場合は、シンボルサーバーの有効と無効を切り替えることができます。
シンボルサーバーを追加した後は、コンテキストメニューを使用して、そのシンボルサーバーを編集または削除できます。
統計と利用状況を表示する
選択したシンボルサーバーごとに、利用状況を表示して統計をダウンロードできます。これには次の情報が含まれます。
- ダウンロードされた合計バイト数
- 成功したダウンロードと失敗したダウンロードの総数
- 段階(ダウンロードまたは変換)に基づく失敗の内訳
この情報は、その項目がシンボルサーバーとして symbold に追加されてからずっと有効です。この情報が含まれるスクリーンショットは以下のとおりです。
ホワイトリストとブラックリストを管理する
ホワイトリストとブラックリストは、サーバーごとに管理できます。
最も一般的なのは、シンボルサーバーからダウンロードしたくないシンボルをブラックリストに設定することです。ユーザーは、スタックトレース情報で何も変更しない、追加のデバッグ情報を一切追加しない、ネットワーキングの問題のみを引き起こす可能性がある(ファイルが大きすぎる、あまりにも頻繁に変更される)項目を、ブラックリストに設定します。
サーバーでホワイトリストが有効になっている場合は、ホワイトリスト内の項目がフェッチされます。
行の上にカーソルを合わせて削除アイコンを選択すると、その項目をホワイトリストやブラックリストから削除できます。
Following is a screenshot to show the whitelist entries and a dialog to enter more items to the whitelist, as well as a delete icon for one of the items in the list to show how it can be removed.
スキップリストとログを表示する
「スキップリスト」 - 何回か再試行してもフェッチできない項目は、スキップリストに入ります。管理者は、シンボルサーバーのメイン設定で再試行に関する情報を指定できます。スキップリスト内の項目は、ダウンロードの問題をさらに引き起こすことがないように、後続のダウンロード試行中にスキップされます。項目のダウンロードを再試行する場合は、削除アイコンを使用してその項目をスキップリストから削除します。
「ログ」タブには、ダウンロード、取得、再試行などの成功した回数と失敗した回数が表示されます。これは、シンボルサーバーの接続の動作を理解するのに役立ちます。