抄録
ETVは,プログラムの実行トレースを採取し,それを視覚化することでデバッグやプログラム理解を支援するシステムであり,実行時点のランダムアクセス,実行トレースを利用した実行時点制御といった特徴を持っている.トレースベースのシステムでGUIプログラムを対象とした場合,トレースの採取時に発生するオーバヘッドによってユーザのインタラクションを阻害してしまう.さらに,GUI部分がどのような描画を行っていたかについても内部状態と同様にトレースに含める必要がある.ETVにおいて,Javaプログラムを対象としてこれらの問題を解決するため,プログラムの実行をユーザのGUI部分への操作を記録するための実行(1)とトレースを採取するための実行(2)の2段階に分けることでユーザに実行速度の低下を感じさせることなくトレースを採取するシステムの実装を行った.(2)では,プログラム内部状態に加えて各実行時点でのGUI部分の描画内容もあわせて記録する.これにより,GUIプログラムの実行時点制御にユーザの行った入力やGUI部分の描画内容の変化といった要素を用いることができる.Javaでは,GUIに対する処理は専用のスレッドを用いて行うため,各スレッドやモニタの状態も採取し利用する.本発表では,システムの詳細と実装に際しての問題点,性能評価などについて述べる.ETV, a program execution trace viewer system, offers a random access in the time of execution by using the execution trace. Trace based systems have the following problems on tracing and visualizing GUI programs: (1) high tracing overhead, (2) record of GUI rendering required. We implemented the system for Java programs which generates the trace by two steps: (1) recording the input events, (2) replaying the events to generate the trace including GUI screenshots. The extended trace enables us to control the point of execution by input events and changes of GUI components. Implementation details and performance evaluation are also included.