概要
問題の根本原因を突き止めるために Backtrace デバッガーを使用しているエンジニアにとって、スタックトレース内のフレームに関連付けられているソースコードを確認できると便利です。Backtrace ではこれに対応するために、ソースコードインテグレーションサービスを提供しています。
管理者は、「プロジェクト設定」の「ソースコード」タブを使用して、デバッガーのビューでソースコードの表示を設定できます。Backtrace またはソースコードをオンプレミスに展開している場合は、backtrace-source-control サービスを展開する必要がある場合があります。詳細については、サポートチームにご相談ください。
サポートされているソース管理システム
ソースコードインテグレーションサービスは、クラウドベースまたはオンプレミスの GIT や Perforce Helix ベースのシステムに統合されます。オンプレミス展開の詳細については、サポートチームにお問い合わせください。
ソース管理を管理する
「プロジェクト設定」セクションで、「ソースコード」タブに移動します。
リポジトリとルールを管理できます。リポジトリとは、エンドユーザーに選択したフレームと一緒にデバッガーのビューで表示するソースコードを検索するために、ソースコードインテグレーションサービスが接続されるソースコードリポジトリのことです。ルールは、ソースコードインテグレーションサービスで適切なソースコードを検索する際に、あるリポジトリを別のリポジトリより優先して検索するよう指定する必要があるときに使用されます。ルールは必須ではありませんが、間違ったリポジトリからのソースコードが表示されている場合に役立ちます。
リポジトリを追加して管理する
ソースコードを確認するリポジトリを必要な数だけ追加します。通常、チームは認証によって保護されている可能性のあるプライベートリポジトリを追加するほか、使用する他のコンポーネント用に(github.com を通じて)任意のサードパーティのパブリックリポジトリやプライベートリポジトリを追加します。
作成されると、そのリポジトリの状態とどのようなアクションが実行されているかを示す、小さな状態アイコンが表示されます。Backtrace では URL と認証情報をテストするために接続とフェッチを試行してから、そのリポジトリのクローンを開始します(適宜エラーメッセージが表示されます。大規模なリポジトリのクローンを作成するには数分かかる場合があるのでご注意ください)。
GIT ベースのシステム
「Add a Github repository(GitHub リポジトリを追加)」ボタンを使用して、リポジトリの設定を開始します。
接続情報:Backtrace ソース管理は、GIT ベースのシステムと統合できます。名前、URL(HTTP または SSH ベース)、認証方法(なし、ユーザー名/パスワード、SSH キー)を指定する必要があります。
注 - 適切な URL と認証情報を取得し、SCM へのアクセスを設定するには、お使いのソース管理システムを操作する必要がある場合があります。
リビジョン:GIT システムでは、さまざまな時点でソースコードのスナップショットを取得し、それらをリビジョンとして管理します。一致するソースコードを検索するときに、試行するリビジョンの順序付きリストを指定できます。指定できるリビジョンタイプには、ブランチ名、タグのほか、長短の SHA-1 ハッシュが含まれます。{属性} テンプレート構文を使用して、リビジョン文字列に動的に含める属性を指定できます。
デフォルトでは、Backtrace では「master」ブランチをチェックしますが、より詳細なブランチが先にチェックされるよう指定するニーズがあると考えています。たとえば、一般的なパターンは、リリースにタグを付ける標準的な方法として、「release/{アプリケーション}/{バージョン}」を使用することです。その他の例:
release/{バージョン}
{コミット}
729e0d9a
master
main
Backtrace では、適切なソースコードをフェッチするために、リポジトリ内でそれらのリビジョンの検索を試行します。
Perforce システム
「Add a Perforce Depot(Perforce デポを追加)」ボタンを使用して、リポジトリの設定を開始します。
接続情報:Backtrace ソース管理は、p4 コマンドラインユーティリティを使用して、Perforce システムと統合できます。名前、ホスト、ポート、ユーザー名、パスワードを指定する必要があります。
ソースコードのデポパス:
一致するソースコードを検索するときに、試行するデポパスのリストを順番に指定する必要があります。
Backtrace では、適切なソースコードをフェッチするために、リポジトリ内でそれらのデポパスの検索を試行します。
設定とクローンの作成が正常に完了しました!
設定が完了すると、プロジェクト内のすべてのエラーについて、デバッガーで「ソース」タブが使用できるようになります。フレーム間を移動して、見つかった場合はそのソースコードを確認できます。
Backtrace によって、ファイル名とパス、それが由来するリポジトリとリビジョン、そのリビジョンが公開された日付が特定されます。
上下に移動したり、ハイライトされた行にジャンプしたりできるほか、オプションで各行がコミットされた時間、そのコミットを実行したユーザー、そのコミットのハッシュを表示できます。
一部のフレームでは、「ソースコードを見つけるのに十分な情報がありません」と表示されます。これは、定義されたリポジトリでソースコードを見つけるのに十分な情報がそのフレーム内にないことを意味します。定義されたリポジトリでこのソースコードが利用できるようになっていない可能性があります。
複数のリポジトリとルール
Backtrace のデフォルトでは、関連するソースコードを見つけるために、各リポジトリを順番に検索します。正しくない情報が表示されている場合は、「ルールを追加」して、あるリポジトリを他のリポジトリより優先して検索するようシステムに指定できます。ルールは、「ある <属性/ファイル名/関数名/オブジェクト名> に一定の値が指定されている場合は、特定のリポジトリを使用またはスキップする」という形式を取ります。
たとえば、「モジュール名が正規表現 libc.*so の場合は、リポジトリ glibc を使用する」のようになります。