(57)【要約】【課題】論理エラー発生原因を自動的に究明してユーザアプリケーションの開発効率を向上させる。【解決手段】オペレーティングシステム３０が例外を検出するとジョブ管理プログラム３５３を介しエラー解析プログラム３５３が実行される。エラー解析プログラム４３は、エラー発生要因となるＡＰＩ実行順とエラー内容情報とが対応して格納されたエラーテーブル３７を参照し、ロギング関数４４により得られたＡＰＩ関数の名称とその実引数のログファイル（ＡＰＩトレース結果）２０２にエラー発生要因となるＡＰＩ実行順が含まれているか否かを判定し、肯定判定した場合にはそのＡＰＩ実行順とエラー内容情報とを操作パネル１５に供給させ又はＮＩＣ１７を介しホストコンピュータ２１に供給させる。エラーテーブル３７は、ＡＰＩ関数の引数の値及び任意記号を含んでいる。【選択図】図１
2008027172.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、
該プロセッサに結合されプログラム及びデータが格納された記憶手段と、
該プロセッサに結合され、操作パネルの表示装置又は通信インタフェースである出力手段と、
を有する画像形成装置において、
該プログラムは、オペレーティングシステム、該オペレーティングシステムの上層で動作し該オペレーティングシステムのＡＰＩを用いたサービスプログラム、該サービスプログラムのＡＰＩを用いたベンダーアプリケーションプログラム、ＡＰＩ関数呼出命令トレース用ロギング関数及びエラー解析プログラムを含み、
該プログラムはさらに、該オペレーティングシステムのＡＰＩ、該サービスプログラムのＡＰＩ又は該ベンダーアプリケーションプログラムのＡＰＩを用いたユーザアプリケーションを含むことができ、
該データは、エラー発生要因となるＡＰＩ実行順とエラー内容情報とが対応して格納されたエラーテーブルを含み、
該エラー解析プログラムは該プロセッサに対し、該エラーテーブルを参照させて、該ロギング関数により得られたＡＰＩトレース結果にエラー発生要因となるＡＰＩ実行順が含まれているか否かを判定させ、肯定判定した場合にはそのＡＰＩ実行順とエラー内容情報とを該出力手段に供給させる、
ことを特徴とする画像形成装置。
【請求項２】
該ＡＰＩトレース結果には、ＡＰＩ関数の名称及び実引数が含まれることを特徴とする請求項１に記載の画像形成装置。
【請求項３】
該エラーテーブルは、該ＡＰＩ実行順におけるＡＰＩ関数の引数の値及び引数が任意であることを示すコードを含んでおり、
該エラー解析プログラムは該プロセッサに対しさらに、該肯定判定した場合に、該ＡＰＩ実行順中のＡＰＩ関数に引数の値が含まれていれば、該ＡＰＩトレース結果中の対応する引数が該値に等しいか否かを判定させ、肯定判定したときに該ＡＰＩ実行順と該エラー内容情報とを該出力手段へ供給させる、
ことを特徴とする請求項２に記載の画像形成装置。
【請求項４】
該プログラムはさらにジョブ管理プログラムを含み、
該ジョブ管理プログラムは該プロセッサに対し、該オペレーティングシステムがエラーを検出した場合に該エラー解析プログラムを実行させる、
ことを特徴とする請求項２又は３に記載の画像形成装置。
【請求項５】
該プログラムはさらに実行制御プログラム、ロギングステップインサーター及びコンパイラを含み、
該実行制御プログラムは該プロセッサに対し、該ロギングステップインサーターを実行させてその処理が終了した後に該コンパイラを実行させ、
該ロギングステップインサーターは該プロセッサに対し、ソースコード中のＡＰＩ関数呼出命令を検出させて該ＡＰＩ関数呼出命令の直前又は直後に、該ＡＰＩ関数呼出命令の情報を引数とする、該ロギング関数の呼出命令を該ソースコードに挿入させ、
該コンパイラは該プロセッサに対し、該ロギング関数呼出命令が挿入されたソースコードをコンパイルさせて該ユーザアプリケーションを生成させる、
ことを特徴とする請求項２乃至４のいずれか１つに記載の画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、原稿画像を読み取り、画像データを受信し又は記憶領域から画像データを読み出す画像入力手段と、この入力手段で得られた画像データを処理する画像処理手段と、処理された画像データに基づいて用紙に画像を形成し、画像データを送信し又は記憶領域に画像データを格納する画像出力手段とを備えた画像形成装置に係り、特に、ユーザ又はサードベンダが作成したユーザアプリケーションに対するデバッグ機能を備えた画像形成装置に関する。
【背景技術】
【０００２】
画像形成装置、特に複合機では、組み込まれたサービスプログラムのＡＰＩを用いて、ユーザ又はサードベンダが、特定用途において操作性のよい又は特殊機能を実現できるユーザアプリケーションを作成し、実行させることが可能となっている。
【０００３】
下記特許文献１には、ネットワークに画像形成装置及びホストコンピュータを接続し、画像形成装置内のユーザアプリケーションをホストコンピュータからデバッグする方法が開示されている。
【特許文献１】特開２００４−６２８２８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、汎用デバッガを用いているので、画像形成装置に特有の論理エラー発生原因を人が究明しなければならず、ユーザアプリケーションの開発効率が悪い。このため、便利なユーザアプリケーション機能が利用されない。
【０００５】
本発明の目的は、このような問題点に鑑み、論理エラー発生原因を自動的に究明してユーザアプリケーションの開発効率を向上させることができる画像形成装置を提供することにある。
【課題を解決するための手段】
【０００６】
本発明の第１態様では、
プロセッサと、
該プロセッサに結合されプログラム及びデータが格納された記憶手段と、
該プロセッサに結合され、操作パネルの表示装置又は通信インタフェースである出力手段と、
を有する画像形成装置において、
該プログラムは、オペレーティングシステム、該オペレーティングシステムの上層で動作し該オペレーティングシステムのＡＰＩを用いたサービスプログラム、該サービスプログラムのＡＰＩを用いたベンダーアプリケーションプログラム、ＡＰＩ関数呼出命令トレース用ロギング関数及びエラー解析プログラムを含み、
該プログラムはさらに、該オペレーティングシステムのＡＰＩ、該サービスプログラムのＡＰＩ又は該ベンダーアプリケーションプログラムのＡＰＩを用いたユーザアプリケーションを含むことができ、
該データは、エラー発生要因となるＡＰＩ実行順とエラー内容情報とが対応して格納されたエラーテーブルを含み、
該エラー解析プログラムは該プロセッサに対し、該エラーテーブルを参照させて、該ロギング関数により得られたＡＰＩトレース結果にエラー発生要因となるＡＰＩ実行順が含まれているか否かを判定させ、肯定判定した場合にはそのＡＰＩ実行順とエラー内容情報とを該出力手段に供給させる。
【０００７】
本発明による画像形成装置の第２態様では、第１態様において、該ＡＰＩトレース結果には、ＡＰＩ関数の名称及び実引数が含まれる。
【０００８】
本発明による画像形成装置の第３態様では、第２態様において、
該エラーテーブルは、該ＡＰＩ実行順におけるＡＰＩ関数の引数の値及び引数が任意であることを示すコードを含んでおり、
該エラー解析プログラムは該プロセッサに対しさらに、該肯定判定した場合に、該ＡＰＩ実行順中のＡＰＩ関数に引数の値が含まれていれば、該ＡＰＩトレース結果中の対応する引数が該値に等しいか否かを判定させ、肯定判定したときに該ＡＰＩ実行順と該エラー内容情報とを該出力手段へ供給させる。
【０００９】
本発明による画像形成装置の第４態様では、第２又は３態様において、
該プログラムはさらにジョブ管理プログラムを含み、
該ジョブ管理プログラムは該プロセッサに対し、該オペレーティングシステムがエラーを検出した場合に該エラー解析プログラムを実行させる。
【００１０】
本発明による画像形成装置の第５態様では、第２乃至４態様のいずれか１つにおいて、
該プログラムはさらに実行制御プログラム、ロギングステップインサーター及びコンパイラを含み、
該実行制御プログラムは該プロセッサに対し、該ロギングステップインサーターを実行させてその処理が終了した後に該コンパイラを実行させ、
該ロギングステップインサーターは該プロセッサに対し、ソースコード中のＡＰＩ関数呼出命令を検出させて該ＡＰＩ関数呼出命令の直前又は直後に、該ＡＰＩ関数呼出命令の情報を引数とする、該ロギング関数の呼出命令を該ソースコードに挿入させ、
該コンパイラは該プロセッサに対し、該ロギング関数呼出命令が挿入されたソースコードをコンパイルさせて該ユーザアプリケーションを生成させる。
【発明の効果】
【００１１】
上記第１態様の構成によれば、エラー解析プログラムがプロセッサに対し、エラー発生要因となるＡＰＩ実行順とエラー内容情報とが対応して格納されたエラーテーブルを参照させて、ロギング関数により得られたＡＰＩトレース結果にエラー発生要因となるＡＰＩ実行順が含まれているか否かを判定させ、肯定判定した場合にはそのＡＰＩ実行順とエラー内容情報とを出力手段に供給させるので、論理エラー発生原因を自動的に究明してユーザアプリケーションの開発効率を向上させることができるという効果を奏し、ユーザアプリケーション機能の利用拡大に寄与するところが大きい。
【００１２】
上記第２態様の構成によれば、該ＡＰＩトレース結果にＡＰＩ関数の名称及び実引数が含まれるので、論理エラー発生原因をより詳細に究明することができるという効果を奏する。
【００１３】
上記第３態様の構成によれば、該エラーテーブルが、該ＡＰＩ実行順におけるＡＰＩ関数の引数の値及び引数が任意であることを示すコードを含んでおり、該エラー解析プログラムが該プロセッサに対し、該肯定判定した場合に、該ＡＰＩ実行順中のＡＰＩ関数に引数の値が含まれていれば、該ＡＰＩトレース結果中の対応する引数が該値に等しいか否かを判定させ、肯定判定したときに該ＡＰＩ実行順と該エラー内容情報とを該出力手段へ供給させるので、該エラー解析プログラムの構成を簡単化できるという効果を奏する。
【００１４】
上記第４態様の構成によれば、ジョブ管理プログラムが該プロセッサに対し、該オペレーティングシステムがエラーを検出した場合に該エラー解析プログラムを実行させるので、エラーが発生したときのみ自動的にエラー発生に対処できるという効果を奏する。
【００１５】
上記第５態様の構成によれば、実行制御プログラムが該プロセッサに対し、ロギングステップインサーターを実行させてその処理が終了した後にコンパイラを実行させ、該ロギングステップインサーターが該プロセッサに対し、ソースコード中のＡＰＩ関数呼出命令を検出させて該ＡＰＩ関数呼出命令の直前又は直後に、該ＡＰＩ関数呼出命令の情報を引数とする、該ロギング関数の呼出命令を該ソースコードに挿入させ、該コンパイラが該プロセッサに対し、該ロギング関数呼出命令が挿入されたソースコードをコンパイルさせて該ユーザアプリケーションを生成させるので、該ユーザアプリケーションを実行させることによりエラー原因究明に必要なＡＰＩトレース結果を容易に得ることができるという効果を奏する。
【００１６】
本発明の他の目的、構成及び効果は以下の説明から明らかになる。
【実施例１】
【００１７】
図９は、本発明の実施例１に係る画像形成装置１０のハードウェア構成を示す概略ブロック図である。
【００１８】
この画像形成装置１０では、ＭＰＵ１１にインタフェース１２を介してＥＥＰＲＯＭ１３Ｎ１、ＥＥＰＲＯＭ１３Ｎ２、ＤＲＡＭ１３Ｄ、ＨＤＤ１４、操作パネル１５、スキャナ１６Ｓ、プリンタ１６Ｐ、ＮＩＣ１７、モデム１８及びコネクタ１９が結合されている。図９では、簡単化のため、複数のインタフェースを１つのブロックで示している。
【００１９】
ＥＥＰＲＯＭ１３Ｎ１及びＥＥＰＲＯＭ１３Ｎ２は、例えばフラッシュメモリである。
【００２０】
ＥＥＰＲＯＭ１３Ｎ１には、ＢＩＯＳ（Basic Inpit Output System）及びＢＩＯＳ設定データが格納されている。
【００２１】
ＥＥＰＲＯＭ１３Ｎ２には、ＯＳ（オペレーティングシステム）、ＯＳの上層のサービスプログラム（ＳＰ）及びアプリケーション（ＡＰＬ）並びにＯＳの下層のデバイスドライバ（ＤＤ）が格納されている。
【００２２】
ＤＲＡＭ１３Ｄは、ワークエリア用並びにユーザアプリケーションの開発及び実行用である。ＨＤＤ１４は、データ格納用である。スキャナ１６Ｓは、コピー及びファックス送信での画像入力用である。プリンタ１６Ｐは、プリントエンジン、定着器並びに用紙の給紙部、搬送部及び排紙部を備えており、供給されるビットマップデータに基づいてプリントエンジンの感光ドラムに静電潜像を形成し、これをトナーで現像し、用紙に転写し定着させた後に排紙する。ＮＩＣ１７は、ケーブル又は無線の通信媒体を介してホストコンピュータ２１に結合されてプリントジョブに用いられる。モデム１８は、ファックス送受信用である。
【００２３】
図７は、上記画像形成装置１０のソフトウェア階層構造を示す概略ブロック図である。
【００２４】
ＯＳ３０の下層には、各種ハードウェアのそれぞれに対応したデバイスドライバ群３１が備えられている。ＯＳ３０の上層には、ＯＳ３０内の各種機能を利用するためのＡＰＩ群３２を介して、基本サービスプログラム３３が備えられている。基本サービスプログラム３３は、操作パネル制御モジュール３３０と、画像入力モジュール群と、このモジュールで得られた画像データを処理するデータ処理モジュール群と、処理された画像データを出力する画像出力モジュール群とを備えている。
【００２５】
操作パネル制御モジュール３３０は、操作パネル１５上に操作釦を表示させ、その押下を検出させ、設定処理を行うためのものである。画像入力モジュール群には、スキャンモジュール３３１、ＦＡＸ受信モジュール３３２及び電子メール受信モジュール３３３が含まれ、画像出力モジュール群には、プリントモジュール３３４、ＦＡＸ送信モジュール３３５及び電子メール送信モジュール３３６が含まれ、データ処理モジュール群には画像データのフォーマットや階調を変換し又は画像を拡縮するデータ変換モジュール３３７並びに不図示の集約処理モジュール及び頁付モジュール等が含まれる。基本サービスプログラム３３にはさらに、ＦＡＸ送信及び電子メール送信での宛先指定に用いられるアドレス帳モジュール３３８と、ユーザアプリサービス群３３９とが含まれる。
【００２６】
ユーザアプリサービス群３３９は、図８に示す如く、後述のロギングステップインサーター４０、コンパイラ４１、実行制御プログラム４２、エラー解析プログラム４３及びロギングプログラム４４を含んでいる。
【００２７】
基本サービスプログラム３３の各モジュールは、ＡＰＩ群３２を介してＯＳ３０の機能を利用している。
【００２８】
基本サービスプログラム３３の上層には、外部ＡＰＩ群３４を介してベンダーアプリケーション３５が備えられ、これには、コピーモジュール３５０、ＦＡＸモジュール３５１、電子メールモジュール３５２、ジョブ管理モジュール３５３及び操作パネルモジュール３５４が含まれている。モジュール３５０〜３５４は、全体として１つの統合化アプリケーションであっても、それぞれがアプリケーションであってもよい。
【００２９】
ベンダーアプリケーション３５は、外部ＡＰＩ群３４を介し基本サービスプログラム３３のモジュールを用いて作成されたプログラムである。例えば、コピーモジュール３５０は、スキャンモジュール３３１とプリントモジュール３３４とを組み合わせて構成されている。また、ＦＡＸモジュール３５１は、ＦＡＸ受信モジュール３３２とＦＡＸ送信モジュール３３５とアドレス帳モジュール３３８とを組み合わせて構成されている。
【００３０】
ベンダーアプリケーション３５の上層には、ベンダーアプリケーション３５の各種機能を利用するための外部ＡＰＩ群３６が備えられている。
【００３１】
以上のプログラムは、図９のＥＥＰＲＯＭ１３Ｎ２に格納されている。
【００３２】
外部ＡＰＩ群３６の上層には、ユーザアプリケーション２０１が存在する。ユーザアプリケーション２０１は、ＡＰＩ群３２、３４及び３６のいずれも用いることができる。ベンダーアプリケーション３５は、ユーザアプリケーション２０１から見れば応用サービスプログラムである。
【００３３】
図９において、ソースコードファイル２００が格納されたコンパクトフラッシュ（登録商標、以下ＣＦと記載）メモリカード２０をコネクタ１９に接続させることにより、後述の処理が行われて、ＣＦメモリカード２０にユーザアプリケーション２０１、ログファイル２０２及びエラー情報ファイル２０３が格納される。
【００３４】
図１は、ユーザアプリケーション２０１に関する処理の機能ブロック図である。
【００３５】
実行制御プログラム４２は、ＣＦメモリカード２０がコネクタ１９に接続されたことを検出すると、まず、ロギングステップインサーター４０を起動させる。ロギングステップインサーター４０は、ソースコードファイル２００から命令文を一行ずつ読み出し、後述のようにロギングステップを挿入してソースコードファイル２００Ａを作成しＣＦメモリカード２０に格納させる。
【００３６】
図２は、ロギングステップインサーター４０の処理を示す詳細フローチャートである。以下、括弧内は図中のステップ識別符号である。
【００３７】
（Ｓ０）ＣＦメモリカード２０内のディレクトリーを参照して、ファイル識別子に基づきソースコードファイル２００を探索し、その名称リストを操作パネル１５に表示させる。
【００３８】
（Ｓ１）ユーザが操作パネル１５を操作して１つのソースコードファイル２００を選択すると、ソースコードファイル２００内の全文についてステップＳ２とステップＳ８との間の処理が繰り返し実行される。
【００３９】
（Ｓ３）１文を読み込む。外部ＡＰＩ群３４及び３６を参照し、この文がＡＰＩ関数呼出命令文であるか否かを判定する。肯定判定した場合にはステップＳ５へ進み、そうでなければステップＳ７へ進む。
【００４０】
（Ｓ５）このＡＰＩの名称及び引数を、ロギング関数呼出命令の引数とする。
【００４１】
（Ｓ６）このロギング関数の呼出命令をＣＦメモリカード２０内のソースコードファイル２００Ａに書き込む。
【００４２】
（Ｓ７）ステップＳ３で読み込んだ１文を、ＣＦメモリカード２０内のソースコードファイル２００Ａに書き込む。このような処理により、図３（Ａ）に示すようなソースコードファイル２００に対し、その中のＡＰＩ関数呼出命令、例えばｆｎｃＡＰＩ（ｘ、ｙ）の前に、図３（Ｂ）に示す如く、この関数の関数名及び引数を引数とするロギング関数呼出命令ｆｎｃＬｏｇＡＰＩ（ｆｎｃＡＰＩ、ｘ、ｙ）が挿入される。
【００４３】
図１に戻って、実行制御プログラム４２は、ロギングステップインサーター４０による処理が終了すると、次にコンパイラ４１を起動させて、ＣＦメモリカード２０内のソースコードファイル２００Ａの内容をＤＲＡＭ１３Ｄ上にロードさせてこれをコンパイルさせ、実行可能ファイルであるユーザアプリケーション２０１をＤＲＡＭ１３Ｄ内に生成させ、このユーザアプリケーション２０１をＣＦメモリカード２０に格納させる。
【００４４】
実行制御プログラム４２は次に、ＤＲＡＭ１３Ｄ内のユーザアプリケーション２０１を起動させる。ユーザアプリケーション２０１にはロギングステップが挿入されているので、このステップでロギングプログラム４４が呼び出されて、これから実行しようとするＡＰＩ関数のログが、ＤＲＡＭ１３Ｄ内のバッファ領域を介してＣＦメモリ２０内のログファイル２０２に格納される。ログファイル２０２は、例えばＨＴＭＬファイル又はＸＭＬファイルである。
【００４５】
例えば図４（Ａ）に示すようなユーザアプリケーション２０１の場合、図４（Ｂ）に示すようなログファイル２０２が作成される。図４では、理解を容易にするため高級言語のソースコードを簡単化して記載し、文字を使用して引数を分かり易く表記している。
【００４６】
図４（Ａ）のユーザアプリケーション２０１は例えば、原稿をスキャンし、その控えを自分宛に電子メールで送信し、顧客にＧ３普通モードでファクシミリ送信する処理をワンタッチで行うものであるとする。図４（Ａ）に示す、外部ＡＰＩ群３４に含まれる３つのＡＰＩの呼出命令は、ファクシミリ送信に関するものであり、以下の通りである。
【００４７】
（１）fncScan( 256level, 400dpi, 400dpi, file1)
モノクロ２５６階調及び解像度400dpi× 400dpiで原稿をスキャンしてそのデータをファイルfile1に格納させる。
【００４８】
（２）fncConv( file1, binary, 1/2, 1/2)
ファイルfile1の画像を白黒２値画像に変換し、かつ、ｘ方向縮小率１／２及びｙ方向縮小率１／２で縮小変換させ、これをファイルfile1とする。
【００４９】
（３）fncSendFAX( file1, normal, address(3))
ファイルfile1の画像を、普通モードで、アドレス帳内のシリアルナンバー３に登録された宛先へファクシミリ送信する。
【００５０】
上記（２）の引数に誤りがあって、上記（３）のＡＰＩ関数呼出命令がＧ３ファクシミリ規格に反するものとなれば、エラーが生ずる。ユーザアプリケーション２０１の実行中において、ハードウェアに対するアクセスはＯＳ３０内のＡＰＩ関数の呼出命令を介して行われ、その際にＯＳ３０が例外、例えばセグメントフォールトを検出すると、処理がそこで停止する。ジョブ管理モジュール３５３は、定期的なタイマー割込により、ＯＳ３０によるエラー検出を監視しており、このエラー検出に応答してエラー解析プログラム４３を起動させる。
【００５１】
エラー解析プログラム４３は、エラーテーブル３７とログファイル２０２との内容に基づいて、エラー解析を行い、その結果をエラー情報ファイル２０３として出力する。
【００５２】
エラーテーブル３７は、図６（Ａ）に示すようなテーブル３７０と、図６（Ｂ）に示すようなテーブル３７１とを含んでいる。
【００５３】
テーブル３７０は、シリアルナンバーＮｏと、禁止ＡＰＩ順と、エラーコードとのフィールドを含んでいる。テーブル３７１は、エラーコードと、これに対応したエラー内容とのフィールドを含んでいる。
【００５４】
テーブル３７０中の関数名ｆ１、ｆ２及びｆ３はそれぞれ、図４（Ａ）中の関数名ｆｎｃＳｃａｎ、ｆｎｃＣｏｎｖ及びｆｎｃＳｅｎｄＦＡＸを簡略記載したものである。関数中の符号"−"は、任意の値であることを示している。例えばテーブル３７０のＮｏ＝１の行の禁止ＡＰＩ順は、関数ｆ１と関数ｆ３との間に関数ｆ２が無く、かつ、関数ｆ１について主走査方向及び副走査方向の解像度がいずれも４００ｄｐｉである場合を示す。この場合、Ｇ３ファクシミリ規格から外れるので、関数ｆ３の引数によらずエラーが生ずる原因となる。
【００５５】
図５は、エラー解析プログラム４３による処理を示すフローチャートである。
【００５６】
テーブル３７０内の全てのＡＰＩ禁止順について、ステップＳ１０とステップＳ１４との間の処理を繰り返し実行する。
【００５７】
（Ｓ１１）Ｎｏ＝ｉの行の禁止ＡＰＩ順及びエラーコードを読み出す。
【００５８】
（Ｓ１２）ログファイル２０２中にこの禁止ＡＰＩ順が存在するか否かを調べ、存在すればステップＳ１３へ進み、そうでなければステップＳ１４を介しステップＳ１１へ進む。
【００５９】
（Ｓ１３）ステップＳ１１で読み込んだエラーコードをキーとして、テーブル３７１を参照し、そのエラー内容を読み出す。このエラー内容と、ステップＳ１１で読み込んだ禁止ＡＰＩ順の内容とを、エラー情報ファイル２０３に書き込むとともに、操作パネル１５に表示させ又はＮＩＣ１７を介しホストコンピュータ２１にエラー情報ファイル２０３、例えばＨＴＭＬファイルを供給して、ブラウザでエラー情報を確認できるようにする。
【００６０】
本実施例１によれば、エラー解析プログラム４３がＭＰＵ１１に対し、エラー発生要因となるＡＰＩ実行順とエラー内容情報とが対応して格納されたエラーテーブル３７を参照させて、ロギング関数４４により得られたログファイル（ＡＰＩトレース結果）２０２にエラー発生要因となるＡＰＩ実行順が含まれているか否かを判定させ、肯定判定した場合にはそのＡＰＩ実行順とエラー内容情報とを操作パネル１５に供給させ又はＮＩＣ１７を介しホストコンピュータ２１に供給させるので、論理エラー発生原因を自動的に究明してユーザアプリケーションの開発効率を向上させることができるという効果を奏する。この自動的究明により、上述の公報のようにホストコンピュータ２１を画像形成装置１０に接続して両者を連携させることによりデバッグするという複雑な構成を用いる必要がない。
【００６１】
また、ＡＰＩトレース結果２０２にＡＰＩ関数の名称及び実引数が含まれるので、論理エラー発生原因をより詳細に究明することができるという効果を奏する。
【００６２】
さらに、エラーテーブル３７が、該ＡＰＩ実行順におけるＡＰＩ関数の引数の値及び引数が任意であることを示すコードを含んでおり、エラー解析プログラム４３がＭＰＵ１１に対し、該肯定判定した場合に、該ＡＰＩ実行順中のＡＰＩ関数に引数の値が含まれていれば、ＡＰＩトレース結果２０２中の対応する引数が該値に等しいか否かを判定させ、肯定判定したときに該ＡＰＩ実行順と該エラー内容情報とを出力させるので、エラー解析プログラム４３の構成を簡単化できるという効果を奏する。換言すれば、エラー発生原因となるＡＰＩ実行順のそれぞれに対応したエラー判定プログラムを作成すると、エラー解析プログラム４３の構成が複雑になるとともに、エラー発生原因となるＡＰＩ実行順を新たに追加する毎にエラー解析プログラム４３を改訂しなければならない。
【００６３】
また、ジョブ管理プログラム３５３がＭＰＵ１１に対し、オペレーティングシステム３０が例外を検出した場合にエラー解析プログラム３５３を実行させるので、エラーが発生したときのみ自動的にエラー発生に対処できるという効果を奏する。
【００６４】
さらにまた、実行制御プログラム４２がＭＰＵ１１に対し、ロギングステップインサーター４０を実行させてその処理が終了した後にコンパイラ４１を実行させ、ロギングステップインサーター４０がＭＰＵ１１に対し、ソースコード２００中のＡＰＩ関数呼出命令を検出させて該ＡＰＩ関数呼出命令の直前に、該ＡＰＩ関数呼出命令の情報を引数とする、ロギング関数４４の呼出命令を該ソースコードに挿入させてソースコード２００Ａを生成し、コンパイラ４１がＭＰＵ１１に対し、ソースコード２００Ａをコンパイルさせてユーザアプリケーション２０１を生成させるので、ユーザアプリケーション２０１を実行させることによりエラー原因究明に必要なＡＰＩトレース結果２０２を容易に得ることができるという効果を奏する。
【００６５】
また、ＡＰＩ関数呼出命令の直前にロギング関数呼出命令を挿入するので、呼び出されたＡＰＩ関数実行中に例外が生じて動作が停止しても、このＡＰＩ関数呼出命令のログを取得でき、より確実にエラー発生原因を知得することができるという効果を奏する。
【００６６】
なお、本発明には外にも種々の変形例が含まれる。
【００６７】
例えば、ＡＰＩ関数呼出命令の直後にロギング関数呼出命令を挿入する構成であってもよい。特にこのＡＰＩ関数が新たなスレッドとして実行される場合、ロギング関数呼出命令がこのスレッドと並列に実行されるので、ＡＰＩ関数実行中に例外が生じて動作が停止しても、このＡＰＩ関数呼出命令のログを取得できる。
【図面の簡単な説明】
【００６８】
【図１】本発明の実施例１の、ユーザアプリケーションに関する処理の機能ブロック図である。
【図２】図１中のロギングステップインサーターの処理を示す詳細フローチャートである。
【図３】図２の処理の説明図であって、（Ａ）及び（Ｂ）はそれぞれロギングステップ挿入前及び挿入後のソースコード説明図である。
【図４】（Ａ）はＡＰＩ関数呼出命令を含んだユーザアプリケーションの説明図、（Ｂ）はこのユーザアプリケーションを実行して得られるログファイルの説明図である。
【図５】図１中のエラー解析プログラムによる処理を示すフローチャートである。
【図６】（Ａ）及び（Ｂ）は、エラーテーブルを構成するリレーショナルテーブルの説明図である。
【図７】本発明の実施例１に係る画像形成装置のソフトウェア階層構造を示す概略ブロック図である。
【図８】図７中のユーザアプリサービス群の構成を示すブロック図である。
【図９】本発明の実施例１に係る画像形成装置のハードウェア構成を示す概略ブロック図である。
【符号の説明】
【００６９】
１０  画像形成装置
１１  ＭＰＵ
１２  インタフェース
１３Ｎ１、１３Ｎ２  ＥＥＰＲＯＭ
１３Ｄ  ＤＲＡＭ
１４  ハードディスク
１５  操作パネル
１６Ｓ  スキャナ
１６Ｐ  プリンタ
１７  ＮＩＣ
１８  モデム
１９  コネクタ
２０  ＣＦメモリカード
２００  ソースコードファイル
２０１  ユーザアプリケーション
２０２  ログファイル
２０３  エラー情報ファイル
２１  ホストコンピュータ
３０  ＯＳ
３１  デバイスドライバ群
３２  ＡＰＩ群
３３  基本サービスプログラム
３３０  操作パネル制御モジュール
３３１  スキャンモジュール
３３２  ＦＡＸ受信モジュール
３３３  電子メール受信モジュール
３３４  プリントモジュール
３３５  ＦＡＸ送信モジュール
３３６  電子メール送信モジュール
３３７  データ変換モジュール
３３８  アドレス帳モジュール
３３９  ユーザアプリサービス群
３４、３６  外部ＡＰＩ群
３５  ベンダーアプリケーション
３５０  コピーモジュール
３５１  ＦＡＸモジュール
３５２  電子メールモジュール
３５３  ジョブ管理モジュール
３５４  操作パネルモジュール
３７  エラーテーブル
３７０、３７１  テーブル
４０  ロギングステップインサーター
４１  コンパイラ
４２  実行制御プログラム
４３  エラー解析プログラム
４４  ロギングプログラム
【図１】
2008027172.tif 000003
【図２】
2008027172.tif 000004
【図３】
2008027172.tif 000005
【図４】
2008027172.tif 000006
【図５】
2008027172.tif 000007
【図６】
2008027172.tif 000008
【図７】
2008027172.tif 000009
【図８】
2008027172.tif 000010
【図９】
2008027172.tif 000011