JP2009009406A - デバッグ装置およびデバッグ方法 - Google Patents

デバッグ装置およびデバッグ方法 Download PDF

Info

Publication number
JP2009009406A
JP2009009406A JP2007170908A JP2007170908A JP2009009406A JP 2009009406 A JP2009009406 A JP 2009009406A JP 2007170908 A JP2007170908 A JP 2007170908A JP 2007170908 A JP2007170908 A JP 2007170908A JP 2009009406 A JP2009009406 A JP 2009009406A
Authority
JP
Japan
Prior art keywords
event
log
debugging
state
content
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2007170908A
Other languages
English (en)
Inventor
Takeshi Kishida
健 岸田
Hideyuki Tsutsumitake
秀行 堤竹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2007170908A priority Critical patent/JP2009009406A/ja
Publication of JP2009009406A publication Critical patent/JP2009009406A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】コンテンツに含まれるコードに関する詳細な知識がなくても、再生時に近い状態でしかも簡易な操作でデバッグを行えるようにしたデバッグ装置およびデバッグ方法を提供する。
【解決手段】デバッグ装置は、コンテンツが再生されているときにイベントを発行するイベント発行手段と、発行されたイベントにしたがった処理を実行し、その実行記録を示すイベントログを出力する1または2以上のイベント処理手段と、イベント処理手段のそれぞれを実行可能状態または実行不能状態のいずれかに切り替えるイベント処理制御手段と、イベント処理制御手段に対し、イベント処理手段のそれぞれを実行可能状態または実行不能状態のいずれかに切り替えるための指示を入力する指示入力手段と、イベント処理手段が出力するイベントログを表示させるイベントログ表示制御手段とを有する。
【選択図】図1

Description

本発明は、コンテンツのデバッグに用いられるデバッグ装置およびデバッグ方法に関する。
従来、ソフトウェアやハードウェアの欠陥及び誤りを発見して除去するため、種々のデバッグ方法が知られている。従来のデバッグ方法の一例として、例えば特許文献1には、次のようなデバッグ方法が開示されている。
このデバッグ方法では、ROMに格納されたデバッグ用ブートプログラムの実行により、外部からRAMにデバッグプログラムを書き込み可能にするとともに、デバッグコマンドの入力にしたがいデバッグプログラムをRAMに書き込み、そのデバッグプログラムを実行してユーザプログラムをデバッグするようになっている。
特開2006−91996号公報
ところで、近年、従来のDVDよりも大きな記憶容量を有する次世代DVD(例えば、HD DVD)が提案されている。次世代DVDによる再生装置では、従来のDVDによる再生装置とは異なり、ユーザの操作により表示内容が変化する等インタラクティブ性の高いコンテンツを再生することができる。
この種のコンテンツは、例えば、スクリプト言語及びXML(Extensible Markup Language)等を利用して、スタジオ等のコンテンツオーサによって作成される。従って、この種のコンテンツを作成するときは、コンテンツに含まれるスクリプト言語又はXMLで記述されたプログラムをデバッグする必要がある。
一方、インタラクティブ性の高いコンテンツは、ユーザの操作や時間経過などのリアルタイムな情報がイベントとしてコンテンツ側に通知され、予めイベントごとに登録されたイベントハンドラによって、それらのイベントに従った処理を行うイベントドリブンなコンテンツとして実現される場合が多い。
このようなコンテンツとして、従来、例えばHD DVDによるコンテンツやAdobe Flash(Adobe社が開発したWebコンテンツを作成するソフトまたはそのソフトで作成されたコンテンツ)などがある。
そして、Adobe Flash上でのコンテンツの動作試験やデバッグについては、各イベントハンドラが正しく処理を行っているかどうかを次のような機能を用いて確認する、といった方法がある。この方法では、イベントハンドラ内部のプログラムコードにブレークポイントを設定し、そのブレークポイントでコンテンツの実行(再生)を一時的に止めるといった機能が用いられる。
このデバッグ方法では、コンテンツの実行(再生)がブレークポイントで止まった状態で変数の値を確認するなどしてデバッグが行われる。
しかし、このデバッグ方法では、コンテンツの実行を止めた状態での確認を伴うため、コンテンツを通常どおり再生した場合と違ってコンテンツの挙動が異なり、デバッグを行っているときには問題が発生しないのに通常どおり再生すると問題が発生するといったことが起こり得る。
従って、できる限り通常どおり再生しているときと同じ条件でデバッグを行えるようにすることが、特にHD DVDによるコンテンツのように動画を主体とするコンテンツでは重要である。
また、前述のデバッグ方法には、コンテンツに含まれるコードのどこにブレークポイントを設定すれば動作の確認が行えるかといったコードに関する詳細な知識がないと実行が困難である、という問題もある。
その一方、コンテンツのデバッグ方法としては、コンテンツの要所要所にデバッグ用のログを出力するコードを組み込んでおき、コンテンツを実行したときに得られるログを解析するという方法も知られている。
しかし、このデバッグ方法には、検査したい部分にデバッグ用のコードを追加することはもとより削除するための手間を要するし、前述の場合と同様にコードに関する詳細な知識が要求されるという問題があり、この方法だけで不具合の原因を特定するには手間がかかることも多い。
そこで、本発明は上記課題を解決するためになされたもので、コンテンツに含まれるコードに関する詳細な知識がなくても、再生時に近い状態でしかも簡易な操作でデバッグを行えるようにしたデバッグ装置およびデバッグ方法を提供することを目的とする。
上記課題を解決するため、本発明は、インタラクティブ機能を実現するためのプログラムを含むコンテンツの再生装置を用いて実現されるデバッグ装置であって、再生装置によってコンテンツが再生されているときにイベントを発行するイベント発行手段と、そのイベント発行手段によって発行されたイベントにしたがった処理を実行し、その実行記録を示すイベントログを出力する1または2以上のイベント処理手段と、イベント処理手段のそれぞれを実行可能状態または実行不能状態のいずれかに切り替えるイベント処理制御手段と、そのイベント処理制御手段に対し、イベント処理手段のそれぞれを実行可能状態または実行不能状態のいずれかに切り替えるための指示を入力する指示入力手段と、イベント処理手段が出力するイベントログを表示させるイベントログ表示制御手段とを有するデバッグ装置を特徴とする。
また、本発明は、インタラクティブ機能を実現するためのプログラムを含むコンテンツの再生装置に適用されるデバッグ方法であって、再生装置によってコンテンツが再生されているときにイベントを発行するイベント発行手段と、そのイベント発行手段によって発行されたイベントにしたがった処理を実行し、その実行記録を示すイベントログを出力する1または2以上のイベント処理手段とを設け、イベント処理手段のそれぞれを実行可能状態または実行不能状態のいずれかに切り替えるための指示を入力し、その入力される指示にしたがいイベント処理手段のそれぞれを実行可能状態または実行不能状態のいずれかに切り替え、イベント処理手段が出力するイベントログを表示させるデバッグ方法を提供する。
以上詳述したように、本発明によれば、コンテンツに含まれるコードに関する詳細な知識がなくても、再生時に近い状態でしかも簡易な操作でデバッグを行えるようにしたデバッグ装置およびデバッグ方法が得られる。
以下、本発明の実施の形態について説明する。なお、同一要素には同一符号を用い、重複する説明は省略する。
(デバッグ装置の構成)
まず、図1を参照しつつ、本発明の実施形態に係るデバッグ装置の構成について説明する。図1は、本発明の実施形態に係るデバッグ装置を実現する再生装置100の概略構成を示すブロック図である。
本発明の実施形態に係るデバッグ装置は、例えばHD DVDによる再生装置(以下「再生装置」という)100によって実現される。再生装置100は通常モードとデバッグモードの2つのモードで作動する。
再生装置100はディスクドライブ101と、ネットワーク制御部102と、メディアドライブ103と、データプロセッサ104と、メモリ105と、分離部(DMUX)106を有している。また、再生装置100はビデオデコーダ107と、サブピクチャデコーダ108と、グラフィックデコーダ109と、オーディオデコーダ110とを有している。さらに、再生装置100はビデオプロセッサ111と、デジタル/アナログ(D/A)変換部112、113と、MPU114、キー入力部115およびROM116を有している。
再生装置100は、HD DVDによる光ディスク等の記録媒体1から、そこに記録されているデジタルデータを読み出してビデオ信号およびオーディオ信号を再生する。
記録媒体1は図示しないディスクトレーに載せてディスクドライブ101に収納される。ディスクドライブ101は、収納された記録媒体1を回転駆動し、光ピックアップ(図示せず)を用いてデジタルデータを取得する。
ネットワーク制御部102は、再生装置100にネットワークを介して接続された後述するネットワーク機器2と通信を行うための制御を行う。
メディアドライブ103は、メディアドライブ103に接続された後述する外部デバイス(ストレージメディア)3にアクセスして、外部デバイス3からデータを取得する。
データプロセッサ104はディスクドライブ101、ネットワーク制御部102、又はメディアドライブ103で取得されたデータが供給される。また、データプロセッサ104は供給されたデータにエラー訂正処理を施し、データプロセッサ104内のバッファ(図示せず)に格納する。バッファに格納されるデータには、例えば、管理データや動画像データ等が含まれる。管理データはメモリ105に供給され、動画像データは分離部106に供給される。
メモリ105は、供給された管理データを記憶する。また、メモリ105は、管理データを再生制御やデータ管理等に利用する。
分離部106は供給された動画像データを、ビデオデータ、サブピクチャデータ、グラフィックユニットデータおよびオーディオデータに分離する。また、分離部106は、ビデオデータ、サブピクチャデータ、グラフィックユニットデータおよびオーディオデータを、それぞれビデオデコーダ107、サブピクチャデコーダ108、グラフィックデコーダ109およびオーディオデコーダ110に供給する。なお、サブピクチャデータとは、字幕等の画像を表示するデータである。
ビデオデコーダ107はビデオデータにデコード処理を施す。サブピクチャデコーダ108はサブピクチャデータにデコード処理を施す。グラフィックデコーダ109はグラフィックユニットデータにデコード処理を施す。
ビデオデコーダ107でデコード処理が施されたビデオデータと、サブピクチャデコーダ108でデコード処理が施されたサブピクチャデータと、グラフィックデコーダ109でデコード処理が施されたグラフィックデータとは、ビデオプロセッサ111に供給される。一方、オーディオデコーダ110でデコード処理が施されたオーディオデータは、D/A変換部113に供給される。
ビデオプロセッサ111は、ビデオデコーダ107と、サブピクチャデコーダ108と、グラフィックデコーダ109とから供給されたデータの重畳処理を行い、生成されるビデオデータをD/A変換部112に供給する。
D/A変換部112は、ビデオプロセッサ111から供給されたビデオデータをアナログ信号に変換する。変換された信号は、再生装置100に接続され、液晶ディスプレイ、プラズマディスプレイ、CRT(Cathode-Ray Tube)等を備えた図示しない映像表示装置にビデオ信号として出力される。
D/A変換部113は、オーディオデコーダ110から供給されたオーディオデータをアナログ信号に変換する。変換された信号は、図示しないスピーカ等の音声再生装置にオーディオ信号として出力される。
MPU114は、上述したような光ディスク1、ネットワーク機器2、及び外部デバイス3に対する一連の再生動作を制御する制御部として機能する。
また、MPU114はキー入力部115から入力される操作データにしたがい、ROM116に格納されているプログラムに基づいて、再生装置100の各構成要素(例えば、図1において、MPU114と矢印で接続されている構成要素)の動作を制御する。
ネットワーク機器2は、パーソナルコンピュータ等のネットワークを介した通信機能を有する機器である。ネットワーク機器2には、Webブラウザ118がインストールされている。また、ネットワーク機器2は、後述するHTTPサーバモジュール214に各種のコマンドを送信したり、Webブラウザ118により、HTTPサーバ214からの応答をGUI画面上に表示する。
なお、再生装置100がWebページの閲覧機能を有する場合はネットワーク機器2を再生装置100に接続しなくてもよい。この場合、D/A変換部112から出力されるビデオ信号を用いて映像を表示するテレビモニタ等の表示装置をネットワーク機器2の代わりに使用することができる。
この際、HD DVDによるコンテンツと、デバッグ作業用のGUI画面とを表示装置の同一画面上にピクチャインピクチャ(PIP)にしたり、半透明に重ね合わせて表示することができる。また、HD DVDによるコンテンツと、デバッグ作業用のGUI画面とを異なる表示装置に表示してもよい。
再生装置100とネットワーク機器2とを接続するネットワークは、例えば、インターネット、LAN(Local Area Network)等である。なお、ネットワーク機器2はパーソナルコンピュータに限定されず、Webページの閲覧機能を有するデジタルテレビでもよい。また、ネットワーク機器2にインストールされるソフトウェアはWebブラウザ118に限定されず、HTML及びJavaScript(登録商標)で記述されたプログラムを処理することができるアプリケーションでもよい。
外部デバイス3は、データ記憶手段を備え、かつメディアドライブ103に着脱可能な装置であって、例えば、USBデバイス、メモリカード、HDD(Hard Disk Drive)又はパーソナルコンピュータである。
また、外部デバイス3は、データ記憶手段にプラグインモジュール(デバッグモードモジュール)117が記憶されている。デバッグモードモジュール117は、メディアドライブ103及びデータプロセッサ104を介してメモリ105にインストールされる。
なお、USBデバイスは、機器毎に有効又は無効を設定することができる(機器認証機能)。このため、USBデバイスを外部デバイス3として用いる場合、再生装置100のセキュリティ機能を高めることができる。
次に、図2を参照しつつ、デバッグモードモジュール117について、より詳細に説明する。
図2は、デバッグモードモジュール117が、外部デバイス3から図1に示す再生装置100にインストール(アップロード)された後の状態を示すブロック図である。より具体的には、図2は、デバッグモードモジュール117を記憶している外部デバイス3と、デバッグモードモジュール117を外部デバイス3からインストールした再生装置100と、再生装置100に接続されたネットワーク機器2とを示すブロック図である。
このデバッグモードモジュール117がインストールされた再生装置100を用いてデバッグ装置が実現されるようになっている。
デバッグモードモジュール117は必要に応じて外部デバイス3からインストールされるが、予め再生装置100にインストールしておくこともできる。
デバッグモードモジュール117は、インタラクティブ機能を実現するためのプログラムを含むコンテンツ(インタラクティブコンテンツともいう)について、そのコンテンツに含まれているプログラムをデバッグする機能を有するソフトウェアモジュール(プラグインモジュール)である。
インタラクティブコンテンツは、再生装置100で再生されるコンテンツの一部として含まれてもよい。インタラクティブコンテンツには、例えば、HD DVD規格におけるアドバンストコンテンツが含まれる。また、デバッグモードモジュール117は、外部デバイス3から再生装置100に必要に応じて(動的に)インストールすることができる。
さらに、図2に示すように、外部デバイス3に記憶されているデバッグモードモジュール117は、HTTPサーバモジュール117A、デバッグ端末プラグイン117Bおよびプレイヤプラグイン117Cを有している。
HTTPサーバモジュール117Aは、HTTPサーバ機能を有する動的ライブラリで構成される。この動的ライブラリは、再生装置100で実行中のプロセスで用いられ、再生装置100のMPU114(図1)で独立したスレッド(HTTPサーバスレッド)として実行される。
デバッグ端末プラグイン117Bは、HTMLファイル、JavaScript(登録商標)ファイル、PNG/JPEGイメージファイル等を有している。これらのファイルは、後述するHTTPサーバモジュール214を介してネットワーク機器2に配信されるファイルである。
プレイヤプラグイン117Cは、後述するスクリプトエンジン203上で実行されるスクリプトファイル、XMLファイル等の処理モジュールを有している。
そして、外部デバイス3に記憶されるデバッグモードモジュール117が再生装置100にインストールされると、HTTPサーバモジュール117AはHTTPサーバモジュール214として機能する。
また、デバッグ端末プラグイン117BはGUI画面ファイル210および端末スクリプトファイル213として機能する。
プレイヤプラグイン117Cはイベントハンドラ204、イベントハンドラ制御モジュール205、指示入力モジュール206、イベントログ記憶制御モジュール207、イベントログ出力制御モジュール208、状態監視モジュール209、データ変換モジュール211およびプレイヤスクリプトファイル212として機能する。
次に、図2を図1とともに参照しつつ、上述したデバッグモードモジュール117のインストール後の再生装置100について、ソフトウェアの観点から説明する。
デバッグモードモジュール117をインストールした後の再生装置100は、図2に示す制御モジュール201、スクリプトエンジン203およびデバッグモードモジュール117にしたがって動作を実行する。
デバッグモードモジュール117は、イベントハンドラ204と、イベントハンドラ制御モジュール205と、指示入力モジュール206と、イベントログ記憶制御モジュール207およびイベントログ出力制御モジュール208を有している。
また、デバッグモードモジュール117は、状態監視モジュール209と、GUI画面ファイル210と、データ変換モジュール211と、プレイヤスクリプトファイル212と、端末スクリプトファイル213およびHTTPサーバモジュール214を有している。なお、図2において、再生装置100にインストールされたデバッグモードモジュール117は、破線で囲まれている。
再生装置100が通常モードで使用される場合は、制御モジュール201と、アドバンストコンテンツアプリケーション202およびスクリプトエンジン203が使用される。一方、再生装置100がデバッグモードで使用される場合、通常モードで使用される上記モジュールに加えて、デバッグモードモジュール117に含まれる各モジュールが使用される。
まず、通常モードで使用されるモジュールについて説明する。制御モジュール201は、再生装置100のROM116(図1参照)に記憶されている実行プログラムであり、再生装置100を制御する。制御モジュール201は、例えば、ビデオ映像の再生制御、アドバンストコンテンツで必要な状態管理、リソース管理等を行う。制御モジュール201は、再生装置100が起動されると同時にMPU114上で実行される。
また、制御モジュール201はアドバンストコンテンツアプリケーション202を用いてインタラクティブコンテンツの再生が行われている場合において、ユーザが何らかの操作を行ったり、その再生がある時間に達したときにその時刻や操作に応じて異なった種類のイベントEvを発行する。制御モジュール201はイベント発行手段としての機能を有している。
アドバンストコンテンツアプリケーション202は、例えば、記録媒体1から再生装置100に供給される。この場合、アドバンストコンテンツアプリケーション202は、記録媒体1から、ディスクドライブ101、データプロセッサ104および分離部106を介してメモリ105にロードされる。アドバンストコンテンツアプリケーション202は、ビデオ映像の再生に加えてインタラクティブ機能を実現することができる。
アドバンストコンテンツアプリケーション202は、ビデオコンテンツと同様に、映像スタジオ等のコンテンツオーサ(コンテンツプロバイダ)によって作成される。アドバンストコンテンツアプリケーション202は、スクリプト言語(例えば、ECMAスクリプト)を用いて記述されたスクリプトファイルと、マークアップ言語(例えば、XML)を用いて記述されたXMLファイルとを有し、これらによってインタラクティブ機能を実現するためのプログラムが構成されている。
なお、スクリプトファイルはスクリプトエンジン203によって実行される。XMLファイルは、スクリプトエンジン203と連携し、XMLエンジン(図示せず)によって処理される。
スクリプトエンジン203は、制御モジュール201に対して、ビデオ映像の再生/停止を指示するコマンドや、コンテンツのタイトル一覧の表示を指示するコマンドといった各種のコマンドを発行する。スクリプトエンジン203はROM116に記憶されている実行モジュールを再生装置100の起動後にMPU114が実行することによって実現される。
次に、デバッグモードで使用されるモジュールについて説明する。イベントハンドラ204は、イベント処理手段としての機能を有し、1または2種類以上のイベントEvに対応して複数(図2では、イベントハンドラ204a,204b,204cの3つ)設けられている。イベントEvとイベントハンドラ204の対応については後述する。
また、発行されたイベントEvに対応するイベントハンドラ204が実行可能状態にあるときに作動し、後述するイベントログLgを出力する。
イベントハンドラ制御モジュール205は、後述する指示入力モジュール206からの指示データInにしたがい各イベントハンドラ204を実行可能状態または実行不可能状態に切り替える切替制御を行い、イベント処理制御手段としての機能を有している。
指示入力モジュール206は、ユーザの操作に応じて指示データInを生成し、その指示データInをイベントハンドラ制御モジュール205に入力する。
ここで、指示データInには、イベントハンドラ204を実行可能状態にするか実行不能状態にするかを区別するためのフラグデータと、指示の対象となるイベントの種類を特定するためのデータが含まれている。
イベントログ記憶制御モジュール207は、イベントハンドラ204が出力するイベントログLgをメモリ105等の記憶手段に書き込ませる。
イベントログLgはそのイベントに関する情報一式を含むイベントの実行記録を示すデータである。イベントログLgは、各イベントが発行された時刻(発行時刻)に関する時刻情報が含まれている時刻付きログとなっている。また、イベントログLgはイベントに関するその他の一般的なデータとして、イベントの種類やイベントを受け取った後述するルート要素などのデータも含まれる。
イベントログ出力モジュール208はイベントログ記憶制御モジュール207の制御によって記憶されたイベントログLgをメモリ105等記憶手段から読み出し、そのイベントログLgに含まれている時刻情報を用いて後述するログリスト400,410を表示させる。イベントログ出力モジュール208はイベントログ表示制御手段としての機能を有している。このログリスト400,410はHTTPサーバモジュール214が作動することによってネットワーク機器2に送信され、Webブラウザ118によって表示装置に表示される。
状態監視モジュール209は、制御モジュール201及びスクリプトエンジン203の状態を監視し、状態変化を検出する。制御モジュール201の状態変化には、例えば、映像(コンテンツ)再生状態の変化、CPUの利用率の変化、コンテンツで利用可能なリソースの使用率の変化等が含まれる。映像再生状態の変化には、例えば、アドバンストコンテンツアプリケーションの実行の開始/停止、ビデオ映像の再生の開始/停止、タイトルジャンプ、チャプタージャンプ、及び、再生時刻、サブタイトル又は音声等の変化が含まれる。一方、スクリプトエンジン203の状態変化の例には、ブレークポイントでの実行中断、ステップ実行、例外発生等が含まれる。また、状態監視モジュール209は、コンテンツの再生中(アドバンストコンテンツアプリケーションの実行中)にエラーが発生したか否かを判定する。
GUI画面ファイル210は、HTTPサーバモジュール214によりネットワーク機器2のWebブラウザ118に配信されるファイルであり、例えば、HTMLファイル及びイメージファイル等で構成される。GUI画面ファイル210は、状態監視モジュール209によって検出される再生装置100の状態変化を、ユーザ(コンテンツオーサ)に通知することが可能なGUI画面を構成する。
データ変換モジュール211は、状態監視モジュール209で検出された状態変化をHTTPサーバモジュール214によってネットワーク機器2(又はWebブラウザ118)に送信するためのデータフォーマットに変換する。つまり、データ変換モジュール211は、上記状態変化をネットワーク機器2(又は、Webブラウザ118)が処理可能なデータ形式に変換する。このデータフォーマットには、XMLやJSON(JavaScript Object Notation)形式等が含まれる。
プレイヤスクリプトファイル212は、スクリプト言語で記述されるファイルであり、再生装置100の状態を制御する。プレイヤスクリプトファイル212は、状態監視モジュール209によって検出されたアドバンストコンテンツアプリケーションの開始/停止に応じて、制御モジュール201を介してスクリプトエンジン203に読み込まれて実行される。
端末スクリプトファイル213は、GUI画面ファイル210と同様に、HTTPサーバモジュール214により、Webブラウザ118に配信される。端末スクリプトファイル213は、スクリプト言語で記述され、Webブラウザ118上で実行される。
なお、上述したHTTPサーバモジュール214、GUI画面ファイル210、端末スクリプトファイル213、プレイヤスクリプトファイル212およびデータ変換モジュール211は、再生装置100の状態の変化をネットワーク機器2に送信し、その変化をユーザに通知する状態通知モジュールとしての機能を実現する。
HTTPサーバモジュール214は、再生装置100をネットワーク機器2と通信を行うサーバとして機能させるモジュールである。
HTTPサーバモジュール214は、再生装置100のMPU114で独立したスレッドとして実行され、ネットワーク制御部102を介してネットワーク機器2と通信を行う。
(イベントの伝播)
続いて、再生装置100におけるイベントの伝播について図3を参照して説明する。本実施の形態では、コンテンツはデータ上では木構造で表現されるものとする。(このような表現方法はXMLやHTMLで使われる。)
例えば図3に示すように、インタラクティブコンテンツの再生画面300上に2つのボタン301,302が表示されるとする。この場合、データ構造としてはルート要素(イベントが伝播されるときの一番大元の要素)310の下に2つのボタン301,302があるという構成になる。ただし、ルート要素310の直下にボタン301,302があるのではなく、ルート要素の下に矩形領域があり、その矩形領域の中にボタンがある、といったように何重かの入れ子構造になっていることもある。
そして、ユーザのリモコン操作などの操作入力によってボタン301が押された(例えば、カーソルがボタン301上にあり、その状態でユーザがOKボタンを押した)とする。すると、まず、ルート要素310にボタン301に対応したイベントが通知される。
その後、そのイベントはボタン301に伝播し、更にもう一度ルート要素310に伝播する。ここで、ルート要素310からボタン301,302に向かう方向のイベントの伝播をcapturing(Ca)、逆方向のイベントの伝播をbubbling(Bu)という。
何らかの理由によりイベントの伝播が途中でキャンセルされることもある。また、インタラクティブコンテンツのバグにより、意図しないキャンセルが起きることがインタラクティブコンテンツの動作不具合につながることもある。そのため、どの要素(ここでは、ルート要素またはボタン)がイベントを受け取ったかという情報はコンテンツのデバッグ上重要である。
そして、イベントの最終的な行き先をイベントのターゲットという。前述のイベントの場合、ターゲットはボタン301である。また、ルート要素310やボタン301,302といったイベントの伝播に関わる要素をイベントが伝播していくとき、イベントが現在届いている要素をカレントターゲットという。前述の例では、カレントターゲットは時間の経過に伴いルート要素310、ボタン301、ルート要素310と変化する。
(デバッグ装置の動作内容)
次に、インタラクティブコンテンツをデバッグするときのデバッグ装置の動作内容について、図4〜図6に示すフローチャートを参照して説明する。
図4に示すように、デバッグ装置はデバッグ動作を開始すると、まず、S1で指示入力モジュール206により、ユーザの操作を受け取り、ユーザの操作に応じた指示データInをイベントハンドラ制御モジュール205に出力する。
ここでのユーザの操作は、イベントトレースを実行可能にする操作と、実行不能にする操作の2種類がある。また、デバッグ装置はS1で実行可能または実行不能にするイベントの種類も受け取る。デバッグ装置はユーザが操作を行うまでS1で待機する。
デバッグ装置はユーザが操作を行うと、S2に動作を進め、イベントハンドラ制御モジュール205によってユーザの操作がイベントトレースを実行可能にする操作かどうかを判定する。ユーザの操作がイベントトレースを実行可能にする操作であったときはS3に動作が進み、そうでなければS5に動作が進む。
デバッグ装置はS3に動作を進めると、イベントハンドラ制御モジュール205によって、S1で受け取った種類(ここでは、イベントタイプという)のイベントに対応するルート要素310のイベントハンドラ204が実行可能状態になっているかどうかを判定する。ここで、実行可能状態になっていればS4を実行せずにそのままS2に戻るが、そうでなければS4に動作を進める。
デバッグ装置はS4に動作を進めると、イベントハンドラ制御モジュール205によって、イベントタイプに対応するルート要素310のイベントハンドラ204を実行可能状態に切り替える。この場合、デバッグ装置はイベントタイプに対応するルート要素310のCapturing用イベントハンドラ204と、イベントタイプに対応するルート要素310のbubbling用のイベントハンドラ204を2つとも実行可能状態にする。その後、デバッグ装置はS2に動作を戻す。
これ以降、例えばユーザがボタン301を押すなどしてイベントEvが発生し、そのイベントEvがルート要素310に通知されると、そのイベントEvに対応しているイベントハンドラ204が通知されたイベントEvにしたがった処理を実行する。
また、デバッグ装置はS5に動作を進めると、イベントハンドラ制御モジュール205により、S1で受け取った種類(イベントタイプ)のイベントに対応するイベントハンドラ204が既に実行可能状態になっているかどうかを判定する。ここで、実行可能状態になっていればS6に動作を進め、そうでなければS6を実行せずにそのままS2に戻る。
デバッグ装置はS6に動作を進めると、イベントハンドラ制御モジュール205によって、イベントタイプに対応するルート要素310のイベントハンドラ204を実行不能状態に切り替える。この場合、デバッグ装置はCapturing用イベントハンドラ204とbubbling用のイベントハンドラ204を2つとも実行不能状態にする。その後、デバッグ装置はS2に動作を戻す。
これ以降、イベントEvが発生し、そのイベントEvがルート要素310に通知されても、そのイベントEvに対応しているイベントハンドラ204はイベントEvにしたがった処理を実行しないこととなる。
以上のように、デバッグ装置は、ユーザがイベントの種類および対応するイベントハンドラについて、実行可能状態または実行不能状態のどちらにするかを指定する操作を行うことにより、各イベントハンドラを実行可能状態または実行不能状態のいずれかに切替られるようになっている。
デバッグ装置は図4に続いて図5にしたがって動作を行う。図5はルート要素のイベントハンドラの動作手順を示すフローチャートである。
デバッグ装置はデバッグ動作を開始するとS11に動作を進め、イベントハンドラ204がイベントパラメータを生成する。イベントパラメータはイベントハンドラ204がイベントEvにしたがった処理を実行したときに生成されるデータである。
続いてデバッグ装置はS12に動作を進め、イベントハンドラ204により、現在のイベントの伝播がcapturingかbubblingかを判定する。ここで、デバッグ装置は、イベントハンドラ204がCapturingと判定したときはS13に動作を進め、bubblingと判定したときはS15に動作を進める。
デバッグ装置は続くS13に動作を進めると、イベントハンドラ204により、S11で生成したイベントパラメータを調べ、ターゲットがルート要素310であるかどうかを判定する。デバッグ装置はターゲットがルート要素310でなければS14に動作を進め、ターゲットがルート要素310であればS15に動作を進める。
そして、デバッグ装置はS14に動作を進めると、イベントハンドラ制御モジュール205により、ターゲットと、ルート要素310からターゲットまでの間に存在する要素のイベントハンドラ204を実行可能状態に切り替える。ルート要素310からターゲットまでの間にある要素では、capturing用のイベントハンドラ204とbubbling用のイベントハンドラ204を2つとも実行可能状態にする。ターゲットに関しては1つのイベントハンドラ204を実行可能状態にする。
デバッグ装置はS15に動作を進め、イベントハンドラ204が1件のイベントログLgを出力し、そのイベントログLgをイベントログ記憶制御モジュール207によりメモリ105等記憶手段に追加して書き込ませると、動作を終了する。
以上のように、デバッグ装置によれば、イベントハンドラ204がイベントログLgを出力すると、イベントログ記憶制御モジュール207によりそのイベントログLgがメモリ105等記憶手段を書き込まれ、イベントハンドラ204はユーザの入力待ちなどで実行中断状態に移行することなく動作を終了するようになっている。
したがって、デバッグ装置は、コンテンツを通常通り再生した場合と近い条件でイベントログLgを取得することができるようになっている。
また、図6はルート要素以外の要素のイベントハンドラ204の動作を示すフローチャートである。
デバッグ装置は動作を開始するとS21に動作を進め、イベントハンドラ204がイベントパラメータを生成する。続くS22では、イベントハンドラ204が1件のイベントログLgを出力し、そのイベントログLgをイベントログ記憶制御モジュール207によりメモリ105等記憶手段に追加して書き込ませる。また、デバッグ装置は続いてS23に動作を進め、イベントハンドラ204が自分自身を実行不能状態にすると、デバッグ装置は動作を終了する。
このように、デバッグ装置はルート要素310以外のイベントハンドラ204も、ルート要素のイベントハンドラ204と同様にイベントログLgを出力すると、ユーザの入力待ちなどで実行中断状態に移行することなく動作を終了するようになっている。
以上のように、本発明の実施の形態に係るデバッグ装置は、デバッグを行う際にコンテンツの再生を停止することなく、コンテンツの挙動にはできる限り影響を与えない状態でイベントログLgを出力できるから再生時に近い状態でデバッグを行える。イベントログLgにはイベントEvの動作に関する様々な情報が含まれているので、これを参照することでイベント発生をトレースできる。
しかも、ユーザは、イベントハンドラ204を実行不能状態または実行不能状態に切り替える操作を行うだけで、チェックしたいイベントを切り替えることができるので、デバッグの際に注目するポイントを手軽に変えることができ、簡易な操作でデバッグを行える。そのため、ユーザによるコンテンツ開発の効率が向上する。
また、イベントそのものの定義は個々のコンテンツに特有の一部のイベントを除いてはコンテンツから独立しており、コードの詳細に関する知識がなくともどういうイベントをトレースすればよいかは判断できる場合が多く、コンテンツ作成者でなくても、動作試験を行いやすいという長所を有している。
さらに、動画を含むコンテンツの再生中、イベントの発生状況をコンテンツの再生を停止せずに簡単に確認でき、イベントというインターフェイスが定まっている切り口でコンテンツの動作を追跡できるのでコンテンツの動作試験を効率的に行える。
一方、出力されるイベントログLgを用いて例えば、図7,8に示すようなログリスト400,410を表示させることができる。
図7はイベントEvを時系列上に表示したログリスト400を示す図である。ログリスト400は時間の目盛りが付けられた時間軸401と、イベントの発生、終了などを示す時間軸401上に表示された帯状のイベントバー402とを有している。
イベントバー402は、イベント発行時刻を示す時刻t1、ターゲット到着時刻(イベントEvがターゲットのイベントハンドラ204に伝播した時刻)を示す時刻t2およびイベント終了時刻(bubblingでルート要素のイベントハンドラ204に到達した時刻)を示す時刻t3を表し、イベント発行時刻や終了時刻といったイベントに関する時刻を明示するようにして表示されている。時刻t2から時刻t3までの時間はイベントハンドラ204による処理の実行時間を表している。
また、図8は、各イベントログLgの属性を発行時刻順に並べた表形式で表示されるログリスト410を示す図である。ログリスト410は時刻部410a、イベント種類部410b、ターゲット410cおよび現在のターゲット410dを有している。時刻部410a、イベント種類部410b、ターゲット410cおよび現在のターゲット410dには、各イベントログLgの属性を示すデータが表示される。
以上のようなログリスト400,410によって、ユーザはイベントの動作状況を視覚的に把握できるから、イベントの動作状況を把握しやすくなり、動作試験を効率的に行えるようになる。
なお、イベントハンドラ204には、デバッグ装置が使用するものの他にコンテンツ自体に含まれるものもある。同一の要素、同一種類のイベントに両方のイベントハンドラがある場合、コンテンツの挙動を変えないという観点から、その両方が実行される必要がある。その場合、以下の1)、2)、3)の3つのバリエーションが考えられる。
1)両方のイベントハンドラ204に同時にイベントが発行され、2つのイベントハンドラ204が並行して処理を実行する。
2)2つのイベントハンドラ204のうちの一方に先にイベントが発行され、その後、他方にイベントが発行される。
3)イベントハンドラ204からコンテンツのイベントハンドラを呼び出す。
本発明の実施の形態に係るデバッグ装置を実現するためには1)、2)、3)のどれを用いてもよく、どの方法を使うかは実装に依存する。
以上の説明は、本発明の実施の形態についての説明であって、この発明の装置及び方法を限定するものではなく、様々な変形例を容易に実施することができる。又、各実施形態における構成要素、機能、特徴あるいは方法ステップを適宜組み合わせて構成される装置又は方法も本発明に含まれるものである。
本発明の実施形態に係るデバッグ装置を実現する再生装置の概略構成を示すブロック図である。 デバッグモードモジュールが外部デバイスから再生装置にインストール(アップロード)された後の状態を示すブロック図である。 インタラクティブコンテンツの再生画面と再生装置におけるイベントの伝播を模式的に示した図である。 デバッグ装置の動作手順を示すフローチャートである。 デバッグ装置の別の動作手順を示すフローチャートである。 デバッグ装置のさらに別の動作手順を示すフローチャートである。 ログリストの一例を示す図である。 別のログリストの一例を示す図である。
符号の説明
2…ネットワーク機器、3…外部デバイス、100…再生装置、101…ディスクドライブ、102…ネットワーク制御部、105…メモリ、106…分離部(DMUX)、107…ビデオデコーダ、108…サブピクチャデコーダ、109…グラフィックデコーダ、110…オーディオデコーダ、114…MPU、115…キー入力部、116…ROM、117…デバッグモードモジュール、201…制御モジュール、202…アドバンストコンテンツアプリケーション、203…スクリプトエンジン、204…イベントハンドラ、205…イベントハンドラ制御モジュール、206…指示入力モジュール、207…イベントログ記憶制御モジュール、208…イベントログ出力モジュール

Claims (9)

  1. インタラクティブ機能を実現するためのプログラムを含むコンテンツの再生装置を用いて実現されるデバッグ装置であって、
    前記再生装置によって前記コンテンツが再生されているときにイベントを発行するイベント発行手段と、
    該イベント発行手段によって発行された前記イベントにしたがった処理を実行し、その実行記録を示すイベントログを出力する1または2以上のイベント処理手段と、
    前記イベント処理手段のそれぞれを実行可能状態または実行不能状態のいずれかに切り替えるイベント処理制御手段と、
    該イベント処理制御手段に対し、前記イベント処理手段のそれぞれを実行可能状態または実行不能状態のいずれかに切り替えるための指示を入力する指示入力手段と、
    前記イベント処理手段が出力する前記イベントログを表示させるイベントログ表示制御手段とを有するデバッグ装置。
  2. 前記イベント処理手段が出力する前記イベントログを記憶するイベントログ記憶手段と、
    前記イベントログを前記イベントログ記憶手段に出力して記憶させるイベントログ記憶制御手段とを更に有し、
    前記イベントログ表示制御手段は、前記イベントログ記憶手段から前記イベントログを読み出して表示させる請求項1記載のデバッグ装置。
  3. 前記イベント処理手段は、前記イベントログを出力した後、実行中断状態に移行することなく終了する請求項1または2記載のデバッグ装置。
  4. 前記イベント処理手段は、前記イベントログとして前記イベントの発行時刻を含む時刻付きログを出力する請求項1〜3のいずれか一項記載のデバッグ装置。
  5. 前記イベントログ表示制御手段は、前記時刻付きログに含まれる前記イベントの発行時刻が明示されるようにして前記イベントログを表示させる請求項4記載のデバッグ装置。
  6. 前記イベントログ表示制御手段は、前記時刻付きログに含まれる前記イベントの発行時刻、前記イベント処理手段における実行時間のいずれか一方または両方を表すイベントバーを時間軸上に表示させる請求項4記載のデバッグ装置。
  7. 前記イベントログ表示制御手段は、前記時刻付きログに含まれる前記イベントの発行時刻順に前記イベントログの属性を並べた表形式で前記イベントログを表示させる請求項4記載のデバッグ装置。
  8. インタラクティブ機能を実現するためのプログラムを含むコンテンツの再生装置に適用されるデバッグ方法であって、
    前記再生装置によって前記コンテンツが再生されているときにイベントを発行するイベント発行手段と、該イベント発行手段によって発行された前記イベントにしたがった処理を実行し、その実行記録を示すイベントログを出力する1または2以上のイベント処理手段とを設け、
    前記イベント処理手段のそれぞれを実行可能状態または実行不能状態のいずれかに切り替えるための指示を入力し、
    その入力される前記指示にしたがい前記イベント処理手段のそれぞれを実行可能状態または実行不能状態のいずれかに切り替え、
    前記イベント処理手段が出力する前記イベントログを表示させるデバッグ方法。
  9. 前記イベントログとして前記イベントの発行時刻を含む時刻付きログを前記イベント処理手段によって出力する請求項8記載のデバッグ方法。
JP2007170908A 2007-06-28 2007-06-28 デバッグ装置およびデバッグ方法 Pending JP2009009406A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007170908A JP2009009406A (ja) 2007-06-28 2007-06-28 デバッグ装置およびデバッグ方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007170908A JP2009009406A (ja) 2007-06-28 2007-06-28 デバッグ装置およびデバッグ方法

Publications (1)

Publication Number Publication Date
JP2009009406A true JP2009009406A (ja) 2009-01-15

Family

ID=40324414

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007170908A Pending JP2009009406A (ja) 2007-06-28 2007-06-28 デバッグ装置およびデバッグ方法

Country Status (1)

Country Link
JP (1) JP2009009406A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113312262A (zh) * 2021-03-23 2021-08-27 统信软件技术有限公司 一种程序调试方法、计算设备及储存介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113312262A (zh) * 2021-03-23 2021-08-27 统信软件技术有限公司 一种程序调试方法、计算设备及储存介质
CN113312262B (zh) * 2021-03-23 2024-05-31 统信软件技术有限公司 一种程序调试方法、计算设备及储存介质

Similar Documents

Publication Publication Date Title
JP2011211481A (ja) 動画再生装置
JP2010157076A (ja) 情報処理装置および制御プログラム
KR101423920B1 (ko) 버퍼링 상태에 기반한 디지털 멀티미디어 녹화 방법 및 장치
JP2009009406A (ja) デバッグ装置およびデバッグ方法
JP2008293121A (ja) デバッグ装置、デバッグシステム、及びデバッグ方法
JP2008165420A (ja) 再生装置および再生方法
US20090094295A1 (en) Electronic equipment and log output method
JP2008102874A (ja) デバッグ装置及びデバッグ方法
US20130185464A1 (en) Electronic apparatus, data transfer control method, and program
JP2009093696A (ja) 情報再生装置のテストシステム
JP2009016909A (ja) 再生装置及び再生方法
JP2008250938A (ja) デバッグ装置
KR20100056246A (ko) 멀티미디어 컨텐츠 재생 기기에서 상태정보를 저장하는 방법, 상태정보를 이용하여 컨텐츠를 자동 재생하는 방법 및 그 장치
JP5021516B2 (ja) 再生装置試験装置、及び再生装置試験方法
JP4963661B2 (ja) ビデオ再生装置
JP2006190463A (ja) シーケンスに分かれた音声または音声映像文書を再生する方法および装置
JP2008117438A (ja) 再生装置、システムおよび制御方法
JP4775649B2 (ja) 表示装置、テレビ放送受信装置、表示装置のログ保存方法、及びテレビ放送受信装置のログ保存方法
JP6236800B2 (ja) 情報処理システム、及び情報処理装置
KR100729091B1 (ko) 콤보 시스템의 롬 커렉션 방법
JP5333747B2 (ja) プロジェクター、プログラムおよび情報記憶媒体
JP4963660B2 (ja) ビデオ再生装置
JP2005258573A (ja) デバッグ作業効率化のためのインターフェース装置を具備する電子機器
JP2008305444A (ja) 情報記録再生装置
JP2008250483A (ja) コンテンツエミュレーション装置及びコンテンツエミュレーション方法