(57)【要約】【課題】ハイパーリンクをサポートするファイルを生成するための時間を短縮することである。【解決手段】情報処理装置は、メモリの使用状況等を示すファイルを読み込み、最小限のＨＴＭＬファイルからなるインデックスファイルを生成する。そして、インデックスファイルを表示し、インデックスファイルの中の特定のインデックスファイルが選択されたなら、そのインデックスファイルにより指定されるリンク先のＨＴＭＬファイルが存在するか否かを判別する。リンク先のＨＴＭＬファイルが存在しない場合には、リンク先のＨＴＭＬファイルを生成する。【選択図】　　　図１
2004133640.tif 000002
【特許請求の範囲】
【請求項１】
複数のファイルからハイパーリンクをサポートする複数のファイルを生成するプログラムにおいて、
リンク先のファイルを指す複数のインデックスファイルを生成するステップと、
前記複数のインデックスファイルの中の特定のインデックスファイルが選択されたとき、選択されたインデックスファイルにより指定されるリンク先のファイルが存在するか否かを判別するステップと、
前記リンク先のファイルが存在しない場合に、リンク先のハイパーリンクをサポートするファイルを生成するステップとからなるリンク先のファイルを動的に生成するプログラム。
【請求項２】
複数のファイルからハイパーリンクをサポートするファイルを生成する情報処理装置において、
リンク先のファイルを指す複数のインデックスファイルを生成するインデックスファイル生成手段と、
前記インデックスファイル生成手段により生成される複数のインデックスファイルの中の特定のインデックスファイルが選択されたとき、選択されたインデックスファイルにより指定されるリンク先のファイルが存在するか否かを判別する判別手段と、
前記判別手段により前記リンク先のファイルが存在しないと判別された場合に、リンク先のハイパーリンクをサポートするファイルを生成するハイパーリンクファイル生成手段とを備えるリンク先のファイルを動的に生成する情報処理装置。
【請求項３】
複数のファイルからハイパーリンクをサポートするファイルを生成するプログラムを記録した記録媒体において、
リンク先のファイルを指す複数のインデックスファイルを生成するステップと、
前記複数のインデックスファイルの中の特定のインデックスファイルが選択されたとき、選択されたインデックスファイルにより指定されるリンク先のファイルが存在するか否かを判別するステップと、
前記リンク先のファイルが存在しない場合に、リンク先のハイパーリンクをサポートするファイルを生成するステップとを備えるリンク先のファイルを動的に生成するプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項４】
前記ハイパーリンクをサポートするファイルはブラウザにより表示可能なＨＴＭＬファイルであり、選択されたインデックスファイルにより指定されるリンク先のファイルが存在しない場合に、リンク先のＨＴＭＬファイルを生成する請求項１記載のリンク先のファイルを動的に生成するプログラム。
【請求項５】
前記複数のファイルは、解析対象のプログラムのメモリの使用状況を示すデータを含み、前記複数のファイルからリンク先のＨＴＭＬファイルを指すインデックスファイルを生成し、選択されたインデックスファイルにより指定されるリンク先のファイルが存在しない場合に、リンク先のＨＴＭＬファイルを生成する請求項１記載のリンク先のファイルを動的に生成するプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のファイルからハイパーリンクをサポートするファイルを生成するプログラム、そのプログラムを記録した記録媒体及び情報処理装置に関する。
【０００２】
【従来の技術】
プログラムの開発時やデバッグ時には、ユーザが作成したプログラムのメモリの使用状況等を解析し、解析結果のデータを端末装置に表示させることが必要となる。その際、ユーザが利用しやすいようにデータをブラウザで表示させることのできるようにＨＴＭＬ（ｈｙｐｅｒｔｅｘｔ　ｍａｒｋｕｐ　ｌａｎｇｕａｇｅ）等のハイパーリンクをサポートするファイルを生成している。
【０００３】
従来、複数のファイルからＨＴＭＬファイルを作成する方法として、以下の２つの方法が行われている。
第１の方法は、クライアント側の端末装置において複数のファイルからすべてのＨＴＭＬファイルを生成して記憶装置に記憶しておき、クライアントから表示要求があったとき、記憶してあるＨＴＭＬファイルを表示する。
【０００４】
第２の方法は、サーバとクライアントからなるシステムにおいて、ＨＴＴＰ（ｈｙｐｅｒｔｅｘｔ　ｔｒａｎｓｆｅｒ　ｐｒｏｔｏｃｏｌ）サーバにＨＴＭＬファイルを記憶しておき、クライアントからの要求に応じてサーバがＨＴＭＬファイルをクライアントに送信する。
【０００５】
また、特開平１０−６９４２４号公報には、ウェブページ内の動的データを効率的に処理する装置について記載されている。
【０００６】
【特許文献１】
特開平１０−６９４２４号公報（段落００２６〜００２９）
【０００７】
【発明が解決しようとする課題】
しかしながら、第１の方法は、ＨＴＭＬファイルの生成に時間がかかるばかりでなく、生成したＨＴＭＬファイルをすべて記憶しておくためには大きな記憶容量が必要となるという問題点があった。
【０００８】
また、第２の方法は、ＨＴＭＬファイルを生成し、生成したＨＴＭＬファイルを記憶しておく専用のサーバを設ける必要があり、システムのリソースがその分消費される。さらに、サーバにＨＴＭＬファイルを記憶しておく場合には、サーバとクライアント間でデータを送信しなければならないので通信回線のトラヒックが増大するという問題点がある。
【０００９】
特許文献１記載の発明は、ウェブページが動的データを含むかどうかをＳＱＬ照会があるかどうかにより判定し、ＳＱＬ照会がある場合には、言語プロセッサが動的データを組み込んだＨＴＭＬデータを生成するものであり、本発明の特徴を示唆するものではない。
【００１０】
本発明の課題は、ハイパーリンクをサポートするファイルを生成するための時間を短縮することである。
【００１１】
【課題を解決するための手段】
本発明は、複数のファイルからハイパーリンクをサポートするファイルを生成するプログラムにおいて、リンク先のファイルを指す複数のインデックスファイルを生成するステップと、前記複数のインデックスファイルの中の特定のインデックスファイルが選択されたとき、選択されたインデックスファイルにより指定されるリンク先のファイルが存在するか否かを判別するステップと、前記リンク先のファイルが存在しない場合に、リンク先のハイパーリンクをサポートするファイルを生成するステップとからなる。
【００１２】
この発明は、例えば、第１段階においては、インデックスファイルのみを生成するようにしたので、ファイルを生成するために要する時間を大幅に短縮できる。また、特定のインデックスファイルが選択された第２段階において、選択されたインデックスファイルにより指定されるリンク先のファイルが存在するか否かを判別し、リンク先のファイルが存在しない場合に、リンク先のハイパーリンクをサポートするファイルを生成するようにしたので、ユーザが違和感を感じない程度の時間でハイパーリンクをサポートするファイルを生成することができる。この場合、選択されたインデックスファイルにより指定されるリンク先のファイルのみを生成すればよいので短時間でファイルを生成することができる。さらに、予めすべてのハイパーリンクをサポートするファイルを記憶しておく必要がないので、第１段階でのファイルの記憶領域を少なくできる。
【００１３】
さらに、ハイパーリンクをサポートするファイルを記憶しておく専用のサーバを設ける必要がないので、システムのリソースをより有効に活用できる。
本発明は、リンク先のファイルを動的に生成する情報処理装置及びプログラムを記録したコンピュータ読み取り可能な記録媒体にも同様に適用できる。
【００１４】
上記の発明において、前記ハイパーリンクをサポートするファイルはブラウザにより表示可能なＨＴＭＬファイルであり、選択されたインデックスファイルにより指定されるリンク先のファイルが存在しない場合に、リンク先のＨＴＭＬファイルを生成する。
【００１５】
上記のように構成することで、予めすべてのＨＴＭＬファイルを作成しておく必要がなくなるので、ＨＴＭＬファイルの生成に要する時間を短縮できる。
上記の発明において、前記複数のファイルは、解析対象のプログラムのメモリの使用状況を示すデータを含み、前記複数のファイルからリンク先のＨＴＭＬファイルを指すインデックスファイルを生成し、選択されたインデックスファイルにより指定されるリンク先のファイルが存在しない場合に、リンク先のＨＴＭＬファイルを生成する。
【００１６】
上記のように構成することで、第１段階では、解析対象のプログラムのメモリの使用状況を示すデータのインデックスファイルのみを生成すればよいので、処理時間を大幅に短縮できる。さらに、ユーザにより選択されたインデックスファイルにより指定されるＨＴＭＬファイルだけを生成すればよいので、ＨＴＭＬファイルの生成時間も短くてすむ。
【００１７】
他の発明は、複数のファイルからハイパーリンクをサポートするファイルを生成する情報処理装置において、リンク先のファイルを指す複数のインデックスファイルを生成するインデックスファイル生成手段と、前記インデックスファイル生成手段により生成される複数のインデックスファイルの中の特定のインデックスファイルが選択されたとき、該インデックスファイルのリンク先のファイルが存在するか否かを判別する判別手段と、前記判別手段により前記リンク先のファイルが存在しないと判別されたとき、前記複数のファイル相互間のリンクを解析する解析手段と、前記解析手段の解析結果に基づいてハイパーリンクをサポートするリンク先のファイルを生成するハイパーリンクファイル生成手段とを備える。
【００１８】
この発明によれば、例えば、第１段階ではインデックスファイルのみを生成し、ファイル相互間のリンクを詳細に解析する必要がない。そして、インデックスファイルが選択され、そのインデックスファイルにより指定されるリンク先のファイルが存在しない場合に、ファイル相互間のリンクを解析してハイパーリンクをサポートするリンク先のファイルを動的に生成する。これにより、第１段階におけるリンクの解析及びファイルの生成に要する時間を大幅に短縮できる。
【００１９】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。図１は、実施の形態の情報処理装置１１の機能の説明図である。このシステムは、ユーザの作成したＪａｖａ（Ｒ）　プログラムを実行、解析してメモリの使用状況等を示すデータを生成する装置と、入力されるメモリの使用状況等を示すデータからＨＴＭＬ等のハイパーリンクをサポートするファイルを生成して表示する情報処理装置１１（パーソナルコンピュータなど）とから構成されている。
【００２０】
Ｊａｖａ（Ｒ）　ＶＭ（ｖｉｒｔｕａｌ　ｍａｃｈｉｎｅ）によりユーザが作成したプログラムが実行され、そのプログラムのメモリ使用状況等がメモリプロファイラ１２により分析され、分析結果のデータが生成される。このとき生成されるデータは、ｄｕｍｐ．ｈｌｍ，　ｓｅｒ．ｈｌｍ．　ｔｒａｃｅ．ｈｌｍ，　ｌｉｖ．ｈｌｍ，　ｍｅｔｈｏｄ．ｈｌｍ等のファイルである。
【００２１】
ｄｕｍｐ．ｈｌｍは、図２に示すようにオブジェクトＩＤとクラス名とメンバーのオブジェクトＩＤ等から構成されている。
ｓｅｒ，ｈｌｍは、図３に示すようにオブジェクトＩＤとサイズとトレース番号とから構成されている。
【００２２】
ｔｒａｃｅ．ｈｌｍは、図４に示すように、１つのトレースに対してトレース番号とメソッド名と行番号を１組とする複数のデータで構成されている。
ｌｉｖ．ｈｌｍには、図示していないが、メモリ上に割り当てられたファイルの個数と、残存しているファイルの個数とが格納されている。
【００２３】
情報処理装置１１は、図５のフローチャートのステップＳ１１に示すように、第１段階として、ユーザプログラムを実行する装置からメモリ使用状況等を示すファイルを読み込み、最小限のＨＴＭＬファイルからなるインデックスファイル１３を作成する。インデックスファイル１３には、詳細なデータが記述されるＨＴＭＬファイルへのリンクのみが記述される。この段階ではリンク先のＨＴＭＬファイルは作成されない。
【００２４】
図６は、インデックスファイル作成処理の詳細なフローチャートである。
最初に、ｄｕｍｐ．ｈｌｍにデータがあるか否かを判別する（図６，Ｓ２１）。ｄｕｍｐ．ｈｌｍにデータがある場合には（Ｓ２１，ＹＥＳ）、ｄｕｍｐ．ｈｌｍの１レコード分のデータを読み込む（Ｓ２２）。そして、クラス一覧のＨＴＭＬファイルへ読み込んだオブジェクトのエントリを追加する（ステップ２３）。
【００２５】
上記の処理により、図７に示すファーストレベルのインデックスファイルとセカンドレベルのインデックスファイルが作成される。
例えば、図２のｄｕｍｐ．ｈｌｍの１レコード分のデータとしてオブジェクトＩＤ０ｘ４３８ｆ６ｃａ８（１６進数）と、クラス名”ｊａｖａ．ｌａｎｇ．Ｓｔｒｉｎｇ”が読み込まれ、図示しないｌｉｖ．ｈｌｍから同じクラス名の割当て済みのファイル数”１６１３０”と、その割当て済みのファイルの中で残っているファイル数”４８９８”が読み込まれ、図７に示すファーストレベルのインデックスファイル（ＨＴＭＬファイル）の１番目のレコードが作成される。また、このオブジェクトは”ｊａｖａ．ｌａｎｇ．Ｓｔｒｉｎｇ”のオブジェクトであるので、セカンドレベルのインデックスファイルである”ｊａｖａ．ｌａｎｇ．Ｓｔｒｉｎｇ”のＨＴＭＬファイル”１３９．ｈｔｍｌ”に追加される。なお、”ｊａｖａ．ｌａｎｇ．Ｓｔｒｉｎｇ”のＨＴＭＬファイル名の１３９．ｈｔｍｌは予め決められている。
【００２６】
図７のＨＴＭＬファイルの１番目のレコードの最初の”１６１３０”が割当て済みのファイル数を示し、次の”＜ａ　ｈｒｅｆ＝１３９．ｈｔｍｌ＞”が、リンク先のＨＴＭＬファイル名を示し、”４８９８”が残っているファイル数を示し、次の”ｊａｖａ．ｌａｎｇ．Ｓｔｒｉｎｇ”がクラス名を示す。図７において、＜ｔｒ＞はテーブルの行を定義するタグであり、＜ｔｈ＞は見出しセルを指定するタグであり、＜ａ　ｈｒｅｆ＝”ＵＲＬ”＞は、ハイパーリンクを指定するタグである。
【００２７】
図６に戻り、次のステップＳ２４において、ｄｕｍｐ．ｈｌｍから読み込んだオブジェクトＩＤをキーにしてｓｅｒ．ｈｌｍを検索し、同じオブジェクトＩＤに対応づけて格納されているサイズとトレース番号を取得する。さらに、そのトレース番号でｔｒａｃｅ．ｈｌｍを検索し、トレース情報であるスタックトレースへのリンクを作成する。
【００２８】
例えば、図２のｄｕｍｐ．ｈｌｍの１レコード分のデータとしてオブジェクトＩＤ０ｘ４３８ｆ６ｃｃ０（１６進数）と、クラス名”ｊａｖａ．ｌａｎｇ．Ｓｔｒｉｎｇ”を読み込むと、図３のｓｅｒ．ｈｌｍから同じオブジェクトＩＤに対応づけて格納されているサイズ２４と、トレース番号１１（１０進数）を取得しスタックトレースへのリンクを作成する。
【００２９】
これらの処理により、図８に示すようにセカンドレベルのインデックスファイルである”ｊａｖａ．ｌａｎｇ．Ｓｔｒｉｎｇ”のオブジェクトＩＤ０ｘ４３８ｆ６ｃｃ０に対応させて、サイズ２４バイト、トレース情報のリンク先を指すリンク情報”＜ａ　ｈｒｅｆ＝ｔｒａｃｅ／１１．ｈｔｍｌ＞”が作成される。
【００３０】
次に、図６のステップＳ２５において、親オブジェクトとの関連を示すｒｅａｃｈａｂｌｅ　ｃｈａｉｎへのリンクを自己のオブジェクトＩＤをファイル名として生成する。さらに、次のステップＳ２６において、ｍｅｍｂｅｒ　ｌｉｓｔへのリンクを同様に自己のオブジェクトＩＤをファイル名として生成する。
【００３１】
上記の処理により、例えば、図２のｄｕｍｐ．ｈｌｍに基づいて、図８の”ｊａｖａ．ｌａｎｇ．Ｓｔｒｉｎｇ”に登録されているオブジェクトＩＤと対応づけてスタックトレース、チェーン及びメンバリストへのリンクが作成される。”セカンドレベルのインデックスファイルである”ｊａｖａ．ｌａｎｇ．Ｓｔｒｉｎｇ”には、オブジェクトＩＤ０ｘ４３８ｆ６ｃｃ０のトレース情報を示すスタックトレース（ｃａｌｌ　ｓｔａｃｋ）のリンク先がｔｒａｃｅ／１１．ｈｔｍｌであること、ｒｅａｃｈａｂｌｅ　ｃｈａｉｎのリンク先がｃｈａｉｎ／１１３３４７２９６０．ｈｔｍｌであること、ｍｅｍｂｅｒ　ｌｉｓｔのリンク先がｍｅｍｂｅｒ／１１３３４７２９６０．ｈｔｍｌであることがＨＴＭＬで記述されている。
【００３２】
図９及び図１０は、ブラウザで図７のファーストレベルのインデックスファイルと図８の”ｊａｖａ．ｌａｎｇ．Ｓｔｒｉｎｇ”を表示させたときの表示例を示している。
図９に示すように、ファーストレベルのインデックスファイルには、メモリに割り当てられたオブジェクト数と、残存しているオブジェクト数と、クラス名とが表示される。そして、ユーザが、３行目のクラス名”ｊａｖａ．ｌａｎｇ．Ｓｔｒｉｎｇ”を選択すると、図１０の”ｊａｖａ．ｌａｎｇ．Ｓｔｒｉｎｇ”のインデックスファイルが表示される。
【００３３】
図１０のｃａｌｌ　ｓｔａｃｋ，　ｒｅａｃｈａｂｌｅ　ｃｈａｉｎ，　ｍｅｍｂｅｒ　ｌｉｓｔにはハイパーリンクをサポートするファイルであることを示す下線が表示されるが、この時点ではリンク情報のみが生成され、リンク先のＨＴＭＬファイルは生成されていない。
【００３４】
次に、インデックスファイルから特定のファイルが選択されたときに、選択されたリンク先のＨＴＭＬファイルを生成する処理を、図１１のフローチャートを参照して説明する。
【００３５】
情報処理装置１１は、トップページ、すなわち、上述したファーストレベルのインデックスファイルをブラウザで読み込み表示部に表示する（図１１，Ｓ３１）。そして、ユーザの入力操作を待つ（Ｓ３２）。
【００３６】
ユーザによりファーストレベルのインデックスファイルの中の特定のインデックスファイルが選択されたなら、ステップＳ３３に進み、選択されたインデックスファイルにより指定されるリンク先のファイルが存在するか否かを判別する（Ｓ３３）。
【００３７】
リンク先ファイルが存在する場合には（Ｓ３３，ＹＥＳ）、ステップＳ３４に進み選択されたリンク先ファイルを表示部に表示する。
リンク先ファイルが存在しない場合には（Ｓ３３，ＮＯ）、ステップＳ３５に進み、リンク先ファイルを生成する。新たに生成されたリンク先ファイルは、上記のステップＳ３４において表示部に表示される。
【００３８】
次に、図１１のフローチャートのステップＳ３５のリンク先ファイルの生成処理を、図１２〜図２０を参照して具体的に説明する。
図１２は、スタックトレースのＨＴＭＬファイルを生成する処理のフローチャートである。
【００３９】
ユーザにより選択されたファイル名からトレース番号を取得する（図１２，Ｓ４１）。セカンドレベルのインデックスファイルのスタックトレースのリンク先ファイル名としてトレース番号が使用されているので、選択されたファイル名からトレース番号が分かる。
【００４０】
次に、ｔｒａｃｅ．ｈｌｍから該当するトレース番号を検索し、そのトレース番号と対応づけて格納されているメソッド名と行番号を取得する（Ｓ４２）。
次に、トレーススタックのＨＴＭＬファイルを作成し、そのファイルにメソッド名と行番号を書き出す（Ｓ４３）。
【００４１】
上記の処理の一例を図１０の”ｊａｖａ．ｌａｎｇ．Ｓｔｒｉｎｇ”の表示例と図８のＨＴＭＬファイルを参照して説明する。
例えば、ブラウザにより表示された図１０の”ｊａｖａ．ｌａｎｇ．Ｓｔｒｉｎｇ”のオブジェクトＩＤ０ｘ４３８ｆ６ｃｃ０のｃａｌｌ　ｓｔａｃｋがユーザにより選択された場合、情報処理装置１１は、図８のＨＴＭＬファイルのリンク先ファイル名ｔｒａｃｅ／１１．ｈｔｍｌから、そのトレース番号が”１１”であることが分かる。次に、ｔｒａｃｅ．ｈｌｍからトレース番号１１（＝０ｘｂ）を検索し、トレース番号に対応させて格納されているメソッド名と行番号データを取得する。そして、取得したトレース番号１１のメソッド名”ｊａｖａ．ｌａｎｇ．Ｓｔｒｉｎｇ＃ｓｕｂｓｔｒｉｎｇ（ＩＩ）Ｌｊａｖａ／ｌａｎｇ／Ｓｔｒｉｎｇ”と行番号”１５２２”等をＨＴＭＬで記述して”ｊａｖａ．ｌａｎｇ．Ｓｔｒｉｎｇ”のスタックトレースのＨＴＭＬファイルを生成する。
【００４２】
図１３は、スタックトレースの生成処理により生成されるスタックトレースのＨＴＭＬファイルを示している。
１行目にｔｒａｃｅ．ｈｌｍから取得した”ｊａｖａ．ｌａｎｇ．Ｓｔｒｉｎｇ＃ｓｕｂｓｔｒｉｎｇ（ＩＩ）Ｌｊａｖａ／ｌａｎｇ／Ｓｔｒｉｎｇ”と行番号”１５２２”がＨＴＭＬで記述され、以下、ｔｒａｃｅ．ｈｌｍから読み込まれるメソッド名と行番号がＨＴＭＬで順に記述される。図１３の行の先頭の＜ｂｒ＞は、改行を指定するタグである。
【００４３】
図１４は、図１３のスタックトレースのＨＴＭＬファイルをブラウザで表示させた場合の表示例を示している。
次に、図１５は、チェーン（ｒｅａｃｈａｂｌｅ　ｃｈａｉｎ）の生成処理のフローチャートである。
【００４４】
ユーザにより選択されたファイル名からオブジェクトＩＤを取得する（図１５，Ｓ５１）。実施の形態では、インデックスファイルのチェーンのファイル名としてオブジェクトＩＤを使用しているので、ファイル名からオブジェクトＩＤを知ることができる。
【００４５】
次に、ｄｕｍｐ．ｈｌｍから該当するオブジェクトＩＤをメンバとする親オブジェクトを検索する（Ｓ５２）。そして、次のステップＳ５３で、親オブジェクトが見つかったか否かを判別する。選択されたオブジェクトＩＤをメンバとする親オブジェクトが見つからない場合には（Ｓ５３，ＮＯ）、ステップＳ５２に戻り検索を継続する。
【００４６】
親オブジェクトが見つかった場合には（Ｓ５３，ＹＥＳ）、ステップＳ５４に進み、チェーンのＨＴＭＬファイルを作成し、ｄｕｍｐ．ｈｌｍから抽出した親オブジェクト名と、オブジェクトＩＤのリンク情報をチェーンのＨＴＭＬファイルに書き出す。
【００４７】
ここで、上記のチェーンの生成処理の一例を、図１０の表示例と図８の”ｊａｖａ．ｌａｎｇ．Ｓｔｒｉｎｇ”のＨＴＭＬファイルを参照して説明する。
例えば、情報処理装置１１の表示部に表示された”ｊａｖａ．ｌａｎｇ．Ｓｔｒｉｎｇ”（図１０）のオブジェクトＩＤ０ｘ４３８ｆ６ｃｃ０のｒｅａｃｈａｂｌｅ　ｃｈａｉｎが、ユーザにより選択された場合に、情報処理装置１１は、図８のｒｅａｃｈｂｌｅ　ｃｈａｉｎのリンク先ファイル名ｃｈａｉｎ／１１３３４７２９６０．ｈｔｍｌから、そのオブジェクトＩＤが”１１３３４７２９６０”であることが分かる。次に、ｄｕｍｐ．ｈｌｍから”１１３３４７２９６０（＝０ｘ４３８ｆ６ｃｃ０）がメンバとして登録されている親のオブジェクトを検索する。そして、検索により得られた親オブジェクト名と親オブジェクトのリンク先ファイル名をＨＴＭＬで記述してチェーンのＨＴＭＬファイルｃｈａｉｎ／１１３３４７２９６０．ｈｔｍｌを作成する。
【００４８】
図１６は、上述したチェーンの生成処理により生成されるＨＴＭＬファイルｃｈａｉｎ／１１３３４７２９６０．ｈｔｍｌを示す図である。
図１６の１行目に選択されたオブジェクトＩＤ０ｘ４３８ｆ６ｃｃ０のクラス名”ｊａｖａ．ｌａｎｇ．Ｓｔｒｉｎｇ”と、リンク先ファイル名”．．／１３９．ｈｔｍｌ”と、オブジェクトＩＤ０ｘ４３８ｆ６ｃｃ０がＨＴＭＬで記述される。以下、ｄｕｍｐ．ｈｌｍから抽出された親のオブジェクト名とオブジェクトＩＤがＨＴＭＬで記述される。
【００４９】
図１７は、図１６のチェーンのＨＴＭＬファイルをブラウザで表示させた場合の表示例を示している。
図１８は、メンバリスト（ｍｅｍｂｅｒ　ｌｉｓｔ）の生成処理のフローチャートである。
【００５０】
ユーザにより選択されたファイル名からオブジェクトＩＤを取得する（図１８，Ｓ６１）。実施の形態では、インデックスファイルのメンバーリストのファイル名としてオブジェクトＩＤを使用しているので、ファイル名からオブジェクトＩＤを知ることができる。
【００５１】
次に、ｄｕｍｐ．ｈｌｍから該当するオブジェクトＩＤを検索し、そのオブジェクトＩＤに対応させて格納されているメンバのオブジェクトＩＤを取得する（Ｓ６２）。
【００５２】
次に、オブジェクトＩＤをファイル名とするファイルを作成し、ｄｕｍｐ．ｈｌｍから取得したメンバのチェーンのＨＴＭＬファイルを作成し、ｄｕｍｐ．ｈｌｍから抽出したメンバリストをＨＴＭＬで記述する（Ｓ６３）。
【００５３】
ここで、上記のメンバリストの生成処理の一例を、図１０の”ｊａｖａ．ｌａｎｇ．Ｓｔｒｉｎｇ”の表示例と、図８の”ｊａｖａ．ｌａｎｇ．Ｓｔｒｉｎｇ”のＨＴＭＬファイルを参照して説明する。
【００５４】
例えば、情報処理装置１１の表示部に表示された”ｊａｖａ．ｌａｎｇ．Ｓｔｒｉｎｇ”（図１０）のオブジェクトＩＤ０ｘ４３８ｆ６ｃｃ０のｍｅｍｂｅｒ　ｌｉｓｔが、ユーザにより選択された場合に、情報処理装置１１は、図８のｍｅｍｂｅｒ　ｌｉｓｔのリンク先ファイル名ｍｅｍｂｅｒ／１１３３４７２９６０．ｈｔｍｌから、そのオブジェクトＩＤが”１１３３４７２９６０”であることが分かる。次に、ｄｕｍｐ．ｈｌｍから”１１３３４７２９６０（＝０ｘ４３８ｆ６ｃｃ０）のオブジェクトＩＤを検索し、検索により得られたメンバの型、名前、値、すなわち、Ｉ　ｈａｓｈ　：０，Ｉ　ｃｏｕｎｔ　：４０，Ｉ　ｏｆｆｓｅｔ　：１３７をＨＴＭＬで記述して、メンバリストのＨＴＭＬファイルｍｅｍｂｅｒ／１１３３４７２９６０．ｈｔｍｌを作成する。
【００５５】
図１９は、上述したメンバリストの生成処理により生成されるＨＴＭＬファイルｍｅｍｂｅｒ／１１３３４７２９６０．ｈｔｍｌを示す図である。
１行目にクラス名と、選択されたオブジェクトＩＤ０ｘ４３８ｆ６ｃｃ０が、２行目以降に、メンバの型、名前、値、Ｉ　ｈａｓｈ　：０，Ｉ　ｃｏｕｎｔ　：４０，Ｉ　ｏｆｆｓｅｔ　：１３７がＨＴＭＬで記述されている。
【００５６】
また、図２０は、図１９のメンバリストをブラウザで表示させたときの表示例を示している。
ここで、実施の形態の情報処理装置１１のハードウェア構成の一例を図２１に示す。
【００５７】
バス２１を介してＣＰＵ２２と接続されたＲＯＭ２３には、ＢＩＯＳなどの基本プログラムが格納される。また、基本プログラムは、バス２１により接続されるハードディスクなどの記憶装置２４に格納され、ＲＡＭ２５にコピーされてＣＰＵ２２により実行される。表示部２０には、ユーザから表示要求のあったデータ等が表示される。
【００５８】
記憶媒体読み取り装置２６は、フレキシブルディスク、ＣＤＲＯＭ、ＤＶＤ、ＩＣカード等の可搬記録媒体２７から本発明に係るプログラム等を読み取り、ＣＰＵ２２に実行させることもできる。
【００５９】
入出力装置２８は、キーボード、マウス、ディスプレイなどからなり、ユーザのからの指示をＣＰＵ２２に伝え、あるいはＣＰＵ２２の処理結果を出力するためのものである。
【００６０】
通信インターフェース２９は、インターネット等のネットワーク３０を介して情報提供者３１と通信を行うためのものである。情報提供者３１は、本発明に係るプログラムをサーバ等に保持し、そのプログラムをネットワーク３０を介して情報処理装置１１にダウンロードできるようにしても良い。
【００６１】
なお、上記の情報処理装置１１は、ネットワーク３０を介してプログラムをダウンロードするための通信インタフェース２９及び記録媒体２７に記録されたプログラムを読み取るための記録媒体読み取り装置２６を備えているが、これらの機能をすべて備える必要はない。
【００６２】
上述した実施の形態によれば、Ｊａｖａ（Ｒ）　で記述されたプログラムのメモリの使用状況等を示すファイルからＨＴＭＬファイルを生成する際に、予めすべてのＨＴＭＬファイルを作成するのではなく、必要最小限のＨＴＭＬファイルを作成し、そのＨＴＭＬファイルの中の特定ＨＴＭＬファイルが選択されたとき、該当するＨＴＭＬファイルを動的に生成するようにしたので、ファイル相互間のリンクの解析及びＨＴＭＬファイルの作成を一度に行う必要がなくＨＴＭＬファイルを生成するための時間を短縮できる。また、ＨＴＭＬファイルをすべて作成して記憶装置に予め記憶しておく必要がないので、記憶装置の記憶容量も少なくて済む。
【００６３】
また、ＨＴＭＬファイルを閲覧する装置と別のサーバにＨＴＭＬファイルを格納する場合に生じるサーバとクライアント間でのデータ転送によるトラヒックの増大を防止できる。また、ＨＴＭＬファイルを格納する専用のサーバが必要ないのでシステム構成も簡素になる。
【００６４】
上述した実施の形態は、ユーザが作成したプログラムを実行してメモリの使用状況等を解析する装置と、その装置から出力されるデータに基づいてメモリの使用状況等を示すＨＴＭＬファイルを生成する情報処理装置１１との２台の装置からなるシステムを前提にして説明したが、対象となるデータはメモリの使用状況を示すデータには限らず、どのようなデータでもよい。また、ユーザプログラムの実行及び解析と、ＨＴＭＬファイルの生成を１台の情報処理装置１１で行ってもよい。
【００６５】
また、情報処理装置１１が生成するハイパーリンクをサポートするファイルは、ＨＴＭＬファイルに限らず、ブラウザ等により表示可能なファイルであればどのようなものでも良い。
【００６６】
本発明は、Ｊａｖａ（Ｒ）　で記述されたプログラムに限らず、他のプログラム言語にも適用できる。
（付記１）複数のファイルからハイパーリンクをサポートするファイルを生成するプログラムにおいて、
リンク先のファイルを指す複数のインデックスファイルを生成するステップと、
前記複数のインデックスファイルの中の特定のインデックスファイルが選択されたとき、選択されたインデックスファイルにより指定されるリンク先のファイルが存在するか否かを判別するステップと、
リンク先のファイルが存在しない場合に、リンク先のハイパーリンクをサポートするファイルを生成するステップとからなるリンク先のファイルを動的に生成するプログラム。
【００６７】
（付記２）複数のファイルからハイパーリンクをサポートするファイルを生成する情報処理装置において、
リンク先のファイルを指す複数のインデックスファイルを生成するインデックスファイル生成手段と、
前記インデックスファイル生成手段により生成される複数のインデックスファイルの中の特定のインデックスファイルが選択されたとき、選択されたインデックスファイルにより指定されるリンク先のファイルが存在するか否かを判別する判別手段と、
前記判別手段により前記リンク先のファイルが存在しないと判別された場合に、リンク先のハイパーリンクをサポートするファイルを生成するハイパーリンクファイル生成手段とを備えるリンク先のファイルを動的に生成する情報処理装置。
【００６８】
（付記３）複数のファイルからハイパーリンクをサポートするファイルを生成するプログラムを記録した記録媒体であって、
リンク先のファイルを指す複数のインデックスファイルを生成するステップと、
前記複数のインデックスファイルの中の特定のインデックスファイルが選択されたとき、選択されたインデックスファイルにより指定されるリンク先のファイルが存在するか否かを判別するステップと、
前記リンク先のファイルが存在しない場合に、リンク先のハイパーリンクをサポートするファイルをして生成するステップとを備えるリンク先のファイルを動的に生成するプログラムを記録したコンピュータ読み取り可能な記録媒体。
【００６９】
（付記４）前記ハイパーリンクをサポートするファイルはブラウザにより表示可能なＨＴＭＬファイルであり、選択されたインデックスファイルにより指定されるリンク先のファイルが存在しない場合に、リンク先のＨＴＭＬファイルを生成する付記１記載のリンク先のファイルを動的に生成するプログラム。
【００７０】
（付記５）前記複数のファイルは、解析対象のプログラムのメモリの使用状況を示すデータを含み、前記複数のファイルからリンク先のＨＴＭＬファイルを指すインデックスファイルを生成し、選択されたインデックスファイルにより指定されるリンク先のファイルが存在しない場合に、リンク先のＨＴＭＬファイルを生成する付記１記載のリンク先のファイルを動的に生成するプログラム。
【００７１】
（付記６）複数のファイルからハイパーリンクをサポートするファイルを生成するプログラムであって、
リンク先のファイルを指す複数のインデックスファイルを生成するステップと、
生成された複数のインデックスファイルの中の特定のインデックスファイルが選択されたとき、該インデックスファイルのリンク先のファイルが存在するか否かを判別するステップと、
リンク先のファイルが存在しないと判別されたとき、前記複数のファイル相互のリンクを解析するステップと、
前記ステップの解析結果に基づいてリンク先のハイパーリンクをサポートするファイルを生成するステップとからなるリンク先のファイルを動的に生成するプログラム。
【００７２】
【発明の効果】
本発明によれば、第１段階においては、例えば、インデックスファイルのみを生成するようにしたので、ファイルを生成するために要する時間を大幅に短縮できる。また、特定のインデックスファイルが選択された第２段階において、選択されたインデックスファイルにより指定されるリンク先のファイルが存在しない場合に、そのリンク先のハイパーリンクをサポートするファイルを生成するようにしたので、例えば、ユーザが違和感を感じないように短時間にハイパーリンクをサポートするファイルを生成して表示させることができる。この場合、選択されたインデックスファイルにより指定されるリンク先のファイルのみを生成すればよいので短時間でファイルを生成することができる。
【図面の簡単な説明】
【図１】実施の形態の情報処理装置の機能の説明図である。
【図２】ｄｕｍｐ．ｈｌｍの一例を示す図である。
【図３】ｓｅｒ．ｈｌｍの一例を示す図である。
【図４】ｔｒａｃｅ．ｈｌｍの一例を示す図である。
【図５】インデックスファイル作成処理のフローチャートである。
【図６】インデックスファイル作成処理の詳細なフローチャートである。
【図７】ファーストレベルのインデックスファイルを示す図である。
【図８】ｊａｖａ．ｌａｎｇ．Ｓｔｒｉｎｇのファイルを示す図である。
【図９】ファーストレベルのインデックスファイルの表示例を示す図である。
【図１０】ｊａｖａ．ｌａｎｇ．Ｓｔｒｉｎｇの表示例を示す図である。
【図１１】リンク先のＨＴＭＬ文書を作成する処理のフローチャートである。
【図１２】スタックトレースの生成処理のフローチャートである。
【図１３】スタックトレースのＨＴＭＬファイルを示す図である。
【図１４】スタックトレースの表示例を示す図である。
【図１５】チェーンの生成処理のフローチャートである。
【図１６】チェーンのＨＴＭＬファイルを示す図である。
【図１７】チェーンの表示例を示す図である。
【図１８】メンバーリストの生成処理を示すフローチャートである。
【図１９】メンバリストのＨＴＭＬファイルを示す図である。
【図２０】メンバリストの表示例を示す図である。
【図２１】実施の形態の情報処理装置のハードウェア構成を示す図である。
【符号の説明】
１１　　　情報処理装置
１２　　　メモリプロファイラ
１３　　　インデックスファイル
２０　　　表示部
２２　　　ＣＰＵ
２４　　　記憶装置
２５　　　ＲＡＭ
２６　　　記録媒体読み取り装置
２７　　　可搬記録媒体
３０　　　ネットワーク
【図１】
2004133640.tif 000003
【図２】
2004133640.tif 000004
【図３】
2004133640.tif 000005
【図４】
2004133640.tif 000006
【図５】
2004133640.tif 000007
【図６】
2004133640.tif 000008
【図７】
2004133640.tif 000009
【図８】
2004133640.tif 000010
【図９】
2004133640.tif 000011
【図１０】
2004133640.tif 000012
【図１１】
2004133640.tif 000013
【図１２】
2004133640.tif 000014
【図１３】
2004133640.tif 000015
【図１４】
2004133640.tif 000016
【図１５】
2004133640.tif 000017
【図１６】
2004133640.tif 000018
【図１７】
2004133640.tif 000019
【図１８】
2004133640.tif 000020
【図１９】
2004133640.tif 000021
【図２０】
2004133640.tif 000022
【図２１】
2004133640.tif 000023