(57)【要約】【課題】ソフトウェアのデバッグ情報を、着脱可能な記録媒体等へ簡易な方法で取得することを可能とした情報出力制御方法、記録媒体、及び電子機器を提供する。【解決手段】本発明の電子機器が備える制御部は、電子機器に外部接続されたメモリー装置の有無や、メモリー装置の接続状態等に基づいて、電子機器が備えるプログラムが出力する各種出力情報、例えばデバッグ情報等の出力先を決定して出力する。また、プログラムが複数の機能ブロックを含むように構成されており、各機能ブロックを機能識別子により識別可能である。制御部は出力情報を出力する際に、実行対象となった機能ブロックの機能識別子を参照することにより、出力情報の出力先を切り替える。或いは、エラーの深刻度等に基づいて出力情報に付加される重要度識別子や、プログラムの実行命令と共に与えられる起動パラメータを参照することにより、出力情報の出力先を切り替える。【選択図】図１
2009169642.tif 000002
【特許請求の範囲】
【請求項１】
電子機器が備えるプログラムを実行し、前記実行により生成される情報を含む出力情報の出力制御を行う制御部を用いた情報出力制御方法において、
前記制御部が、前記電子機器に接続された記録媒体の有無、及び／或いは前記記録媒体を接続するために前記電子機器に設けられた接続部の接続状態に基づき、前記出力情報の出力先を決定して前記出力情報を出力すること
を特徴とする情報出力制御方法。
【請求項２】
前記プログラムが、複数の機能部と、前記機能部を識別するための機能識別子とを含み、
前記制御部が、機能部の実行命令を検知した際に、実行を命令された前記機能部の機能識別子に基づいて前記出力情報の出力先を決定すること
を特徴とする請求項１に記載の情報出力制御方法。
【請求項３】
前記出力情報が、前記プログラムの試験において生成されるデバッグ情報であり、
前記制御部が、前記機能部の実行命令を検知した際に、実行を命令された前記機能部の機能識別子に基づいて、前記機能部の実行により生成される前記デバッグ情報の出力先を決定すること
を特徴とする請求項２に記載の情報出力制御方法。
【請求項４】
前記制御部が、前記プログラムの実行時に前記出力情報の重要度を示す重要度識別子を前記出力情報に付加し、前記重要度識別子に基づいて前記出力情報の出力先を決定すること
を特徴とする請求項１に記載の情報出力制御方法。
【請求項５】
前記出力情報が、前記プログラムの試験において生成されるデバッグ情報であり、
前記プログラムが、前記デバッグ情報に付加される重要度識別子と前記デバッグ情報の出力先とを関連付けた重要度対応情報を含み、
前記制御部が、前記重要度識別子と前記重要度対応情報とに基づいて前記デバッグ情報の出力先を決定すること
を特徴とする請求項４に記載の情報出力制御方法。
【請求項６】
前記制御部が、前記プログラムの実行命令と共に与えられた引数に基づいて、前記出力情報の出力先を決定すること
を特徴とする請求項１〜５のいずれかに記載の情報出力制御方法。
【請求項７】
前記制御部が、前記接続部に着脱可能な記録媒体である着脱記録媒体から前記プログラムの実行命令を記述した実行開始命令ファイルを読み込んで前記プログラムを実行する際に、前記実行開始命令ファイルが含む実行命令の引数に基づき、前記出力情報の出力先を決定すること
を特徴とする請求項１〜５のいずれかに記載の情報出力制御方法。
【請求項８】
前記プログラムが、請求項１〜請求項７の情報出力制御方法により決定された出力先である仮想出力先と、物理的な出力装置を示す物理出力先とを関連付けた出力先対応情報を含み、
前記制御部が、前記出力先対応情報に基づいて前記物理出力先を決定し、前記物理出力先へ前記出力情報を出力すること
を特徴とする請求項１〜７のいずれかに記載の情報出力制御方法。
【請求項９】
前記請求項１〜８のいずれかに記載の情報出力制御方法を実現するためのプログラムを記録した記録媒体。
【請求項１０】
プログラムを記録する記録媒体と、
前記プログラムを実行することによる装置の制御、及び前記制御に関連する情報を含む出力情報の出力制御を行う制御部と、
着脱可能な着脱記録媒体を接続する接続部と、
を備えた電子機器において、
前記制御部が、前記接続部に接続された着脱記録媒体の有無、及び／或いは前記接続部の接続状態に基づき、前記出力情報の出力先を決定して前記出力情報を出力すること
を特徴とする電子機器。
【請求項１１】
前記制御部が、前記プログラムの実行開始命令を検知し、前記実行開始命令に含まれる引数を取得する起動切り替え処理部と、
前記プログラムを実行し、前記接続部に接続された着脱記録媒体の有無、及び／或いは前記接続部の接続状態、及び／或いは前記引数に基づいて前記出力情報の出力先を決定するプログラム実行部と、
前記プログラム実行部により決定された出力先へ前記出力情報を出力する情報出力切り替え処理部と、
を備えたことを特徴とする請求項１０に記載の電子機器。
【請求項１２】
前記プログラムが、複数の機能部と、前記機能部を識別するための機能識別子とを含み、
前記プログラム実行部が、前記起動切り替え処理部により実行命令が検知された機能部の機能識別子に基づいて前記出力情報の出力先を決定すること
を特徴とする請求項１１に記載の電子機器。
【請求項１３】
前記出力情報が、前記プログラムの試験において生成されるデバッグ情報であり、
前記プログラム実行部が、前記機能部の実行命令を検知した際に、実行を命令された前記機能部の機能識別子に基づいて、前記機能部の実行により生成される前記デバッグ情報の出力先を決定すること
を特徴とする請求項１２に記載の情報出力制御方法。
【請求項１４】
前記プログラム実行部が、前記プログラムの実行時に前記出力情報の重要度を示す重要度識別子を前記出力情報に付加し、前記重要度識別子に基づいて前記出力情報の出力先を決定すること
を特徴とする請求項１１に記載の電子機器。
【請求項１５】
前記出力情報が、前記プログラムの試験において生成されるデバッグ情報であり、
前記プログラムが、前記デバッグ情報に付加される重要度識別子と前記デバッグ情報の出力先とを関連付けた重要度対応情報を含み、
前記プログラム実行部が、前記重要度識別子と前記重要度対応情報とに基づいて前記デバッグ情報の出力先を決定すること
を特徴とする請求項１４に記載の電子機器。
【請求項１６】
前記プログラムが、前記プログラム実行部により決定された出力先である仮想出力先と、物理的な出力装置を示す物理出力先とを関連付けた出力先対応情報を含み、
前記プログラム実行部が、前記出力先対応情報に基づいて前記物理出力先を決定し、決定した前記物理出力先を前記情報出力切り替え処理部に与え、
前記情報出力切り替え処理部が、与えられた前記物理出力先に対して前記出力情報を出力すること
を特徴とする請求項１１〜１５のいずれかに記載の電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア処理に関連する情報出力制御方法、記録媒体、及び電子機器に関するものであり、特にプログラムの不具合解析や利用状況調査等に用いられるデバッグ情報の出力先を切り替えるための情報出力制御方法、記録媒体、及び電子機器に関する。
【背景技術】
【０００２】
従来、プログラムのデバッグ作業は、主に開発者がプログラムの内部にデバッグ用の命令文を追加することにより、プログラム実行時の内部状態を示すデバッグ情報をファイルやモニタ等の出力装置に出力していた。
【０００３】
例えば開発者は、プログラムの実行順序を示すトレース情報やプログラム内部の変数値を示すログ情報等を出力するための出力命令を、プログラムの任意の箇所に挿入しておく。そしてプログラム実行時に、出力命令により出力された出力ログを調べることによりデバッグ作業を行っていた。
【０００４】
従来のデバッグ情報の出力処理は、その出力実行の有無や出力先を、プログラムの構築前、例えばコンパイル前に定めてプログラム内に記述しておく必要があった。このため、出力先を変更するためには、プログラムの修正及び再コンパイルを行わねばならないという問題があった。また、デバッグ情報の出力処理は、プログラム実行時においてＣＰＵ等のシステムリソースへの負荷を増加させる。このため、通常の処理実行に悪影響を与えるという問題があった。さらには、デバッグ情報を蓄積するために十分な容量を備えた記録媒体を用意する必要があるという問題もあった。
【０００５】
以上の問題から、デバッグ情報を出力可能なソフトウェアもしくはそれを搭載した電子機器は、出荷される際に予めデバッグ情報を出力しないようにプログラムが構築されている。或いは、デバッグ情報の出力先が仮想的な記録媒体（＝指定された場合に情報の蓄積を行わない記録媒体）や、開発者だけが参照できるような特殊な出力先、例えばデバッグ情報採取用メモリーやデバッグ専用インタフェース等に固定されていた。
【０００６】
しかしながら、ある種の不具合や利用調査状況においては、所定の場所、所定の環境下でなければ有効且つ効果的なデバッグ情報を取得できない場合がある。このため、工場出荷前の試験設備等に設置された試験環境では、有効且つ効果的なデバッグ情報を収集できないことが多い。
【０００７】
以上のことから、工場出荷後に設置等が行われた状態で有効且つ効果的なデバッグ情報を収集したい場合には、デバッグ情報をその場で参照可能な出力状態及び出力先に設定した上で、プログラムを再構築して設置しなおす必要があった。或いは、特別な出力先に固定されて構築されたプログラムに対して、デバッグ情報を参照できる装置を追加する必要があった。このように、開発者もしくはデバッグ情報を参照できる者が、設置場所や不具合発生場所等まで直接出向かなければ、デバッグ情報の取得及び有効利用を行うことができなかった。
【０００８】
上記の問題に関連して、特許文献１には、外部入力もしくは外部ファイルの命令によりデバッグ情報の出力有無を選択的に切り替えるデバッグ情報出力制御方法が開示されている。また特許文献２においては、プログラムの実行中にデバッグ情報の出力有無を選択的に切り替えることを可能としたプログラム開発支援装置が開示されている。
【特許文献１】特開平１１−１５６９２号公報
【特許文献２】特開平１１−１１０２５０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら上記の特許文献１及び特許文献２においては、デバッグ情報の出力有無をプログラム起動時もしくはプログラム実行中に切り替えることはできるが、デバッグ情報の出力先については、従来と同様にコンパイル前に定めて記述しておく必要があった。従って、所定の環境下で試験や不具合調査を行う際に、従来と同様、プログラムの変更及び再コンパイルを行う必要があった。
【００１０】
本発明はこれらの課題を解決するために考案されたものであり、その目的は、工場出荷及び設置等がなされた電子機器に搭載されたソフトウェアのデバッグ情報を、開発者が設置現場に出向くことなく、着脱可能な記録媒体等へ簡易な方法で取得することを可能とした情報出力制御方法、記録媒体、及び電子機器を提供することにある。
【課題を解決するための手段】
【００１１】
上記目的を達成するために本発明の情報出力制御方法は、電子機器が備えるプログラムを実行し、前記実行により生成される情報を含む出力情報の出力制御を行う制御部を用いた情報出力制御方法において、前記制御部が、前記電子機器に接続された記録媒体の有無、及び／或いは前記記録媒体を接続するために前記電子機器に設けられた接続部の接続状態に基づき、前記出力情報の出力先を決定して前記出力情報を出力することを特徴としている。
【００１２】
また上記目的を達成するために本発明の情報出力制御方法は、前記プログラムが、複数の機能部と、前記機能部を識別するための機能識別子とを含み、前記制御部が、機能部の実行命令を検知した際に、実行を命令された前記機能部の機能識別子に基づいて前記出力情報の出力先を決定することを特徴としている。
【００１３】
また上記目的を達成するために本発明の情報出力制御方法は、前記出力情報が、前記プログラムの試験において生成されるデバッグ情報であり、前記制御部が、前記機能部の実行命令を検知した際に、実行を命令された前記機能部の機能識別子に基づいて、前記機能部の実行により生成される前記デバッグ情報の出力先を決定することを特徴としている。
【００１４】
また上記目的を達成するために本発明の情報出力制御方法は、前記制御部が、前記プログラムの実行時に前記出力情報の重要度を示す重要度識別子を前記出力情報に付加し、前記重要度識別子に基づいて前記出力情報の出力先を決定することを特徴としている。
【００１５】
また上記目的を達成するために本発明の情報出力制御方法は、前記出力情報が、前記プログラムの試験において生成されるデバッグ情報であり、前記プログラムが、前記デバッグ情報に付加される重要度識別子と前記デバッグ情報の出力先とを関連付けた重要度対応情報を含み、前記制御部が、前記重要度識別子と前記重要度対応情報とに基づいて前記デバッグ情報の出力先を決定することを特徴としている。
【００１６】
また上記目的を達成するために本発明の情報出力制御方法は、前記制御部が、前記プログラムの実行命令と共に与えられた引数に基づいて、前記出力情報の出力先を決定することを特徴としている。
【００１７】
また上記目的を達成するために本発明の情報出力制御方法は、前記制御部が、前記接続部に着脱可能な記録媒体である着脱記録媒体から前記プログラムの実行命令を記述した実行開始命令ファイルを読み込んで前記プログラムを実行する際に、前記実行開始命令ファイルが含む実行命令の引数に基づき、前記出力情報の出力先を決定することを特徴としている。
【００１８】
また上記目的を達成するために本発明の情報出力制御方法は、前記プログラムが、請求項１〜請求項７の情報出力制御方法により決定された出力先である仮想出力先と、物理的な出力装置を示す物理出力先とを関連付けた出力先対応情報を含み、前記制御部が、前記出力先対応情報に基づいて前記物理出力先を決定し、前記物理出力先へ前記出力情報を出力することを特徴としている。
【００１９】
また上記目的を達成するために本発明の記録媒体は、前記請求項１〜８のいずれかに記載の情報出力制御方法を実現するためのプログラムを記録したことを特徴としている。
【００２０】
また上記目的を達成するために本発明の電子機器は、プログラムを記録する記録媒体と、前記プログラムを実行することによる装置の制御、及び前記制御に関連する情報を含む出力情報の出力制御を行う制御部と、着脱可能な着脱記録媒体を接続する接続部とを備えた電子機器において、前記制御部が、前記接続部に接続された着脱記録媒体の有無、及び／或いは前記接続部の接続状態に基づき、前記出力情報の出力先を決定して前記出力情報を出力することを特徴としている。
【００２１】
また上記目的を達成するために本発明の電子機器は、前記制御部が、前記プログラムの実行開始命令を検知し、前記実行開始命令に含まれる引数を取得する起動切り替え処理部と、前記プログラムを実行し、前記接続部に接続された着脱記録媒体の有無、及び／或いは前記接続部の接続状態、及び／或いは前記引数に基づいて前記出力情報の出力先を決定するプログラム実行部と、前記プログラム実行部により決定された出力先へ前記出力情報を出力する情報出力切り替え処理部とを備えていることを特徴としている。
【００２２】
また上記目的を達成するために本発明の電子機器は、前記プログラムが、複数の機能部と、前記機能部を識別するための機能識別子とを含み、前記プログラム実行部が、前記起動切り替え処理部により実行命令が検知された機能部の機能識別子に基づいて前記出力情報の出力先を決定することを特徴としている。
【００２３】
また上記目的を達成するために本発明の電子機器は、前記出力情報が、前記プログラムの試験において生成されるデバッグ情報であり、前記プログラム実行部が、前記機能部の実行命令を検知した際に、実行を命令された前記機能部の機能識別子に基づいて、前記機能部の実行により生成される前記デバッグ情報の出力先を決定することを特徴としている。
【００２４】
また上記目的を達成するために本発明の電子機器は、前記プログラム実行部が、前記プログラムの実行時に前記出力情報の重要度を示す重要度識別子を前記出力情報に付加し、前記重要度識別子に基づいて前記出力情報の出力先を決定することを特徴としている。
【００２５】
また上記目的を達成するために本発明の電子機器は、前記出力情報が、前記プログラムの試験において生成されるデバッグ情報であり、前記プログラムが、前記デバッグ情報に付加される重要度識別子と前記デバッグ情報の出力先とを関連付けた重要度対応情報を含み、前記プログラム実行部が、前記重要度識別子と前記重要度対応情報とに基づいて前記デバッグ情報の出力先を決定することを特徴としている。
【００２６】
また上記目的を達成するために本発明の電子機器は、前記プログラムが、前記プログラム実行部により決定された出力先である仮想出力先と、物理的な出力装置を示す物理出力先とを関連付けた出力先対応情報を含み、前記プログラム実行部が、前記出力先対応情報に基づいて前記物理出力先を決定し、決定した前記物理出力先を前記情報出力切り替え処理部に与え、前記情報出力切り替え処理部が、与えられた前記物理出力先に対して前記出力情報を出力することを特徴としている。
【発明の効果】
【００２７】
本発明の情報出力制御方法によれば、家電製品等の電子機器に外部接続されたメモリー装置（＝記録媒体）の有無や、メモリー装置の接続状態、つまりいずれの接続端子（＝接続部）に接続されているかに基づいて、電子機器が備えるプログラムが出力する各種出力情報、例えばデバッグ情報等の出力先を決定して出力する。このため、プログラムを再構築せずとも、メモリー装置を接続するだけで、プログラムが出力する情報の有無及び出力先を切り替えることができる。従って開発者やテスト技術者は、デバッグのために電子機器の設置現場に赴き、プログラムの変更や再構築を行う必要がない。また、ソフトウェアプログラムの知識が乏しい者でも容易に出力先を切り替えて出力情報を採取できるため、プログラムの保守にかかるコストを削減することができる。
【００２８】
また本発明の情報出力制御方法によれば、プログラムが複数の機能ブロック（＝機能部）を含むように構成されているとともに、各機能ブロックを機能識別子により識別可能である。制御部は出力情報を出力する際に、実行対象となった機能ブロックの機能識別子を参照することにより、出力情報の出力先を切り替える。このため、一つのプログラムを実行する場合であっても、実行される機能ブロックに応じて異なる記録媒体に情報を出力できる。従って、出力後に機能ブロック毎に出力情報の分別を行う必要がなく、効率的な情報収集を行うことができる。
【００２９】
また本発明の情報出力制御方法によれば、前述の出力情報として、プログラムの試験に用いられるデバッグ情報を出力する。また、実行を命令された機能部に付加されている機能識別子に基づいて、デバッグ情報の出力有無及び出力先を決定する。このため、出力される全デバッグ情報の中から、必要な機能部のデバッグ情報のみを容易に抽出して取得することが可能である。
【００３０】
また本発明の情報出力制御方法によれば、プログラムの実行時に、出力情報の重要度を示す重要度識別子を出力情報に付加する。制御部は出力情報を出力する際に、付加された重要度識別子を参照することにより、出力情報の出力先を切り替える。このため、一つのプログラムにより複数の出力情報が生成される場合であっても、各出力情報の重要度に応じて異なる記録媒体に情報が出力されるため、出力後に重要度毎に出力情報の分別を行う必要がなく、効率的な情報収集を行うことができる。
【００３１】
また本発明の情報出力制御方法によれば、前述の出力情報として、プログラムの試験に用いられるデバッグ情報を出力する。また、デバッグ情報に含まれるエラーコード等に基づいて付加される重要度識別子と、重要度対応情報とに基づいて、デバッグ情報の出力有無及び出力先を決定する。このため、出力される全デバッグ情報の中から、必要な重要度のデバッグ情報のみを容易に抽出して取得することが可能である。
【００３２】
また本発明の情報出力制御方法によれば、プログラムの起動（＝実行開始）時に実行命令と共に与えられる起動パラメータ（＝引数）に基づいて、出力情報の出力先を切り替える。このため、同一のプログラムを起動する場合であっても、起動のたびに異なる記録媒体に情報を出力することが可能であり、より多様な方法で情報収集を行うことができる。
【００３３】
また本発明の情報出力制御方法によれば、制御部がメモリー装置等の着脱記録媒体からプログラムの実行命令を記述した起動スクリプト（＝実行開始命令ファイル）を読み出して実行する。この際に制御部は、起動スクリプト内に記述されている起動パラメータに基づいて、出力情報の出力先を切り替える。このため、同一のプログラムを起動する場合であっても、使用する起動スクリプトによって異なる記録媒体に情報を出力することができる。例えば起動パラメータに対応する出力先を、起動スクリプトを記録したメモリー装置となるようにしておけば、メモリー装置を接続するだけで出力先の切り替えと記録媒体の確保とをあわせて行うことができる。
【００３４】
また本発明の情報出力制御方法によれば、前述の情報出力制御方法により決定された出力先である仮想出力先と、物理的な装置を示す物理出力先とを関連付けた出力先対応テーブル（＝出力先対応情報）をプログラムが備えている。制御部は物理的な出力先、例えばハードディスクやメモリー装置等の種別を、出力先対応テーブルから取得する。このため、出力先対応テーブルの内容を変更することにより、容易に物理的な出力先を変更することが可能であるため、プログラムの設計を柔軟に行うことができる。
【００３５】
本発明の記録媒体によれば、上記請求項１〜８のいずれかに記載の情報出力制御方法を実現するためのプログラムを記録している。このため、制御部は必要に応じたプログラムを記録媒体から読み出すことにより、各種出力情報の出力切り替え処理を実施することが可能である。
【００３６】
本発明の電子機器によれば、電子機器に外部接続されたメモリー装置の有無や、メモリー装置の接続状態、つまりメモリー装置がいずれの接続端子に接続されているか等に基づいて、電子機器のプログラムが出力する各種出力情報、例えばデバッグ情報等の出力先を決定する。このため、プログラムを再構築せずとも、メモリー装置を接続するだけで、出力の有無及び出力先を切り替えることができる。従って開発者やテスト技術者は、デバッグのために電子機器の設置現場に赴き、プログラムの変更や再構築を行う必要がない。また、ソフトウェアプログラムの知識に乏しい者でも容易に出力先を切り替えて出力情報を採取できるため、プログラムの保守にかかるコストを削減することができる。
【００３７】
また本発明の電子機器によれば、プログラムの実行開始命令を検知し、実行開始命令に含まれる起動パラメータを取得する起動切り替え処理部を備えている。また、プログラムを実行し、接続部に接続されたメモリー装置の有無、接続端子の接続状態、或いは入力された起動パラメータ等に基づき、出力情報の出力先を決定するプログラム実行部を備えている。また、プログラム実行部により決定された出力先へ出力情報を出力する情報出力切り替え処理部を備えている。このため、個々の機能部の働きにより、プログラムを再構築せずとも、出力情報の出力先を切り替えることができる。
【００３８】
また本発明の電子機器によれば、電子機器が備えるプログラムが複数の機能ブロックを含むように構成されているとともに、各機能ブロックを機能識別子により識別可能である。プログラム実行部は、実行対象となった機能ブロックの機能識別子を参照することにより、出力情報の出力先を切り替える。このため、一つのプログラムを実行する場合であっても、実行される機能ブロックに応じて異なる記録媒体に情報を出力できる。従って出力後に機能ブロック毎に出力情報の分別を行う必要がなく、効率的な情報収集を行うことができる。
【００３９】
また本発明の電子機器によれば、前述の出力情報として、プログラムの試験に用いられるデバッグ情報を出力する。また、実行を命令された機能部に付加されている機能識別子に基づいて、デバッグ情報の出力有無及び出力先を決定する。このため、出力される全デバッグ情報の中から、必要な機能部のデバッグ情報のみを容易に抽出して取得することが可能である。
【００４０】
また本発明のまた本発明の電子機器によれば、プログラム実行部は、出力情報の重要度を示す重要度識別子を出力情報に付加する。そして付加された重要度識別子を参照することにより、出力情報の出力先を切り替える。このため、一つのプログラムにより複数の出力情報が生成される場合であっても、各出力情報の重要度に応じて異なる記録媒体に情報が出力される。従って、出力後に重要度毎に出力情報の分別を行う必要がなく、効率的な情報収集を行うことができる。
【００４１】
また本発明の電子機器によれば、プログラム実行部及び出力情報切り替え部は前述の出力情報として、プログラムの試験に用いられるデバッグ情報を出力する。またプログラム実行部は、デバッグ情報に含まれるエラーコード等に基づいて付加される重要度識別子と、重要度対応情報とに基づいて、デバッグ情報の出力有無及び出力先を決定する。このため、全デバッグ情報の中から、必要な重要度のデバッグ情報のみを容易に抽出して取得することが可能である。
【００４２】
また本発明の電子機器によれば、プログラム実行部により決定された仮想出力先と物理的な装置を示す物理出力先とを関連付けた出力先対応テーブルをプログラムが備えている。プログラム実行部は、決定した仮想出力先に対応する物理的な出力先を出力先対応テーブルから取得し、情報出力切り替え処理部に与える。このため、出力先対応テーブルの内容を変更することにより、容易に物理的な出力先を変更することが可能であるため、プログラムの設計を柔軟に行うことができる。
【発明を実施するための最良の形態】
【００４３】
以下に、本発明の第一の実施形態に係る情報出力制御方法について、図面を参照しつつ説明する。なお、ここで示す実施形態は一例であり、本発明はここに示す実施形態に限定されるものではない。
【００４４】
［実施の形態１］
〈１−１．装置の物理構成について〉
ここで、本発明の第一の実施形態に係る情報出力制御方法、記録媒体、及び電子機器を実現するための各装置の接続関係を、図２のブロック図を用いながら説明する。
【００４５】
図２のブロック図に示すように、本実施形態の情報出力制御方法は、物理的な構成要素として電子機器１、入力装置４０、着脱可能なメモリー装置Ａ７１及びメモリー装置Ｂ７２（＝着脱記録媒体）、着脱不可能なメモリー装置Ｃ７３を含んでいる。なお、図２に示す空装置７０は、概念上は存在するが物理的には存在しない記録媒体であり、後述する空出力先６０を仮想的に格納するものである。
【００４６】
電子機器１は、内部に記録された制御プログラムを実行することにより駆動制御される装置であり、例えば家電製品や、工場等に設置される生産機械等がこれにあたる。なお制御プログラムは一般に、コンパイルを要する組み込み式のプログラム言語（例えばＣ言語等）が広く用いられているが、コンパイルを要しないインタプリタ系のプログラム言語を用いる形態であってもよい。
【００４７】
電子機器１はその内部に、デバッグ対象ソフトウェア１０（＝プログラム）、制御部２０、メモリー３０（＝記録媒体）、及び起動スクリプトＣ５３（＝実行開始命令ファイル）を備えている。なおデバッグ対象ソフトウェア１０及び起動スクリプトＣ５３は、メモリー３０の内部に記録されており、処理実行のたびに制御部２０により読み出される。また図示していないが、電子機器１はメモリー装置Ａ７１及びメモリー装置Ｂ７２を接続するための接続端子（＝接続部）を複数備えている。
【００４８】
制御部２０は、デバッグ対象ソフトウェア１０を実行することにより、電子機器１の各部を統括制御するための中央処理装置である。また制御部２０は、制御部２０が備える処理実行部として、起動切り替え処理部２１、プログラム実行部２２、及び情報出力切り替え処理部２３を備えている。
【００４９】
起動切り替え処理部２１は、デバッグ対象ソフトウェア１０の起動命令を受け付けると共に、その起動種別を判別する。具体的には、入力装置４０を用いたユーザ操作による手動起動か、或いは起動スクリプトＡ５１〜起動スクリプトＣ５３に記述された実行命令及び起動パラメータ（＝引数）を用いたスクリプト起動かを判定する。なお、起動スクリプトＡ５１には起動パラメータＡが、起動スクリプトＢ５２には起動パラメータＢが、起動スクリプトＣ５３には起動パラメータＣが記述されている。また、入力装置４０による手動起動の場合、ユーザ操作により起動パラメータが手入力される。起動切り替え処理部２１は、受け付けた起動パラメータに基づいてデバッグ対象ソフトウェア１０の起動方法を判別し、プログラム実行部２２に起動命令を与える。
【００５０】
プログラム実行部２２は、起動切り替え処理部２１からの命令を受けてデバッグ対象ソフトウェア１０の起動処理を行うと共に、後述する出力先対応テーブル１５（＝出力先対応情報、及び重要度対応情報）に基づいて、デバッグ対象ソフトウェア１０に含まれる各機能ブロック（＝機能部）実行時のデバッグ情報（＝出力情報）出力先を決定する。またプログラム実行部２２は、デバッグ対象ソフトウェア１０の実行時に、デバッグ情報の生成や、デバッグ情報に含まれるエラーコード等からデバッグ情報毎に重要度識別子を付加する機能も持つ。
【００５１】
情報出力切り替え処理部２３は、プログラム実行部２２により決定された出力先に応じて、出力先を切り替えてデバッグ情報を逐次出力する振り分け処理を行う。情報出力切り替え処理部２３は、デバッグ対象ソフトウェア１０からの出力命令、例えばＣ言語におけるfprintfのようなコマンドの実行をトリガとして、起動パラメータで決められた出力先へ出力する。
【００５２】
メモリー３０は、電子機器１が保持する各種データを一時的に記録する記録媒体である。メモリー３０には、例えば不揮発性のフラッシュメモリー等が用いられる。本発明では、デバッグ対象ソフトウェア１０及び起動スクリプトＣ５３等を記録する役割を持つ。
【００５３】
入力装置４０は、ユーザがデバッグの実施やパラメータの入力等を命令するための操作部であり、例えばキーボードやマウス等の複数の装置を含むように構成されている。或いは入力装置４０は、図示しないパソコン等の外部機器と電子機器１とを相互接続し、外部機器から電子機器を制御可能にする通信インタフェースであっても構わない。
【００５４】
着脱可能なメモリー装置Ａ７１には、図１で示した起動スクリプトＡ５１及び出力先Ａ６１（＝物理出力先）が格納されている。またメモリー装置Ｂ７２には、図１で示した起動スクリプトＢ５２及び出力先Ｂ６２が格納されている。またメモリー装置Ｃ７３には、図１で示した出力先Ｃ６３が格納されている。
【００５５】
〈１−２．ソフトウェア構成について〉
次に、本発明の第一の実施形態に係る情報出力制御方法を実現するためのソフトウェア構成を、図１のブロック図を用いながら説明する。
【００５６】
図１のブロック図に示すように、本実施形態の情報出力制御方法は、デバッグ対象ソフトウェア１０、起動切り替え処理部２１、プログラム実行部２２、情報出力切り替え処理部２３、入力装置４０、起動スクリプトＡ５１〜起動スクリプトＣ５３、及び空出力先６０〜出力先Ｃ６３により実現される。
【００５７】
デバッグ対象ソフトウェア１０は、電子機器１の各部を統括制御するためのプログラムであり、本実施形態では機能Ａ１１〜機能Ｄ１４の４つの機能ブロックと、出力先対応テーブル１５とを備えている。なお本実施例ではデバッグ対象ソフトウェア１０を一つのみ図示しているが、制御対象に応じて複数のデバッグ対象ソフトウェア１０が存在する形態であっても構わない。
【００５８】
機能Ａ１１〜機能Ｄ１４は機能的に分割されており、個々に独立して動作することが可能な機能ブロックである。また各機能ブロックには、予め固有の識別子（＝機能識別子）が割り当てられている。例えば図１に示す例では、各機能ブロックに付加されているＡ〜Ｄの記号を機能識別子として用いることができる。
【００５９】
出力先対応テーブル１５は、デバッグ対象ソフトウェア１０の実行時において出力されるデバッグ情報の出力先を定めたテーブルである。なお、出力先対応テーブル１５の詳細については後述する。
【００６０】
デバッグ対象ソフトウェア１０の各機能ブロックの実行に伴って生成されるデバッグ情報は、情報出力切り替え処理部２３に与えられる。またこの際、デバッグ情報毎の出力先を示す付加情報が情報出力切り替え処理部２３に与えられる。情報出力切り替え処理部２３は、与えられた付加情報に従い、デバッグ情報を複数の出力先（図１の空出力先６０〜出力先Ｃ６３）へ振り分ける処理を行う。
【００６１】
〈１−３．ソフトウェアの起動処理について〉
ここで、本発明の第一の実施形態に係るデバッグ対象ソフトウェア１０の動作例について、図１及び図２のブロック図と、図３のフロー図と、図４及び図５のテーブル図とを用いながら説明する。
【００６２】
図３は、デバッグ対象ソフトウェア１０の起動にいたるまでの処理フローを示したフロー図である。図３に示す処理フローは、電子機器１の電源が起動し、且つデバッグ対象ソフトウェア１０の起動が可能である状態において、デバッグ対象ソフトウェア１０の起動命令を検知した際に開始される。なお、起動命令は例えば、入力装置４０を用いたユーザ操作等により発行可能である。
【００６３】
本処理の開始後、起動切り替え処理部２１はステップＳ１１０において、着脱可能なメモリー装置、つまりメモリー装置Ａ７１或いはメモリー装置Ｂ７２が電子機器１に接続されているかどうかの判定を行う。着脱可能なメモリー装置が接続されている場合、起動切り替え処理部２１はステップＳ１２０において、メモリー装置に格納されている起動スクリプトを用いて起動を行うことを決定する。
【００６４】
例えばメモリー装置Ａ７１の接続が検知された場合、起動スクリプトＡ５１に記述されている起動パラメータＡに従って起動を行うことを決定する。或いはメモリー装置Ｂ７２が接続されていれば、起動スクリプトＢ５２に記述されている起動パラメータＢに従って起動を行うことを決定する。なお、複数の接続が一度に検知された場合は、何れの起動スクリプトを優先するかを予め定めて起動切り替え処理部２１に記録しておくことが望ましい。
【００６５】
いずれのメモリー装置も接続されていない場合、起動切り替え処理部２１はステップＳ１３０において、予め電子機器１に内蔵されている起動スクリプトＣ５３の参照を行う。この際、起動スクリプトＣ５３の状態が正常であるか、つまり破損していないかどうかの判定を行う。具体的には例えば、起動スクリプトＣ５３をファイルオープンして読み出し可能かどうか、或いはファイルシステム上の管理ファイルサイズと実際の起動スクリプトＣ５３のファイルサイズとが一致するかどうか等を確認することにより判定を行う。
【００６６】
ステップＳ１３０において正常であると判定された場合、起動切り替え処理部２１はステップＳ１４０において、起動スクリプトＣ５３に記述されている起動パラメータＣに従って起動を行うことを決定する。
【００６７】
ステップＳ１３０において起動スクリプトＣ５３が存在しない、或いは起動スクリプトＣ５３が正常状態でないため参照できないと判定された場合、起動切り替え処理部２１はステップＳ１５０において、入力装置４０が電子機器１に接続されており、且つ入力装置４０から起動パラメータの入力を受け付けたかどうかの判定を行う。
【００６８】
入力装置４０からのユーザ操作による起動パラメータの入力を検知している場合、起動切り替え処理部２１はステップＳ１６０において、入力装置４０から入力された起動パラメータに従って起動を行うことを決定する。起動パラメータの入力が検知されなかった場合、起動エラー処理を実施して本処理を終了する。
【００６９】
以上に説明したステップＳ１２０、ステップＳ１４０、或いはステップＳ１６０のいずれかにより起動パラメータが決定されると、起動切り替え処理部２１はステップＳ１７０において、決定された起動パラメータが正常かどうかの判定を行う。具体的には例えば、起動パラメータの値が所定の範囲を逸脱しないかどうか、或いは起動パラメータのフォーマットが予め定められたフォーマットと一致するかどうか等を確認することにより判定を行う。
【００７０】
以下に、デバッグ対象ソフトウェア１０の起動命令及び起動パラメータを含む命令文の一例を示す。
Program.exe  output_param=patternA
左が起動命令、右が起動パラメータを示している。このように、用途別に起動パラメータの種類を変えてプログラムに引き渡すことが可能である。起動切り替え処理部２１は、上記命令文が記述された起動スクリプトを読み出すことにより、起動パラメータを決定するとともに、デバッグ対象ソフトウェア１０の起動命令をプログラム実行部に与える。なお、ユーザ操作により入力装置４０から上記命令文が入力された場合も、起動切り替え処理部２１は同様の処理を行う。
【００７１】
ステップＳ１７０において起動パラメータが正常であると判定された場合、起動パラメータに基づく起動処理を、プログラム実行部２２に対して命令する。この結果、デバッグ対象ソフトウェア１０の実行が開始され、あわせてデバッグ情報の出力が開始される。出力されたデバッグ情報は、情報出力切り替え処理部２３に与えられる。この際、プログラム実行部２２は起動パラメータに応じて決定した出力先を情報出力切り替え処理部２３に与える。これを受けた情報出力切り替え処理部２３は、命令された内容に基づき、デバッグ情報を空出力先６０〜出力先６３のいずれかに出力する。
【００７２】
上記の情報出力切り替え処理部２３によるデバッグ情報出力処理の具体例を、図４及び図５を用いながら説明する。図４及び図５は、本実施形態に係る出力先対応テーブル１５の一例を示したテーブル図である。図４は、デバッグ対象ソフトウェア１０が備える機能ブロック毎の仮想出力先を示したテーブルである。また図５は、図４で決定された仮想出力先と起動パラメータとから物理的な出力先を決定するためのテーブル（＝出力先対応情報）である。
【００７３】
デバッグ対象ソフトウェア１０は図４に示すように、予め機能ブロック毎に仮想的な出力先が設定されている。これら仮想出力先１〜３は通常、デフォルトの物理的な出力先として「空出力先」が関連付けられていることが望ましい。これにより通常出荷状態では、デバッグ情報が出力されないため、システムリソースへの負荷をかけずにプログラムを実行することができる。或いはデフォルトの出力先として、開発者だけが利用できるような特別な出力先を用いる形態であってもよい。
【００７４】
図４に示すテーブルにより仮想出力先が決定されると、図５に示すテーブルにより、物理的な出力先が決定される。プログラム実行部２２は、ステップＳ１７０において決定された起動パラメータの種類に従って、機能ブロック毎の仮想出力先を物理的な出力先へマッピングする。そして情報出力切り替え処理部２３には、このマッピングに従って、デバッグ情報を物理的な出力先へ出力する。これにより、起動パラメータに基づいて、機能ブロック毎にデバッグ情報の出力先を切り替えることが可能である。
【００７５】
例えば、起動パラメータＡにより起動されたとする。図４に示すように機能Ａ、機能Ｂ、機能Ｄのデバッグ情報は、仮想出力先が仮想出力先１或いは仮想出力先２である。このため、図５に示すように出力先Ａへデバッグ情報が出力される。また機能Ｃは図４に示すように仮想出力先が仮想出力先３に設定されている。このため、図５に示すように空出力先へデバッグ情報が出力される、つまり出力処理が行われない。
【００７６】
また例えば、起動パラメータＣで起動された場合、図５に示すように各仮想出力先に対応する物理的な出力先が全て空出力先になっている。このため、全ての機能ブロックのデバッグ情報を出力しないようにすることができる。通常の運用では、電子機器１に内蔵されている起動スクリプトＣ５３に、起動パラメータＣを記述することが望ましい。これにより、メモリー装置が接続されていない状態において起動スクリプトＣ５３を使用することにより、一切のデバッグ情報を出力しないようにできる。
【００７７】
逆に起動パラメータＡが記述された起動スクリプトＡ５１をメモリー装置Ａ７１に格納した場合、デバッグ対象ソフトウェア１０の実行時に起動スクリプトＡ５１が読み込まれ、起動パラメータＡによる起動が行われる。この結果、機能Ａ、機能Ｂ，及び機能Ｄのデバッグ情報が出力先Ａ６１に出力される。つまりユーザは、メモリー装置Ａ７１を電子機器１に接続するだけで、上記機能ブロックのデバッグ情報をメモリー装置Ａ７１に収集することができる。
【００７８】
このように本発明によれば、出力先の切り替え操作を必要とせずにメモリー装置等の着脱記録媒体にデバッグ情報を収集できる。このためプログラムの知識に乏しい人間、例えば現場のシステム管理者や一般ユーザでも、容易にデバッグ情報を収集して開発者に手渡すことができる。このため開発者、システム管理者の双方にとって、作業効率の向上を図ることができるという効果が得られる。
【００７９】
次に、本発明の第二の実施形態ついて、図面を参照しつつ説明する。
［実施の形態２］
〈２−１．装置の物理構成について〉
実施の形態１と同内容であるため、ここでは説明を省略する。
【００８０】
〈２−２．ソフトウェア構成について〉
実施の形態１と同内容であるため、ここでは説明を省略する。
【００８１】
〈２−３．ソフトウェアの起動処理について〉
ここで、本発明の第二の実施形態に係るデバッグ対象ソフトウェア１０の起動例について、図１及び図２のブロック図と、図３のフロー図と、図４及び図６のテーブル図とを用いながら説明する。
【００８２】
本実施形態においては、デバッグ対象ソフトウェア１０が出力するデバッグ情報を、機能ブロック別ではなく、ソフトウェア実行時に発生した異常処理等に起因する深刻度別に出力する。このため、起動フローは図３に示す実施の形態１と同内容となっているが、出力先対応テーブル１５の内容が実施の形態１と異なっている。実施の形態１の図４に示すように機能ブロックに基づいて仮想出力先を決定するのではなく、図６に示すように深刻度識別子（＝重要度識別子）に基づいて仮想出力先を決定する。
【００８３】
なお深刻度識別子は、デバッグ対象ソフトウェア１０の実行時に、予め定められた基準によりデバッグ情報毎に付加される。例えば、デバッグ情報が含むエラーコードから、エラーの深刻度が算出される。深刻度の基準、つまりエラーコードとエラー深刻度の関連付けは、運用の形態にあわせて設計者が適宜変更可能である。
【００８４】
一例を示すと、起動スクリプトが読み出せない場合は深刻度３（Critical Error）、電池電圧が１Ｖを下回った場合は深刻度４（Fatal Error）、出力先ファイルがアクセス不可で一つの出力文の書込みができない場合は深刻度１（Warning）のように基準を定める。これらの基準は、設計者がコーディング時に判断して割り振りを行い、デバッグ対象ソフトウェア１０の内部に記録させておく。これにより、例えば深刻度３以上のエラー深刻度を持つデバッグ情報だけを出力して入手するといった、デバッグ機能の使い方ができる。
【００８５】
出力先対応テーブル１５には、予めエラーの深刻度別の仮想出力先が設定されている。図６は、深刻度と仮想出力先とを関連付けた深刻度テーブル（＝重要度対応情報）の一例を示したものである。深刻度テーブルは出力先対応テーブル１５の中に含まれるテーブルである。なお仮想出力先はデフォルトの出力先として、実施の形態１と同様、「空出力先」或いは開発者だけが利用できるような特別な出力先を設定しておくことが望ましい。
【００８６】
図６に示す例では、深刻度がレベル１〜３のデバッグ情報は、仮想出力先３が仮想出力先となっている。このため、いずれの起動パラメータより起動された場合でも、図５に示すテーブルに基づき、空出力先へデバッグ情報が出力される、つまり出力処理が行われない。またレベル４のデバッグ情報は、図６に示すように仮想出力先１が仮想出力先となっている。このため、例えば起動パラメータＡにより起動された場合、図５に示すテーブルに基づき出力先Ａへデバッグ情報が出力される。
【００８７】
また例えば、起動パラメータＣで起動された場合、図５に示すように各仮想出力先に対応する出力先が全て空出力先になっている。このため、深刻度の大きさにかかわらず、全てのデバッグ情報を出力しないようにすることができる。
【００８８】
このように本発明によれば、出力先の切り替え操作を一切必要とせず、且つエラーの深刻度に応じて各デバッグ情報の出力先を切り替えながら、収集することができる。このため、例えば深刻度の高いデバッグ情報だけを採取し、深刻度の低いデバッグ情報は自動的に破棄するといった運用ができる。
【００８９】
このためデバッグの知識が乏しい人間、例えば現場のシステム管理者や一般ユーザでも、容易に必要な深刻度のデバッグ情報だけを収集して開発者に手渡すことができる。このため開発者、システム管理者の双方にとって、作業効率の向上を図ることができるという効果が得られる。
【００９０】
［その他の実施の形態］
以上、好ましい実施の形態及び実施例をあげて本発明を説明したが、本発明は必ずしも上記実施の形態に限定されるものではなく、その技術的思想の範囲内において様々に変形して実施することができる。
【００９１】
従って本発明は、以下の形態にも適用可能である。
（Ａ）本実施形態では、出力先対応テーブル１５をデバッグ対象ソフトウェア１０がその内部に備えている形態を例として説明したが、出力先対応テーブル１５を何らかの記録媒体に記録し、逐次読み出して使用する形態であってもよい。記録媒体としては例えば、フラッシュメモリー、マイクロＨＤＤ、ＥＥＰＲＯＭ等を用いることができる。これにより出力先対応テーブル１５を運用の形態に合わせて適宜変更することが可能であるため、より多様な出力先の切り替え処理を行うことが可能である。
【００９２】
（Ｂ）本実施形態では、デバッグ対象ソフトウェア１０は出力先対応テーブル１５を用いて出力先の切り替えを行っているが、出力先対応テーブル１５が含むテーブル情報の一部をパラメータとして起動切り替え処理部２１に与える形態でもよい。例えば、デバッグ対象ソフトウェア１０の起動時に、図５に示すテーブルに相当する情報をパラメータとして与えるとする。この場合、デバッグ対象ソフトウェア１０の起動命令として、以下のようなテーブル形式のフォーマットを用いる。
Program.exe  out1=stdout  out2=usb1  out3=sd_card
一番左が起動命令、その右の三つが起動パラメータを示している。起動パラメータの左項、例えばout1が仮想出力先を示している。起動パラメータの右項、例えばstdoutが物理的な出力先（＝図１に示す空出力先６０〜出力先Ｃ６３）を示している。また記述されていないが、out4等の他の仮想出力先がある場合、パラメータに記述されないことでデフォルトの出力先、例えば空出力先６０等が自動的に関連付けられることが望ましい。上記の方式によれば、用途別に起動パラメータを変更することにより、出力先対応テーブル１５を設けなくとも、運用形態に応じて出力先を適宜変更可能である。
【００９３】
（Ｃ）本実施形態では、プログラム実行部２２が生成する出力情報としてデバッグ情報を例として説明しているが、本発明をデバッグ情報以外の情報の出力切り替えに応用しても構わない。例えば、何らかの観測データを採取するようなプログラムにおいて、デフォルトの保存先の記録装置（＝例えばＨＤＤ等）からＵＳＢメモリーやＳＤカード等に切り替えることが可能である。これにより、デフォルトの記録装置が破損した場合であっても、プログラムの内容を変更して再コンパイルすることなく、一時的に出力先を変更して観測データを採取することができる。
【００９４】
（Ｄ）本実施形態では、デバッグ情報の出力切り替え処理を行うための各種処理部、例えば起動切り替え処理部２１等が、マイクロプロセッサ等の演算処理装置上でプログラムを実行することにより実現されているが、各種処理部が複数の回路により実現される形態でもよい。
【図面の簡単な説明】
【００９５】
【図１】は、本発明の情報出力制御方法を実現するためのソフトウェア構成を示すブロック図である。
【図２】は、本発明の情報出力制御方法を実現するための装置構成を示すブロック図である。
【図３】は、本発明の起動パラメータ決定処理の処理フローを示すフロー図である。
【図４】は、本発明の第一の実施形態に係る出力先対応テーブルを示すテーブル図である。
【図５】は、本発明の出力先対応テーブルを示すテーブル図である。
【図６】は、本発明の第二の実施形態に係る出力先対応テーブルを示すテーブル図である。
【符号の説明】
【００９６】
１０    デバッグ対象ソフトウェア（プログラム）
１５    出力先対応テーブル（出力先対応情報、重要度対応情報）
２１    起動切り替え処理部
２２    プログラム実行部
２３    情報出力切り替え処理部
３０    メモリー（記録媒体）
５１〜５３    起動スクリプト（実行開始命令ファイル）
７１〜７２    メモリー装置（着脱記録媒体）
【図１】
2009169642.tif 000003
【図２】
2009169642.tif 000004
【図３】
2009169642.tif 000005
【図４】
2009169642.tif 000006
【図５】
2009169642.tif 000007
【図６】
2009169642.tif 000008