スナップショットデバッガとは、ある瞬間のターゲットのCPUの状態、物理メモリの内容、リアルタイムトレースのデータをファイルに保存する機能です。
保存されたファイルを使用すると、ターゲットが接続されていない状態でも、スナップショットを保存した瞬間のターゲットメモリを参照するデバッグが可能になります。
また、リアルタイムトレースデータも保存できるので、スナップショット作成までの実行履歴を確認できます。
スナップショットデバッガを利用することで、チーム内、チーム間での情報共有 / 障害解析依頼時のデータ利用 / 障害管理データベースの登録情報として運用 / 遠隔地、外注先とのデバッグ作業 などを円滑に行うことが可能になります。
PARTNER-Jet及びオプションソフトが提供するOSサポート機能も利用できます。
スナップショットデバッガは、PARTNER ver5.6以降に搭載される、標準機能です。
スナップショットデバッガを使用するには、PARTNER-Jetと接続する必要があります。
スナップショットデバッガで保存する内容 (ARM CPUの場合)
CPU情報
汎用レジスタ、浮動小数点レジスタ、ステータスレジスタ、CP15コプロセッサレジスタ
ソースデバッグ情報
デバッガにソースデバッグ情報を読み込んでいた場合、スナップショット保存時にファイルパス名を保存します。
物理メモリ
非連続の複数の空間を保存できます。
ETMトレースデータ
スナップショット保存時に、PARTNER-Jetに記録されているトレースデータを保存します。
スナップショットデバッガで障害発生について調査
- 1. 障害発生時の処理(システム再起動ハンドラなど)にブレークポイントを設定しておく。
- 2. 設定した障害発生処理でデバッガがブレークしたら、デバッガのコマンドでファイルを作成する。
スナップショットファイルの参照方法
- 1. PARTNERデバッガをスナップショットモードで起動
- 2. デバッガのコマンドで、スナップショットファイルを読み込む
スナップショットデバッガができること
- 物理アドレス、TLBを介した仮想アドレスの両方で指定領域(メモリ)の参照や変更
- CPUのレジスタの参照(や変更)
- 実行トレース(ETMやAUD)の参照
- 指定領域のディスアセンブル結果の表示
- ソースデバッグ情報を読み込んで、シンボル名によるアドレスの参照や変数のインスペクト表示
- イベントトラッカー対応
- タスクやプロセス/スレッドの遷移の表示
- ユーザ情報があれば、それも表示可能
- トレース連携を有効にしている場合、その機能も利用可能
- OSデバッグ対応 (それぞれのOSデバッグのオプションが必要)
- タスクやプロセス/スレッドの遷移の表示
- LinuxやWindows CEのユーザ空間プロセスへアタッチし、プロセスの仮想マシンのメモリを参照。
スナップショットファイル作成時に実行していた任意のプロセスにアタッチできます。
- スナップショットファイル作成時に、物理メモリ上にページが存在するエリアのメモリが参照できます。
- LinuxやWindows CEのユーザ空間の実行トレースも復元可能です。
スナップショットデバッガができないこと
- プログラムの実行や停止
- ブレークポイントの設定
- (S/Wブレークポイント、H/Wブレークポイントのどちらも使えません)
- 周辺系I/Oレジスタの参照
- フラッシュメモリの書き換え