• 検索結果がありません。

メモリバストレースによるメモリ復元手法の評価

N/A
N/A
Protected

Academic year: 2021

シェア "メモリバストレースによるメモリ復元手法の評価"

Copied!
2
0
0

読み込み中.... (全文を見る)

全文

(1)

メモリバストレースによるメモリ復元手法の評価

五十嵐 史生 望月 泰行 黒澤 寿好 三菱電機(株)情報技術総合研究所

1. はじめに

携帯電話などの高機能な組込み機器のソフト ウェア開発では、ソフトウェアが大規模化、か つ複雑化している。これにともなって、ソフト ウェアの障害(バグ)も複雑化し、バグの解析 負荷の増大が製品開発コストを増加させる傾向 にある。 組込みシステムの開発におけるバグの解析に は、ICE(In-Circuit Emulator)が利用される。 ICE には一般的なデバッガの機能に加え、CPU の メモリアクセスをトレースする機能がある。メ モリアクセスのトレースから任意時点のメモリ イメージを復元することができれば、メモリ破 壊/波及型バグ等の解析が大幅に効率化される。 本稿では、メモリを復元するアルゴリズム[3] を実装したメモリ復元ツールの評価として動作 の確認を行った。なお、評価を行なうにあたり、 評価用の実プログラムを ARM の評価ボード上で 動作させてメモリアクセスのトレースデータを 取得した。

2. メモリ復元ツール

メモリ復元ツールは、メモリ破壊/波及型バグ の解析においてデータ破壊が発生した時点のメ モリイメージを復元する際に利用するツールで ある。 2.1. 機能 メモリ復元ツールは、プログラム実行時のメ モリアクセスのトレースデータをもとに、デバ ッグ対象プログラムの動作における任意時点で のメモリイメージを復元する。 メモリアクセスのトレースデータは、以下のデ ータ値からなる。 „ 読出し・書込みの別 „ メモリアクセス番地 „ 読出み・書込みデータ 2.2. 入出力仕様 (1) 入力 ・デバッグ対象プログラム実行直後のメモリイ メージ ・メモリアクセスのトレースデータ ・メモリ復元を行う時点 (2) 出力 ・指定した時点のメモリイメージ

3. 評価

メモリ復元ツールが正しく動作することを確 認するための評価方法、評価用のデバッグ対象 プログラム、および評価結果について述べる。 3.1. 評価用のデバッグ対象プログラム 2 つの一次元配列 a、b を使った、以下に示す 2 通りのデータ操作を行うプログラムを、評価用 のデバッグ対象プログラムとする。 a) コピー操作 (1) a[0]読出し (2) b[0]書込み (3) 同様の読出しおよび書出し操作を、全て の配列要素に対して繰り返す。 b) 入れ替え操作 (1) a[0]読出し (2) 変数 c 書込み (3) b[0]読出し (4) a[0]書込み (5) 変数 c 読出し (6) b[0]書込み (7) 同様の読出しおよび書出し操作を、全て の配列要素に対して繰り返す。 3.2. 評価方法 データ操作を行う評価用のデバッグ対象プロ グラムを動作させてメモリアクセスのトレース データを取得する。 このデータを入力として、メモリ復元ツール を実行し、評価用のデバッグ対象プログラムの 各動作ステップにおけるメモリイメージを復元 する。(図 1)

Evaluation of memory restoration from memory bus trace Fumio IGARASHI, Yasuyuki MOCHIZUKI, Hisayoshi, KUROSAWA

Information Technology R&D Center, Mitsubishi Electric Corporation

1-5

1A-3

(2)

ARM 評価ボード メ モ リ 評価用 プログラム ICE メモリアクセス トレースデータ メモリ復元 ツール 復元 メモリイメージ 図 1 評価の流れ 3.3. 評価結果 評価用のデバッグ対象プログラムの配列要素 数を 5 とした場合のメモリ復元結果を、表 1、 表 2に示す。 表の各行が、3.1節の下線部分で示した各動作 ステップにおけるメモリ復元の成否である。 a) コピー操作(表 1) トレースデータ取得開始までに配列 a は初期 化したが、配列 b は初期化しなかった。 配列 a については、全ての時点でメモリ復元 を確認できた。配列 b については不定となる 箇所があるが、これは配列 b を初期化しなか ったことによるものである。 b) 入れ替え操作(表 2) トレースデータ取得開始までに配列 a と配列 b を初期化した。 全ての時点でメモリ復元が確認できた。 表 1 コピー操作の評価結果 要素0 要素1 要素2 要素3 要素4 要素0 要素1 要素2 要素3 要素4 1 a[0]読出し直後 ○ ○ ○ ○ ○ 不定 不定 不定 不定 不定 2 b[0]書込み直後 ○ ○ ○ ○ ○ ○ 不定 不定 不定 不定 3 a[1]読出し直後 ○ ○ ○ ○ ○ ○ 不定 不定 不定 不定 4 b[1]書込み直後 ○ ○ ○ ○ ○ ○ ○ 不定 不定 不定 5 a[2]読出し直後 ○ ○ ○ ○ ○ ○ ○ 不定 不定 不定 6 b[2]書込み直後 ○ ○ ○ ○ ○ ○ ○ ○ 不定 不定 7 a[3]読出し直後 ○ ○ ○ ○ ○ ○ ○ ○ 不定 不定 8 b[3]書込み直後 ○ ○ ○ ○ ○ ○ ○ ○ ○ 不定 9 a[4]読出し直後 ○ ○ ○ ○ ○ ○ ○ ○ ○ 不定 10 b[4]書込み直後 ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ 配列aの復元結果 配列bの復元結果 復元時点 # 表 2 入れ替え操作の評価結果 要素0 要素1 要素2 要素3 要素4 要素0 要素1 要素2 要素3 要素4 1 a[0]読出し直後 ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ 2 変数c書込み直後 ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ 3 b[0]読出し直後 ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ 4 a[0]書込み直後 ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ 5 変数c読出し直後 ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ 6 b[0]書込み直後 ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ 25 a[4]読出し直後 ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ 26 変数c書込み直後 ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ 27 b[4]読出し直後 ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ 28 a[4]書込み直後 ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ 29 変数c読出し直後 ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ 30 b[4]書込み直後 ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ 配列aの復元結果 配列bの復元結果 復元時点 #

4. おわりに

メモリバストレースによるメモリ復元手法の 評価として、メモリ復元ツールを実装し、一次 元配列のメモリ操作を行う評価用のデバッグ対 象プログラムのメモリ復元において、本ツール が正しく動作することを確認した。 今後は製品に組込まれる実アプリケーション を動作させた際の評価を実施する。 実アプリケーションを対象とした評価ではソ フトウェアのサイズが大きいため、全ての時点 のメモリ復元を確認することは現実的ではない。 また、評価環境によっては、例えばトレースデ ータ取得用のバッファが小さいなど、取得でき るトレースデータが制約を受けるケースも考え られる。 そこで、実際のデバッグ作業での利用に的を 絞り、以下の評価を行う予定である。 ・ メモリ復元の結果、不定となる箇所の割合 ・ メモリ復元に必要なトレースデータの量 ・ 速度性能

参考文献

[1]アーム(株),ARM アーキテクチャリファレン スマニュアル,http://www.jp.arm.com/ [2]アーム(株),ETM9 テクニカルリファレンスマ ニュアル,http://www.jp.arm.com/ [3]望月他,メモリバストレースによるメモリ復 元手法の検討,情報処理学会第 69 回全国大会

1-6

情報処理学会第69回全国大会

参照

関連したドキュメント

、肩 かた 深 ふかさ を掛け合わせて、ある定数で 割り、積石数を算出する近似計算法が 使われるようになりました。この定数は船

1 単元について 【単元観】 本単元では,積極的に「好きなもの」につ

2.2.2.2.2 瓦礫類一時保管エリア 瓦礫類の線量評価は,次に示す条件で MCNP コードにより評価する。

瓦礫類の線量評価は,次に示す条件で MCNP コードにより評価する。 なお,保管エリアが満杯となった際には,実際の線源形状に近い形で

2.2.2.2.2 瓦礫類一時保管エリア 瓦礫類の線量評価は,次に示す条件で MCNP コードにより評価する。

第2章 環境影響評価の実施手順等 第1

廃棄物の排出量 A 社会 交通量(工事車両) B [ 評価基準 ]GR ツールにて算出 ( 一部、定性的に評価 )

Abstract:  Conventional  practice  in  recording  information  on  archaeological  remains  is  to  take