- クラッシュが発生したメモリアドレス
- クラッシュを引き起こした呼び出し階層を示すスタックトレース
- デバイスの状態やアプリのバージョンなどのシステム情報
- 未加工のクラッシュデータ(判読できるようにするにはシンボリケーションが必要)
0x7ff8123456abのような解読困難なメモリアドレスを、my_function.ts:42のような判読可能なコード参照に変換する手順)を説明します。
前提条件
- アプリがクラッシュしたときに生成されたACRファイル。
- デバッグシンボルまたはソースマップ(コードタイプによって異なります)。
-
Ubuntu 22.04以降で開発する場合は、コンピューターに
libpython3.8がインストールされている。 -
binutilsがインストールされている。
Macでは、次のコマンドを実行します。
画面の指示に従います。 Ubuntuでは、次のコマンドを実行します。
ACRをコピーする
- ターゲットデバイスをコンピューターに接続します。 Vegaは、接続されているデバイスをサイドバーに表示します。デバイスが表示されない場合は、[Refresh devices] ボタンをクリックします。デバイスを接続していない場合、デフォルトでVega仮想デバイスが選択されます。
- サイドバーから目的のターゲットデバイスを選択します。
-
VS Codeでコマンドパレットを開きます。
- Macの場合:
Shift+Command ⌘+P - Linuxの場合:
Ctrl+Shift+P
- Macの場合:
- 「Vega Device Management: Copy ACR from device」と入力します。
-
アプリのパッケージID
package idを入力するか、デバイスまたはシミュレーターのプロセスIDprocess idを入力します。 この情報はmanifest.tomlの[package]セクションで確認できます。 パッケージIDはアプリを識別し、プロセスIDはアプリを実行している固有のプロセスを識別するものです。 -
パッケージIDはアプリを識別し、プロセスIDはアプリを実行している固有のプロセスを識別するものです。
- 利用可能なすべてのACRをダウンロードするには、[All] を選択します。
- 最新のACRだけをダウンロードするには、[latest] を選択します。
- ACRを任意のフォルダに保存します。
ACRをシンボリケートする
アプリがクラッシュすると、メモリアドレスとスタックトレースを含むACRが生成されます。これらのトレースは、実際のコード参照ではなくメモリ位置のみを表示するため、読み取りは困難です。 シンボリケートすると、この難解なメモリアドレスが読み取り可能な情報に変換され、クラッシュが発生した正確なファイルと行番号が表示されます。 例: シンボリケート前:0x7ff8123456ab
シンボリケート後:my_function.ts:42
シンボリケートの起動
-
VS Codeでコマンドパレットを開きます。
- Macの場合:
Shift+Command ⌘+P - Linuxの場合:
Ctrl+Shift+P
- Macの場合:
- 「Vega Device Management: Symbolicate ACR」と入力してEnterキーを押します。
- ACRファイルを選択します。
シンボリケーションオプションの選択
Vega Studioから、シンボリケーションオプションを選択するよう求められます。ここでシンボリケーションオプションを選択する前に、package.jsonをチェックしてビルド構成を検証してください。react-native build-keplerの代わりにカスタムロジックを使用してJS HermesバイトコードバンドルまたはJSソースマップを生成する場合は、次の手順に従います。
- オプション2:手動シンボリケーションに進みます。
-
Metroで生成されたファイルが次の命名規則に従っていることを確認します。
- JSプレーンテキストバンドル:index.bundle
- JSソースマップ:*.bundle.map
オプション1:自動シンボリケーション
Vega Studioによって、必要なすべての構成パラメーターが収集されます。ユーザーによる入力は不要です。終了すると、シンボリケートされたコールスタックがターミナルに表示されます。ネイティブコードの場合、GDBデバッグセッションが自動的に開きます。- Vega Studioでパラメーターが収集されるまで待ちます。
-
不足しているパラメーターの入力を求められた場合、以下を行います。
- リクエストを注意深く読みます。
- リクエストされた情報を入力します。
- [Continue] をクリックします。
debug rootfsを指定するように求めるプロンプトが表示されます。 -
結果を確認します。
- ターミナルで、シンボリケートされたコールスタックを確認します。
- ネイティブコードの場合、GDBデバッグセッションが自動的に開きます。
-
ACRを表示します。
- ネイティブコードの場合:GDBデバッグセッションを閉じると、システムによってACRレポートが自動生成されます。
- JavaScriptコードの場合:システムによってACRレポートが自動生成されます。
- Vega StudioによってACRレポートが自動的に開かれ、クラッシュの診断に役立つ処理済みの情報が表示されます。
オプション2:手動シンボリケーション
手動モードでは、Vega StudioによってACRが解析されてコードタイプが検出されます。-
コードタイプが検出されるまで待機します。
- ネイティブコードのみ - ネイティブワークフローを開始します。
- 混合(ネイティブコードとJavaScriptコード)- デコードタイプを選択するよう求められます。
- デコードタイプを選択します(システムによって混合コードタイプが検出された場合)。 オプション1:gdb(ネイティブモード)- ネイティブコールスタックをシンボリケートする。 このオプションのデコードタイプを使用する場合は、追加の手順についてネイティブモードを参照してください。 オプション2:js(JavaScriptモード)- JavaScriptコールスタックをシンボリケートする。 このオプションのデコードタイプを使用する場合は、追加の手順についてJavaScriptモードを参照してください。
ネイティブモード
-
シンボルソースを選択します。
デバイスが接続されている場合:
- device - 接続されたデバイスからシンボルとライブラリを取得します。
- debug rootfs - Vega Studioから、
debug rootfsを指定するように求めるプロンプトが表示されます。
rootfsの場所を指定する必要があります。
-
デバッグシンボルフォルダを追加します。
a. [Yes] を選択してフォルダを追加します。
b. フォルダの場所を選択します。
c. 上の操作を繰り返すか、[No] を選択して終了します。
- 結果を確認します。 a. ターミナルで、シンボリケートされたコールスタックを探します。 b. GDBデバッグセッションを使用します。
- ACRを表示します。 GDBデバッグセッションを閉じると、システムによりACRが生成され、Vega Studioで表示されます。レポートには、問題の診断に役立つ処理済みのクラッシュ情報が含まれています。
JavaScriptモード
-
ソースマップを指定します。
a. ソースマップのプロンプトが表示されるまで待機します。b. プロンプトが表示されたら、[Browse] をクリックします。c. プロジェクトフォルダに移動します。d.
index.bundle.mapを選択します。 -
その他のマップを追加します(任意)。
a. プロンプトが表示されたら、[Yes] を選択してマップをさらに追加します。b. マップファイルの場所を選択します。c. 上の操作を繰り返すか、[No] を選択して終了します。
- ターミナルで、シンボリケートされたコールスタックを確認します。
- ACRを表示します。 システムによりACRレポートが生成され、Vega Studioで自動的に開きます。レポートには、問題の診断に役立つ処理済みのクラッシュ情報が含まれています。
ACRに関するよくある問題
ACRの分析中に問題が発生した場合は、クラッシュ分析に関する問題の修正を参照してください。関連トピック
- 💬 コミュニティ:Vega Supported Libraries and Services(英語のみ)
- クラッシュ分析に関する問題の修正
- Chrome DevToolsを使用してパフォーマンスを測定する方法
- Charles Proxyによるネットワークトラフィックのモニタリング

