"プログラムのソースコードが記述されたファイルの識別情報、該ソースコードの版数情報、および変数が設定されたログ取得命令を含むプログラムを実行し、ログ取得命令の実行段階になると、実行段階になったログ取得命令に設定された変数の値を取得するプログラム実行手段と、前記実行段階になったログ取得命令に設定されたファイルの識別情報と版数情報、および前記プログラム実行手段が取得した変数の値を含むトレースログを生成し、記憶装置に格納するトレースログ生成手段と、を有することを特徴とする情報処理装置。ログ取得命令には、ソースコード内において前記ログ取得命令が記述された行の行番号が設定されており、前記トレースログ生成手段は、前記実行段階になったログ取得命令に含まれている行番号を含むトレースログを生成することを特徴とする請求項1記載の情報処理装置。プログラムのソースコードが記述されたファイルの識別情報、該ソースコードの版数情報、および変数の値を含むトレースログに基づいて、該ファイルの識別情報と該版数情報との組に対応するソースコードを取得するソースコード取得手段と、トレースログに基づいて取得されたソースコードから、該トレースログに関連する文字列を抽出し、該抽出した文字列を該トレースログに追加し、該文字列を追加したトレースログを記憶装置に格納する文字列追加手段と、を有することを特徴とする情報処理装置。トレースログに含まれるファイルの識別情報は、ソースコードが記述されたファイルに一意に対応付けられた符号であり、前記ソースコード取得手段は、ソースコードが記述されたファイルのファイル名と、該ファイルに一意に対応付けられた符号との対応関係が登録された管理情報に基づいて、トレースログに含まれる符号に対応するファイル名を判断し、該ファイル名と該トレースログに含まれる版数情報との組に対応するファイルからソースコードを取得する、ことを特徴とする請求項3記載の情報処理装置。ファイルに一意に対応付けられた符号は、該ファイルのファイル名よりも少ないデータ量であることを特徴とする請求項4記載の情報処理装置。前記文字列追加手段は、トレースログに含まれる符号に対応するファイル名を、該トレースログに追加することを特徴とする請求項4または5のいずれかに記載の情報処理装置。トレースログには、ソースコード内においてログ取得命令が記述された行の行番号が含まれており、前記文字列追加手段は、トレースログに基づいて取得されたソースコード内の、該トレースログに含まれる行番号で示される行に記述されているログ取得命令から、該トレースログに関連する文字列を抽出する、ことを特徴とする請求項3乃至6のいずれかに記載の情報処理装置。第1の情報処理装置が、プログラムのソースコードが記述されたファイルの識別情報、該ソースコードの版数情報、および変数が設定されたログ取得命令を含むプログラムを実行し、ログ取得命令の実行段階になると、実行段階になったログ取得命令に設定された変数の値を取得し、前記実行段階になったログ取得命令に設定されたファイルの識別情報と版数情報、および取得した変数の値を含むトレースログを生成し、生成したトレースログを第1の記憶装置に格納し、第2の情報処理装置が、前記第1の記憶装置に格納されたトレースログに基づいて、該トレースログに含まれるファイルの識別情報と版数情報との組に対応するソースコードを取得し、トレースログに基づいて取得されたソースコードから、該トレースログに関連する文字列を抽出し、該抽出した文字列を該トレースログに追加し、文字列を追加したトレースログを第2の記憶装置に格納する、ことを特徴とするトレースログ取得方法。第3の情報処理装置が、プログラムのソースコードに含まれるログ取得命令に、該ソースコードが記述されたファイルのファイル名に一意に対応付けられた符号を該ファイルの識別情報として設定すると共に、該ソースコードの版数情報を該ログ取得命令に設定し、前記第3の情報処理装置が、ソースコードが記述されたファイルのファイル名、該ファイル名に対応する符号、および該ソースコードの版数情報を有する管理情報を、該ソースコードが記述されたファイルに関連付けて、第3の記憶装置に格納し、前記第1の情報処理装置は、ファイル名に一意に対応付けられた符号が、ファイルの識別情報として設定されたログ取得命令を含むプログラムを実行し、前記第2の情報処理装置は、前記第3の記憶装置に格納された管理情報に基づいて、トレースログに含まれる符号に対応するファイル名を判断し、該ファイル名と該トレースログに含まれる版数情報とを含む管理情報に関連付けられたファイルから、ソースコードを取得する、ことを特徴とする請求項8記載のトレースログ取得方法。しかし、従来は、版数の異なる複数のソースコードそれぞれに基づく複数のプログラムの実行時に取得されたトレースログが混在すると、各トレースログがどの版数のソースコード内の命令に応じて取得されたのかが判別できなかった。その結果、トレースログを用いた動作解析を正確に行うのが困難となっていた。1つの側面では、本発明は、トレースログ取得時に実行されていたプログラムのソースコードの版数を判別可能とする情報処理装置、およびトレースログ取得方法を提供することを目的とする。1つの案では、プログラム実行手段とトレースログ生成手段とを有する情報処理装置が提供される。プログラム実行手段は、プログラムのソースコードが記述されたファイルの識別情報、該ソースコードの版数情報、および変数が設定されたログ取得命令を含むプログラムを実行し、ログ取得命令の実行段階になると、該実行段階になったログ取得命令に設定された変数の値を取得する。トレースログ生成手段は、実行段階になったログ取得命令に設定されたファイルの識別情報と版数情報、およびプログラム実行手段が取得した変数の値を含むトレースログを生成し、記憶装置に格納する。他の案では、ソースコード取得手段と文字列追加手段とを有する情報処理装置が提供される。ソースコード取得手段は、プログラムのソースコードが記述されたファイルの識別情報、該ソースコードの版数情報、および変数の値を含むトレースログに基づいて、該ファイルの識別情報と該版数情報との組に対応するソースコードを取得する。文字列追加手段は、トレースログに基づいて取得されたソースコードから、該トレースログに関連する文字列を抽出し、該抽出した文字列を該トレースログに追加し、該文字列を追加したトレースログを記憶装置に格納する。別の案では、第1の情報処理装置と第2の情報処理装置とによるトレースログ取得方法が提供される。このトレースログ取得方法では、第1の情報処理装置が、プログラムのソースコードが記述されたファイルの識別情報、該ソースコードの版数情報、および変数が設定されたログ取得命令を含むプログラムを実行する。次に第1の情報処理装置が、ログ取得命令の実行段階になると、実行段階になったログ取得命令に設定された変数の値を取得する。次に第1の情報処理装置が、実行段階になったログ取得命令に設定されたファイルの識別情報と版数情報、およびプログラム実行手段が取得した変数の値を含むトレースログを生成する。次に第1の情報処理装置が、生成したトレースログを第1の記憶装置に格納する。次に第2の情報処理装置が、第1の記憶装置に格納されたトレースログに基づいて、該トレースログに含まれるファイルの識別情報と版数情報との組に対応するソースコードを取得する。次に第2の情報処理装置が、トレースログに基づいて取得されたソースコードから、該トレースログに関連する文字列を抽出し、該抽出した文字列を該トレースログに追加する。次に第2の情報処理装置が、文字列を追加したトレースログを第2の記憶装置に格納する。トレースログ取得時に実行されていたプログラムのソースコードの版数の判別が可能となる。以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。第1の実施の形態図1は、第1の実施の形態に係る装置の機能構成例を示す図である。第1の実施の形態では、3つの情報処理装置1~3が設けられている。情報処理装置1は、例えばソフトウェアの開発に使用する装置である。また情報処理装置2は、例えばソフトウェアの実行に使用する装置である。情報処理装置3は、例えばトレースログの解析に使用する装置である。情報処理装置1は、版数管理手段1aと記憶装置1bとを有する。版数管理手段1aは、プログラムのソースコードに含まれるログ取得命令に、該ソースコードが記述されたファイル1e,1fのファイル名に一意に対応付けられた符号を該ファイルの識別情報として設定する。また版数管理手段1aは、該ソースコードの版数情報を該ログ取得命令に設定する。さらに版数管理手段1aは、ソースコードが記述されたファイルのファイル名、該ファイル名に対応する符号、および該ソースコードの版数情報を有する管理情報1cを、ソースコードが記述されたファイル1e,1fに関連付けて、記憶装置1bに格納する。なおソースコードが記述されたファイル1e,1fは、例えば版数管理手段1aによって記憶装置1bに格納される。記憶装置1bは、管理情報1cを記憶する。また記憶装置1bは、例えば、ソースコードが記述されたファイル1e,1fを記憶する。情報処理装置2は、プログラム実行手段2a、トレースログ生成手段2b、および記憶装置2cを有する。プログラム実行手段2aは、プログラムのソースコードが記述されたファイルの識別情報、そのソースコードの版数情報、および変数が設定されたログ取得命令を含むプログラムを実行する。そしてプログラム実行手段2aは、ログ取得命令の実行段階になると、実行段階になったログ取得命令に設定された変数の値を取得する。トレースログ生成手段2bは、実行段階になったログ取得命令に設定されたファイルの識別情報と版数情報、およびプログラム実行手段2bが取得した変数の値を含むトレースログ2dを生成し、記憶装置2cに格納する。記憶装置2cは、トレースログ2dを記憶する。情報処理装置3は、ソースコード取得手段3a、文字列追加手段3b、および記憶装置3cを有する。ソースコード取得手段3aは、トレースログ2dに基づいて、ファイルの識別情報と版数情報との組に対応するソースコードを取得する。例えばトレースログに含まれるファイルの識別情報は、ソースコードが記述されたファイルのファイル名に一意に対応付けられた符号である。この場合、ソースコード取得手段3aは、ソースコードが記述されたファイルのファイル名と、該ファイルのファイル名に一意に対応付けられた符号との対応関係が登録された管理情報1cに基づいて、トレースログに含まれ符号に対応するファイル名を判断する。そしてソースコード取得手段3aは、ファイル名とトレースログに含まれる版数情報との組に対応するファイルからソースコードを取得する。文字列追加手段3bは、トレースログに基づいて取得されたソースコードから、そのトレースログに関連する文字列を抽出し、該抽出した文字列を該トレースログに追加し、該文字列を追加したトレースログを記憶装置に格納する。例えば文字列追加手段3bは、ソースコードが記述されたファイルのファイル名に一意に対応付けられた符号がトレースログに含まれている場合、その符号に対応するファイル名をトレースログに追加する。また文字列追加手段3bは、例えば、トレースログに含まれる変数の値に関連する文字列をソースコードから抽出し、トレースログに追加する。なお、図1に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また版数管理手段1aは、情報処理装置1が有するCPUCentralProcessingUnitにより実現することができる。また、記憶装置1b、情報処理装置1が有するRAMRandomAccessMemoryやハードディスクドライブHDDHardDiskDriveにより実現することができる。プログラム実行手段2aおよびトレースログ生成手段2bは、情報処理装置2が有するCPUにより実現することができる。また記憶装置2c、情報処理装置2が有するRAMやHDDにより実現することができる。ソースコード取得手段3aおよび文字列追加手段3bは、情報処理装置3が有するCPUにより実現することができる。また記憶装置3c、情報処理装置3が有するRAMやHDDにより実現することができる。このような構成のシステムにより、プログラム実行にトレースログが取得され、そのトレースログの可読化が行われる。図2は、第1の実施の形態の処理の手順を示すフローチャートの一例である。以下、図2に示す処理をステップ番号に沿って説明する。[ステップS1]情報処理装置1の版数管理手段1aは、ソースコード内のログ取得命令に対して、そのソースコードが記述されたファイルのファイル名に対応する符号を設定する。[ステップS2]情報処理装置1の版数管理手段1aは、ファイル名と符号との対応関係を示す管理情報1cを、記憶装置1bに格納する。[ステップS3]情報処理装置2のプログラム実行手段2aは、ファイル名に対応する符号が設定されたログ取得命令を含むプログラムを情報処理装置1から取得し、実行する。[ステップS4]情報処理装置2のプログラム実行手段2aは、ログ取得命令の実行段階になると、その時点でのログ取得命令に含まれる変数の値を取得する。[ステップS5]トレースログ生成手段2bは、実行段階になったログ取得命令に設定された符号と版数情報、およびプログラム実行手段2aが取得した変数の値を含むトレースログ2dを生成する。そしてトレースログ生成手段2bは、生成したトレースログ2dを記憶装置2cに格納する。[ステップS6]情報処理装置3のソースコード取得手段3aは、記憶装置2cに格納されたトレースログ2dに基づいて、ファイルの識別情報と版数情報との組に対応するソースコードを取得する。例えば情報処理装置3は、情報処理装置1の記憶装置1bに格納されている管理情報1cを参照し、トレースログ2d内の符号に対応するファイル名を判断する。そしてソースコード取得手段3aは、符号に対応するファイル名の、トレースログ2dに含まれる版数情報に対応する版数のファイルから、ソースコードを取得する。[ステップS7]情報処理装置3の文字列追加手段3bは、トレースログ2dに関連する文字列をステップS6で取得したソースコードから抽出し、トレースログ2dに追加する。例えば文字列追加手段3bは、トレースログ2d内の変数の値に関連する文字列をソースコードから抽出し、トレースログ2dに追加する。また文字列追加手段3bは、トレースログ2dに含まれる符号に対応するファイル名を、トレースログ2dに追加する。この際、文字列追加手段3bは、トレースログ2d内の符号を、トレースログ2dから削除してもよい。その後、文字列追加手段3bは、文字列を追加した可読トレースログ3dを記憶装置3cに格納する。このようにして、トレースログの可読化が行われ、人が理解可能な記述の可読トレースログ3dが取得できる。図3は、トレースログの可読化の一例を示す図である。図3の例では、ファイル名がfilecで版数が異なる2つのファイル1e,1fが設けられている。ファイル1e,1fそれぞれには、ソースコードが記述されている。例えばファイル1eのソースコードの6行目と9行目には、ログ取得命令が記述されている。また、ファイル1eは、版数管理手段1aにより、ログ取得命令のパラメータとして、ファイル1eを一意に示す符号c1が設定されている。版数管理手段1aは、ファイル1eに設定した符号c1と、ファイル1eのファイル名filecと関連付けた管理情報1cを生成する。その後、プログラム実行手段2aにより、例えばファイル1e内のソースコードに示されたプログラムが実行される。なおプログラム実行手段2aは、例えばソースコードをコンパイルして実行コードに翻訳された後のプログラムを実行する。なおプログラム実行手段2aがインタプリタであれば、ソースコードを逐次解釈しながら実行することもできる。プログラム実行手段2aによるプログラムの実行が、ログ取得命令の実行段階に達すると、ログ取得命令に示される変数の値が、プログラム実行手段2aによって取得される。そして、トレースログ生成手段2bにより、トレースログ2dが生成される。図3の例では、トレースログ2dには、符号、行番号、版数情報、変数の値が含まれる。符号は、ファイル1eを一意に示す符号である。行番号は、ソースコード内でのログ取得命令が記述された行の行番号である。版数情報は、ファイル1eの版数を示す情報である。変数の値は、ログ取得命令の実行段階における、そのログ取得命令で示された変数の値である。ここで、トレースログ2dの内容だけでは、変数の値が、どのような意味を持つ変数の値なのかが不明である。またトレースログの符号c1を人が見ても、どのファイルを示しているのか理解できない。そこで、ソースコード取得手段3aにより、トレースログ2dに示される符号c1と版数情報v11に対応するファイル1eからソースコードが取得される。そして、文字列追加手段3bにより、取得したソースコードから文字列が抽出される。例えば、文字列追加手段3bにより、トレースログ2d内の各レコードの行番号に対応する行のログ取得命令から、変数の値の意味を説明する文字列関数Aの処理を開始します。パラメータ:、エラーを検出しました。エラー番号:が抽出される。そして、トレースログ2dの内容に、抽出した文字列を追加した可読トレースログ3dが生成される。また図3の例では、文字列追加手段3dにより、トレースログ2d内の符号c1は、その符号に対応するファイルのファイル名filecに置換されている。このように、第1の実施の形態によれば、トレースログ2dに版数情報が含まれているため、各トレースログの内容が、どの版数のソースコードに基づく命令で取得されたのかが明確となる。その結果、トレースログに対応する版数のソースコードの情報に基づいて、各トレースログに対して、人が理解可能な文字列を追加し、可読トレースログ3dを得ることができる。また可読トレースログ3dでは、ソースコードが記述されたファイルのファイル名が示されている。そのため、プログラムを変更する場合の編集対象のファイルを、容易に把握することができる。その結果、トレースログの作成実行解析処理および版数毎の管理作業を削減することができる。第2の実施の形態次に第2の実施の形態について説明する。第2の実施の形態は、ソースコードから得られた実行コードを、ネットワーク経由で実行装置に転送し、実行装置でトレースログを取得するものである。図4は、第2の実施の形態のシステム構成例を示す図である。第2の実施の形態では、ネットワーク10を介して、開発装置100、実行装置200、および解析装置300が接続されている。開発装置100は、ソフトウェアの作成に使用されるコンピュータである。開発装置100は、作成したソフトウェアに、そのソフトウェア実行時のトレースログを取得するための関数呼び出し記述ログ取得命令を組み込むことができる。その関数呼び出し記述には、引数として版数情報を含めることができる。実行装置200は、開発装置100で作成されたソフトウェアを実行するコンピュータである。実行装置200は、ソフトウェアのプログラムに組み込まれた関数呼び出し記述に基づいて、トレースログ取得の関数を実行することができる。トレースログ取得の関数の実行によりトレースログが取得される。解析装置300は、トレースログを解析するコンピュータである。解析装置300は、実行装置200からトレースログを取得し、トレースログに含まれるコード化された情報を、人間が解読可能な情報例えば文字列に変換することができる。図5は、本実施の形態に用いる開発装置のハードウェアの一構成例を示す図である。開発装置100は、CPU101によって装置全体が制御されている。CPU101には、バス108を介してRAM102と複数の周辺機器が接続されている。RAM102は、開発装置100の主記憶装置として使用される。RAM102には、CPU101に実行させるOSOperatingSystemのプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。バス108に接続されている周辺機器としては、HDD103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、および通信インタフェース107がある。HDD103は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD103は、開発装置100の二次記憶装置として使用される。HDD103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。グラフィック処理装置104には、モニタ11が接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ11の画面に表示させる。モニタ11としては、CRTCathodeRayTubeを用いた表示装置や液晶表示装置などがある。入力インタフェース105には、キーボード12とマウス13とが接続されている。入力インタフェース105は、キーボード12やマウス13から送られてくる信号をCPU101に送信する。なお、マウス13は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。光学ドライブ装置106は、レーザ光などを利用して、光ディスク14に記録されたデータの読み取りを行う。光ディスク14は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク14には、DVDDigitalVersatileDisc、DVD-RAM、CD-ROMCompactDiscReadOnlyMemory、CD-RRecordable/RWReWritableなどがある。通信インタフェース107は、ネットワーク10に接続されている。通信インタフェース107は、ネットワーク10を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお図5には、開発装置100のハードウェア構成例を示したが、実行装置200と解析装置300も同様のハードウェア構成で実現することができる。また第1の実施の形態に示した各情報処理装置も、図5に示した開発装置100と同様のハードウェアにより実現することができる。図6は、第2の実施の形態の各装置の機能を示すブロック図である。開発装置100は、ソースコード編集部111、ソースコード記憶部112、バージョン管理システム登録部121、版数付ソースコード記憶部122、マクロ展開部131、展開済ソースコード記憶部132、実行プログラム作成部141、および実行コード記憶部142、実行コード出力部151、およびバージョン管理システム160を有する。ソースコード編集部111は、プログラマからの操作入力に応答して、プログラムのソースコードを編集する。例えばソースコード編集部111は、テキストエディタと呼ばれるテキストファイルの編集ソフトウェアである。例えばプログラマは、ソースコード中に、トレースログを取得させる関数の呼び出し記述ログ取得命令を含める。ログ取得命令には、例えばソースコード内のログ取得命令が記述された行の行番号に置換するマクロが、パラメータとして含まれる。マクロとは、プログラミング言語であらかじめ定義された規則にしたがって置換展開されるものである。またログ取得命令には、ソースコードが記述されたファイルのファイル名を一意に示す符号ファイルコードへの置換を示す文字列が、パラメータとして含まれる。さらにログ取得命令には、ソースコードの版数情報への置換を示す文字列が、パラ-メータとして含まれる。なおファイルコードは、例えばファイル名の文字列のデータ量よりも少ないデータ量の情報である。ソースコード記憶部112は、ソースコード編集部111で作成されたソースコードを記憶する。例えばRAM102などの主記憶装置またはHDD103などの二次記憶装置の記憶領域の一部が、ソースコード記憶部112として使用される。バージョン管理システム登録部121は、ソースコード記憶部112に格納されているソースコードをバージョン管理システム160に登録する。この際、バージョン管理システム登録部121は、ファイルコードへの置換を示す文字列を、ソースコードが記述されたファイルのファイル名に対応するファイルコードに置換する。またバージョン管理システム登録部121は、版数情報への置換を示す文字列を、ソースコードの版数情報に置換する。例えばバージョン管理システム登録部121は、バージョン管理システム160が保持する版数管理情報から、同じファイル名のソースコードの最新の版数情報を取得し、その版数情報に1を加算した値を、新たに登録するソースコードの版数情報とする。なおバージョン管理システム登録部121は、バージョン管理システム160にソースコードを登録する場合、旧版のソースコードが既に登録されていれば、例えば旧版のソースコードとの差分のみを登録する。またバージョン管理システム登録部121は、ファイルコードや版数情報の置換処理を施したソースコード版数付ソースコードを、版数付ソースコード記憶部122に格納する。版数付ソースコード記憶部122は、版数付ソースコードを記憶する。例えばRAM102などの主記憶装置またはHDD103などの二次記憶装置の記憶領域の一部が、版数付ソースコード記憶部122として使用される。マクロ展開部131は、版数付ソースコード記憶部122内の版数付ソースコードに含まれるマクロを展開する。例えばマクロ展開部131は、ログ取得命令に含まれる行番号に置換するマクロを、ログ取得命令の行番号に置換する。このようなマクロの置換処理は、マクロの展開と呼ばれる。マクロ展開部131は、マクロ展開後の版数付ソースコード展開済ソースコードを、展開済ソースコード記憶部132に格納する。展開済ソースコード記憶部132は、展開済ソースコードを記憶する。例えばRAM102などの主記憶装置またはHDD103などの二次記憶装置の記憶領域の一部が、展開済ソースコード記憶部132として使用される。実行プログラム作成部141は、ソースコードのコンパイルやリンクを行い、機械語で記述された実行コードを作成する。実行プログラム作成部141は、作成した実行コードを、実行コード記憶部142に格納する。実行コード記憶部142は、実行プログラム作成部141で作成された実行コードを記憶する。例えばRAM102などの主記憶装置またはHDD103などの二次記憶装置の記憶領域の一部が、実行コード記憶部142として使用される。実行コード出力部151は、実行コード記憶部142に格納された実行コードを、実行装置200に出力する。例えば実行コード出力部151は、ネットワーク10を介した実行装置200からの実行コード取得要求に応答し、実行コードを実行装置200にネットワークを介して送信する。バージョン管理システム160は、作成されたプログラムの版数を管理する。例えば、バージョン管理システム160は、版数管理情報記憶部161と版数付ソースコード記憶部162とを有する。版数管理情報記憶部161は、版数管理情報を記憶する。版数管理情報は、ソースコードが記述されたファイルのファイル名、ファイルコード、ファイル名、およびそのソースコードの版数の対応関係を示す情報である。例えばRAM102などの主記憶装置またはHDD103などの二次記憶装置の記憶領域の一部が、版数管理情報記憶部161として使用される。版数付ソースコード記憶部162は、版数付ソースコードを記憶する。なお、版数付ソースコード記憶部162に格納される版数付ソースコードは、例えば旧版との差分情報である。またバージョン管理システム160は、版数管理情報や版数付ソースコードの内容を、解析装置300に送信することができる。例えばバージョン管理システム160は、解析装置300の要求に応答し、版数管理情報の内容や、版数付ソースコードに含まれるログ取得命令の内容を、ネットワーク10経由で解析装置300に送信する。実行装置200は、実行コード取得部211、実行コード記憶部212、プログラム実行部221、トレースログ生成部222、トレースログ記憶部231、およびトレースログ出力部241を有する。実行コード取得部211は、開発装置100からプログラムの実行コードを取得する。例えば実行コード取得部211は、実行装置200の使用者からの入力に応じて、開発装置100に対して実行コードの取得要求を、ネットワーク10を介して送信する。そして実行コード取得部211は、取得要求に対して開発装置100から応答された実行コードを取得する。実行コード取得部211は、取得した実行コードを実行コード記憶部212に格納する。実行コード記憶部212は、実行コードを記憶する。例えば実行装置200内のRAMなどの主記憶装置またはHDDなどの二次記憶装置の記憶領域の一部が、実行コード記憶部212として使用される。プログラム実行部221は、実行コード記憶部212に格納されている実行コードで表されたプログラムを実行する。またプログラム実行部221は、実行コードの実行時に、実行対象がログ取得命令となった場合、トレースログ生成部222を起動し、トレースログ生成部222に、ログ取得命令のパラ-メータを渡す。その際、プログラム実行部221は、例えばログ取得命令のパラメータが変数であれば、ログ取得命令実行時点でのその変数の値をパラメータとして、トレースログ生成部222に渡す。トレースログ生成部222は、ログ取得命令に応じて呼び出されるログトレース関数の処理を実行する。例えばトレースログ生成部222は、ログトレース関数に従ってトレースログを生成し、生成したトレースログをトレースログ記憶部231に格納する。トレースログ記憶部231は、トレースログを記憶する。例えば実行装置200のRAMなどの主記憶装置またはHDDなどの二次記憶装置の記憶領域の一部が、トレースログ記憶部231として使用される。トレースログ出力部241は、トレースログ記憶部231に格納されているトレースログを出力する。例えばトレースログ出力部241は、解析装置300からの要求に応じて、ネットワーク10を介してトレースログを解析装置300に送信する。解析装置300は、トレースログ取得部311、トレースログ記憶部312、可読化部321、および可読トレースログ記憶部322を有する。トレースログ取得部311は、実行装置200からトレースログを取得する。例えばトレースログ取得部311は、解析担当者からの入力に応じて、実行装置200に対してトレースログの取得要求をネットワーク10経由で送信する。そしてトレースログ取得部311は、取得要求の応答として実行装置200から送信されたトレースログを取得する。トレースログ取得部311は、取得したトレースログをトレースログ記憶部312に格納する。トレースログ記憶部312は、トレースログを記憶する。例えば解析装置300内のRAMなどの主記憶装置またはHDDなどの二次記憶装置の記憶領域の一部が、トレースログ記憶部312として使用される。可読化部321は、トレースログ記憶部312に格納されたトレースログ内のコード化された情報を、人間が理解可能な情報に可読化し、可読トレースログを生成する。例えば、可読化部321は、解析担当者からの入力に応じて、開発装置100からトレースログに示されるコード化された情報に対応する、人間に理解可能な文字列を取得する。例えば可読化部321は、ファイルコードに対応するファイル名の文字列を、開発装置100から取得する。また可読化部321は、トレースログの行番号に基づいて、版数付ソースコード内の該当する行に記載されている固定部文字列を取得する。そして可読化部321は、開発装置100から取得した情報に基づいて、トレースログの可読化を行う。可読化部321は、生成した可読トレースログを、可読トレースログ記憶部322に格納する。可読トレースログ記憶部322は、可読トレースログを記憶する。例えば解析装置300内のRAMなどの主記憶装置またはHDDなどの二次記憶装置の記憶領域の一部が、可読トレースログ記憶部322として使用される。なお、図6に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。なおバージョン管理システム登録部121とバージョン管理システム160とを合わせた機能は、図1に示した版数管理手段1aと記憶装置1bとを合わせた機能の一例である。プログラム実行部221は、図1に示したプログラム実行手段2aの一例である。トレースログ生成部222は、トレースログ生成手段2bの一例である。トレースログ記憶部231は、図1に示した記憶装置2cの一例である。可読化部321は、図1に示したソースコード取得手段3aと文字列追加手段3bとを合わせた機能の一例である。可読トレースログ記憶部322は、図1に示した記憶装置3cの一例である。このようなシステムにおいて、まずプログラマが開発装置100のソースコード編集部111を用いてプログラムのソースコードを編集する。プログラムの編集が完了すると、プログラマは、ソースコード編集部111にファイル名を指定した保存要求を入力する。するとソースコード編集部111により、指定されたファイル名を付与したファイルが作成される。そのファイルには、作成されたソースコードが含まれている。そしてソースコード編集部111により、作成されたファイルがソースコード記憶部112に格納される。図7は、ソースコード記憶部のデータ構造の一例を示す図である。ソースコード記憶部112には、複数のソースコード112a,112bが、ファイル形式で格納される。図7の例では、ソースコード112aが記述されたファイルのファイル名はn1である。またソースコード112bが記述されたファイルのファイル名はn2である。なお図7の例では、ソースコード112a,112bに記述された命令文のうち、ログ取得命令のみを示し、その他の命令文は省略している。例えばログ取得命令は、fという名前の関数ログトレース関数の呼び出し命令である。このログトレース関数の呼び出し命令には、6つのパラメータを設定することができる。パラメータは、左から順に、第1パラメータ、第2パラメータ、第3パラメータ、第4パラメータ、第5パラメータ、第6パラメータである。各パラメータの意味は以下の通りである。第1パラメータ:ファイルの一意なコードファイルコード。idは、ファイルコードへの変換を示す文字列である。idの文字列は、バージョン管理システム登録部121によってファイルコードに置換される。第2パラメータ:行番号。第3パラメータ:ファイルの版数情報。Revは、ファイルの版数情報への変換を示す文字列である。Revの文字列は、バージョン管理システム登録部121によって、ファイルの版数情報に置換される。第4パラメータ:トレースログの固定部文字列。第5パラメータ:トレースログの変数部の出力の書式付き文字列変数部文字列。dは、第6パラメータの値を10進数で出力することを示す。第6パラメータ:第5パラメータに対応する変数。このようなログ取得命令を含むソースコードをプログラマが作成することにより、そのソースコードから生成した実行コードの実行時に、トレースログを取得することができる。なお組込み装置のような記憶媒体が小容量の機器が、実行装置200となる場合もある。そこで第2の実施の形態では、より多くの情報を残すために、一つのトレースログあたりの容量を小さくする工夫がなされている。例えば以下の二つの手段によって、トレースログのデータ量が削減されている。各トレースログの文字列をコード化する。ログの内容を固定部と変数部に分離し、変数部のみを実行環境上に保存する。トレースログの文字列をコード化とは、例えばログ取得命令の第1のパラメータに、トレースログにファイル名ではなく、ファイル名に対応するコードを設定する処理である。またログの内容を固定部と変数部に分離し、変数部のみを実行環境上に保存する処理とは、ログ取得命令の第4パラメータを、トレースログへの保存内容から除外する処理である。ソースコード112a,112bをソースコード記憶部112に格納後、プログラマは、開発装置100に対して、ソースコード112a,112bのバージョン管理システム160への登録を指示する入力を行う。するとバージョン管理システム登録部121は、ソースコード記憶部112内のソースコード112a,112bのログ取得命令第3のパラメータを版数情報に置換し、バージョン管理システム160に登録する。バージョン管理システム160に登録された版数付ソースコードは、版数付ソースコード記憶部162に格納される。図8は、バージョン管理システム内の版数付ソースコード記憶部のデータ構造の一例を示す図である。版数付ソースコード記憶部162には、ソースコード記憶部112に格納された複数のソースコード112a,112bそれぞれに対応する版数付ソースコード162a,162bが格納されている。版数付ソースコード162a,162bは、ログ取得命令の第1パラメータと第3パラメータとが、ソースコード112a,112bと異なっている。版数付ソースコード162a,162bでは、ログ取得命令の第1パラメータが、版数付ソースコード162a,162bを一意に示すファイルコードに変換されている。またログ取得命令の第3パラメータが、版数付ソースコード162a,162bの端数を示す文字列に変換されている。なお図8には、バージョン管理システム160内の版数付ソースコード記憶部162のデータ構造の一例を示したが、版数付ソースコード記憶部122のデータ構造も図8に示したデータ構造と同様である。またバージョン管理システム160内の版数付ソースコード記憶部162については、ソースコードのファイル名が同じ過去の版数の版数付ソースコードがある場合には、その版数付ソースコードとの差分が版数付ソースコード記憶部162に格納される。バージョン管理システム160は、版数付ソースコード記憶部162に格納された版数付ソースコード162a,162bを、版数管理情報記憶部161によって管理している。図9は、バージョン管理システムの版数管理情報記憶部のデータ構造の一例を示す図である。版数管理情報記憶部161には、版数管理情報161aが格納されている。版数管理情報161aは、ファイルコード、ファイル名、および版数履歴の欄が設けられている。ファイルコードの欄には、ファイル名を一意に示すファイルコードが設定される。ファイル名の欄には、ファイルコードに対応する、版数付ソースコードが記述されたファイルのファイル名が設定される。版数履歴の欄には、ファイルコードで示されるファイル名で生成されたファイル内の版数付ソースコードの版数情報が設定される。版数履歴の欄に設定された版数情報それぞれには、ファイル名と版数とが一致する版数付ソースコードが関連付けられている。例えば図9の例では、ファイル名n1に対してファイルコードc1が対応付けられている。ファイル名n1のファイル名で作成された版数付ソースコードには、v11、v12、v13の3つの版数情報が存在する。版数情報は、vの後に続く数値が大きいほど新しい版数を示している。ファイル名と版数情報との組により、1つの版数付ソースコードが一意に関連付けられる。バージョン管理システム160への版数付ソースコードの登録、および版数付ソースコード記憶部122への版数付ソースコードの格納が完了すると、プログラマは、例えば開発装置100に対してマクロ展開を指示する入力を行う。すると、マクロ展開部131は、版数付ソースコード記憶部122に格納されている版数付ソースコードのマクロ展開処理を行う。マクロ展開処理では、例えばログ取得命令内の第2パラメータが、そのログ取得命令が記述された行の行番号に置換される。そして、マクロ展開処理が施された展開済ソースコードが、展開済ソースコード記憶部132に格納される。図10は、展開済ソースコード記憶部のデータ構造の一例を示す図である。展開済ソースコード記憶部132には、版数付ソースコード記憶部122に格納された版数付ソースコード図9に示す版数付ソースコード162a,162bと同じ内容それぞれに対応する展開済ソースコード132a,132bが格納されている。展開済ソースコード132a,132bは、ログ取得命令の第2パラメータが、版数付ソースコード162a,162bと異なっている。展開済ソースコード132a,132bは、ログ取得命令の第2パラメータが行番号に展開されている。例えば展開済ソースコード132aの1行目に記載されているログ取得命令は、第2パラメータが、行番号を示す数値1に変換されている。このような展開済ソースコード132a,132bが実行プログラム作成部141によりコンパイルされ、展開済ソースコード132a,132bそれぞれに対応するオブジェクトファイルが生成される。そして実行プログラム作成部141により、複数のオブジェクトファイルがリンクされ、1つの実行コードが生成される。そして生成された実行コードが、実行コード記憶部142に格納される。実行コード記憶部142に格納された実行コードは、実行コード出力部151により実行装置200に送信される。開発装置100から送信された実行コードは、実行装置200の実行コード取得部211で受信される。実行コード取得部211は、受信した実行コードを実行コード記憶部212に格納する。その後、プログラム実行部221が、例えば実行装置200を使用するユーザからの入力に怖じて、実行コードによって表されたプログラムを実行する。図11は、プログラム実行処理の手順を示すフローチャートである。以下、図11に示す処理をステップ番号に沿って説明する。[ステップS11]プログラム実行部221は、実行コードに記述された命令を上位から順に読み込む。[ステップS12]プログラム実行部221は、読み込んだ命令が、ログ取得命令か否かを判断する。プログラム実行部221は、読み込んだのがログ取得命令であれば処理をステップS14に進める。またプログラム実行部221は、読み込んだのがログ取得命令以外の命令であれば、処理をステップS13に進める。[ステップS13]プログラム実行部221は、読み込んだ命令を実行し、処理をステップS11に進める。[ステップS14]プログラム実行部221は、読み込んだ命令がログ取得命令の場合、ログ取得命令の第6パラメータに示される変数の現在の値を取得し、変数部文字列S1の文字列dに代えて、取得した変数の値を設定する。この際、トレースログ生成部222は、変数部文字列dに示される書式この例では10進数で変数の値を設定する。[ステップS15]プログラム実行部221は、ログトレース関数の呼び出しを行う。ログトレース関数の呼び出しにより、トレースログ生成部222が起動される。このとき、プログラム実行部221は、ログ取得命令に設定されているパラメータを、トレースログ生成部222に引き渡す。[ステップS16]トレースログ生成部222は、ログ取得命令の第1、第2、第3、第5パラメータを取得する。例えばトレースログ生成部222は、ログ取得命令で示された第1パラメータのファイルコードを取得する。以下、取得したファイルコードをC1とする。またトレースログ生成部222は、ログ取得命令で示された第2パラメータの行番号を取得する。以下、取得した行番号をL1とする。またトレースログ生成部222は、ログ取得命令で示された第3パラメータの版数情報を取得する。以下、取得した版数情報をV1とする。またトレースログ生成部222は、ログ取得命令で示された第5パラメータの変数部文字列を取得する。以下、取得した変数部文字列をS1とする。[ステップS17]トレースログ生成部222は、ファイルコードC1、版数情報L1、行番号V1、変数部文字列S1を1つのレコードR1として連結する。[ステップS18]トレースログ生成部222は、レコードR1をトレースログ記憶部231に追加保存する。[ステップS19]プログラム実行部221は、実行コードで示されるプログラムが終了したか否かを判断する。プログラム実行部221は、プログラムが終了した場合、プログラム実行処理を終了する。プログラム実行部221は、プログラムが終了していなければ、処理をステップS11に進める。このようにして、実行コードで表されたプログラムの実行に伴って、トレースログが採取される。図12は、トレースログのデータ構造の一例を示す図である。なお図12では、実行コード212aを実行した場合のトレースログ231aが示されている。図12に示す実行コード212aには、展開済ソースコード132a,132b内の命令文に基づいて生成された複数の命令が、実行装置200のCPUが解釈可能な機械語で記述されている。最初の命令命令1は、ファイル名n1の展開済ソースコードの1行目のログ取得命令に対応する機械語の命令である。命令命令1の実行により、変数va1の値11が取得されている。2つめの命令命令2は、ファイル名n2の展開済ソースコードの1行目のログ取得命令に対応する機械語の命令である。命令命令2の実行により、変数va3の値33が取得されている。3つめの命令命令3は、ファイル名n2の展開済ソースコードの2行目のログ取得命令に対応する機械語の命令である。命令命令3の実行により、変数va4の値44が取得されている。4つめの命令命令4は、ファイル名n1の展開済ソースコードの2行目のログ取得命令に対応する機械語の命令である。命令命令4の実行により、変数va2の値22が取得されている。このような実行コード212aが実行されることで、トレースログ記憶部231にトレースログ231aが格納される。トレースログ231aは、ファイルコード、行番号、版数情報、変換部文字列などの欄が設けられている。ファイルコードの欄には、ログ取得命令の第1パラメータで示されたファイルコードが設定される。行番号の欄には、ログ取得命令の第2パラメータで示された行番号が設定される。版数情報の欄には、ログ取得命令の第3パラメータで示された版数情報が設定される。変数部文字列の欄には、ログ取得命令の実行により取得された変数の値が設定される。このように、トレースログ231aに版数情報を含めることで、トレースログ231a内に各レコードを取得時に実行されていたプログラムのソースコードの版数が判別可能となる。その結果、トレースログ231aに基づくプログラムの動作状況の解析の容易化が可能である。例えば、トレースログ231aに対して、ソースコードに基づいて文字列を追加し、人が容易に理解できるようにすることで、解析作業者による動作状況の把握が容易となる。トレースログ記憶部231の解析は、例えば解析装置300で行われる。その場合、トレースログ記憶部231に格納されたトレースログ231aが、トレースログ出力部241により解析装置300に送信される。解析装置300では、トレースログ取得部311が、実行装置200から送られたトレースログ231aを取得する。トレースログ取得部311が取得したトレースログ231aは、トレースログ記憶部312に格納される。その後、可読化部321によって、トレースログ231aの可読化処理が行われる。図13は、可読化処理を示す図である。可読化部321は、トレースログ231aの可読化に際し、版数管理情報161aと版数付ソースコード162a,162bを、開発装置100から取得する。可読化部321は、トレースログ231aから各レコードのファイルコードと版数情報との組を抽出する。そして可読化部321は、トレースログ231aから抽出したファイルコードに対応するファイル名を、版数管理情報161aから取得する。さらに可読化部321は、取得したファイル名の版数付ソースコードのうち、トレースログ231aから抽出したファイルコードに対応する版数情報で示された版数の版数付ソースコードを参照する。そして可読化部321は、該当する版数付ソースコードから固定部文字列を取得する。可読化部321は、トレースログ231a内のレコードに含まれるファイルコードを、版数管理情報161aから取得したファイル名に置換する。また可読化部321は、トレースログ231a内のレコードに、版数付ソースコードから取得した固定部文字列を追加する。そして可読化部321は、変更を加えた後のレコードを、可読トレースログ記憶部322に格納する。その結果、可読トレースログ記憶部322には、人間が理解可能な記述による可読トレースログ322aが格納される。図13の例では、可読トレースログ322aには、ファイル名、行番号、固定部文字列、および変数部文字列を含むレコードが登録されている。例えば可読トレースログ322aの最初のレコードn1:1:s111は、ファイル名n1、行番号1、固定部文字列s1、変数部文字列11という情報を表している。次に可読化処理の手順について、詳細に説明する。図14は、可読化処理の手順を示すフローチャートである。以下、図14に示す処理をステップ番号に沿って説明する。[ステップS21]可読化部321は、トレースログ記憶部312の先頭のレコード格納領域を処理対象の位置とする。[ステップS22]可読化部321は、処理対象の位置にレコードが登録されているか否かを判断する。可読化部321は、処理対象の位置にレコードが登録されていれば、処理をステップS23に進める。また可読化部321は、処理対象の位置にレコードが登録されていなければ、可読化処理を終了する。[ステップS23]可読化部321は、処理対象の位置に登録されているレコードを抽出する。抽出したレコードをR1とする。[ステップS24]可読化部321は、レコードR1からファイルコードC1を抽出する。また可読化部321は、レコードR1から版数情報V1を抽出する。また可読化部321は、レコードR1から行番号L1を抽出する。さらに可読化部321は、レコードR1から変数部文字列S1を抽出する。[ステップS25]可読化部321は、ファイルコードC1に対応するファイル名を取得する。以下、取得したファイル名をN1とする。例えば可読化部321は、ファイルコードC1を指定して、開発装置100のバージョン管理システム160に対してファイル名の取得要求を送信する。するとバージョン管理システム160は、版数管理情報161a図9参照から、ファイルコードC1と一致するファイルコードを検索し、該当するファイルコードに対応するファイル名N1を取得する。そしてバージョン管理システム160は、取得したファイル名N1を解析装置300に送信する。可読化部321は、開発装置100から送られたファイル名N1を取得する。[ステップS26]可読化部321は、ファイル名N1と版数情報V1との組に対応する版数付ソースコードを取得する。以下、取得した版数付ソースコードをSR1とする。例えば可読化部321は、ファイル名N1と版数情報V1との組を指定して、開発装置100のバージョン管理システム160に対して版数付ソースコードの取得要求を送信する。するとバージョン管理システム160は、版数付ソースコード記憶部162から、指定されたファイル名N1と版数情報V1との組に対応する版数付ソースコードSR1を取得する。そしてバージョン管理システム160は、取得した版数付ソースコードSR1を解析装置300に送信する。可読化部321は、開発装置100から送られた版数付ソースコードSR1を取得する。[ステップS27]可読化部321は、取得した版数付ソースコードSR1から、行番号L1のログ取得命令トレースログ関数の呼び出し命令を取得する。以下、取得したログ取得命令をF1とする。[ステップS28]可読化部321は、ログ取得命令F1の固定部文字列を取得する。以下、取得した固定部文字列をS2とする。例えば可読化部321は、ログ取得命令F1の第4パラメータを固定部文字列S2として取得する。[ステップS29]可読化部321は、ファイル名N1、版数情報V1、行番号L1、固定部文字列S2、変数部文字列S1を連結して、1つのレコードとする。以下、データの連結により生成されたレコードを、R2とする。[ステップS30]可読化部321は、レコードR2を、可読トレースログ322aに追加格納する。[ステップS31]可読化部321は、トレースログ231aにおける処理対象の位置を、次のレコード格納領域に移動する。その後、可読化部321は、処理をステップS22に進める。このようにして、トレースログ231aに登録されている各レコードの内容を、人間が理解可能なように可読化することができる。しかも各トレースログに、そのトレースログに対応するログ取得命令が記述されていたソースコードの版数が示されているため、複数版数のソースコードが存在していても、正しい版数のソースコードから固定部文字列を取得できる。以下、具体例を用いて、第2の実施の形態の処理によるトレースログの採取、およびトレースログ可読化の過程を説明する。図15は、ソースコードの一例を示す図である。図15に示すソースコード21は、ファイル名File1cのファイルに保存されている。またソースコード22は、ファイル名File2cのファイルに保存されている。これらのファイルが、ソースコード編集部111で作成され、ソースコード記憶部112に格納される。図15の例では、トレースログ関数の関数名は、trace_logである。ソースコード21は、6行目と9行目に、トレースログ関数の呼び出し命令ログ取得命令が記述されている。ソースコード22も、6行目と9行目に、トレースログ関数の呼び出し命令ログ取得命令が記述されている。ソースコード21,22は、バージョン管理システム160に登録される際に、バージョン管理システム登録部121により、ログ取得命令内の第3パラメータが版数情報に置換される。図16は、版数付ソースコードの一例を示す図である。版数付ソースコード31,32では、図15に示したソースコード21,22のログ取得命令における第1パラメータが、ファイル名に一意に対応付けられたファイルコードに置き換えられている。例えば版数付ソースコード31では、トレースログ関数trace_logの第1パラメータに、ファイル名File1に対応するファイルコード0x01234567が設定されている。また版数付ソースコード32では、トレースログ関数trace_logの第1パラメータに、ファイル名File2に対応するファイルコード0x89abcdefが設定されている。また版数付ソースコード31,32では、図15に示したソースコード21,22のログ取得命令における第3パラメータが、版数情報に置き換えられている。例えば版数付ソースコード31では、トレースログ関数trace_logの第3パラメータに、版数情報111が設定されている。また版数付ソースコード32では、トレースログ関数trace_logの第3パラメータに、版数情報222が設定されている。このような版数付ソースコード31,32は、バージョン管理システム160に登録されると共に、版数付ソースコード記憶部122に格納される。バージョン管理システム160では、版数付ソースコード31,32の登録に応じて、版数管理情報161aを更新する。図17は、版数管理情報の一例を示す図である。版数管理情報161aには、登録された版数付ソースコード31,32の版数情報が、版数履歴欄に登録されている。版数付ソースコード記憶部122に格納された版数付ソースコード31,32は、マクロ展開部131により行番号が展開され、展開済ソースコードとされる。図18は、展開済ソースコードの一例を示す図である。展開済ソースコード41,42では、版数付ソースコード31,32内の各トレースログ関数trace_logの第2パラメータが、そのトレースログ関数が記述された行の行番号に置換されている。例えば展開済ソースコード41では、6行目のトレースログ関数trace_logの第2パラメータに6が設定され、9行目のトレースログ関数trace_logの第2パラメータに9が設定されている。生成された展開済ソースコード41,42は、展開済ソースコード記憶部132に格納される。展開済ソースコード41,42は、実行プログラム作成部141によって実行コードに変換される。そして生成された実行コードが実行装置200に渡され、プログラム実行部221で実行される。するとプログラム実行部221内のトレースログ生成部222によりトレースログが取得される。図19は、実行コードから取得したトレースログの一例を示す図である。展開済ソースコード記憶部132に格納された展開済ソースコード41,42に基づいて実行プログラム作成部141によって生成された実行コード51は、まず実行コード記憶部142に格納される。実行コード記憶部142に格納された実行コード51は、開発装置100内の実行コード出力部151から実行装置200内の実行コード取得部211に渡され、実行コード記憶部212に格納される。そして実行コード記憶部212に格納された実行コード51が、プログラム実行部221によって実行される。このとき実行コード51は、展開済ソースコード41,42内のログ取得命令を機械語に翻訳した命令が含まれている。これらのプログラム実行部221では、これらの命令を実行する際には、ログトレース関数が呼び出され、ログトレース関数の処理を実行するトレースログ生成部222が起動される。そしてトレースログ生成部222により、トレースログ52が生成される。図19の例では、実行コード51内の命令1は、展開済ソースコード41の6行目のログ取得命令を機械語に翻訳したものである。この命令の実行により、例えば変数param1の値10が取得される。実行コード51内の命令2は、展開済ソースコード42の6行目のログ取得命令を機械語に翻訳したものである。この命令の実行により、例えば変数param2の値30が取得される。実行コード51内の命令3は、展開済ソースコード42の9行目のログ取得命令を機械語に翻訳したものである。この命令の実行により、例えば変数ret2の値40が取得される。実行コード51内の命令4は、展開済ソースコード41の9行目のログ取得命令を機械語に翻訳したものである。この命令の実行により、例えば変数ret1の値20が取得される。トレースログ生成部222は、ログ取得命令の実行によって取得した情報を、トレースログ52に登録する。図19の例では、時刻情報、ファイルコード、行番号、版数情報、および変数部文字列の欄を有するトレースログ52が生成されている。このトレースログ52は、図12に示したトレースログ231aに対して、時刻情報の欄が追加されている。時刻情報の欄には、変数部文字列を取得した時刻が設定される。生成されたトレースログ52は、トレースログ記憶部231に格納される。図20は、トレースログの可読化の一例を示す図である。トレースログ記憶部231に格納されたトレースログ52は、実行装置200内のトレースログ出力部241から、解析装置300内のトレースログ取得部311に渡され、トレースログ記憶部312に格納される。可読化部321は、トレースログ52の各レコードのファイルコードから、実行コード51の作成に使用された版数付ソースコード31,32のファイル名を認識する。また可読化部321は、トレースログ52の各レコードのファイルコードに対応するファイル名と、そのレコードの版数情報との組に基づいて、実行コード51の作成に使用された版数の版数付ソースコード31,32を判断する。そして可読化部321は、トレースログ52内の各レコードの行番号に基づいて、そのレコードに対応するログ取得命令を判断し、そのログ取得命令の第4パラメータから固定部文字列を取得する。可読化部321は、トレースログ52の各レコードのファイルコードをファイル名に変換する。さらに可読化部321は、各レコードに固定部文字列を追加することで、可読トレースログ53を生成する。生成された可読トレースログ53は、可読トレースログ記憶部322に格納される。このように、生成された可読トレースログ53には、実行装置200で実行された実行コード51の生成元となったソースコードのファイル名と版数情報とが示されている。これにより、解析装置300のユーザが可読トレースログ53を参照すれば、複数の版数が混在するソースコードの中から、実行装置200で実行された実行コード51に対応するソースコードを判断できる。また、可読トレースログ53には、固定部文字列が含まれているため、解析装置300のユーザは、変数部文字列で示される値の意味内容を視覚的に容易に認識することができる。さらに、トレースログ52に版数情報が含まれていることにより、同じファイル名の版数の異なる複数のソースコードの中から、トレースログ52に対応するソースコードを一意に決定することができる。そして、対応するソースコードに基づいて、トレースログへのファイルコードからファイル名への変換や、固有部文字列の挿入が可能となる。しかも、第2の実施の形態では、開発装置100内のバージョン管理システム160が有する情報を用いて、トレースログの可読化を行うため、解析装置300において、ソースコード内のログ取得命令の固定部文字列のリストなどの情報を保持しておかずにすむ。その結果、解析装置300のHDDなどの記憶領域の効率的な利用が可能となる。上記のようなシステムにおいて、実行装置200は、例えば製品出荷されたCPU組み込み型の機器組み込み機器である。このような組み込み機器では、機能拡張などの理由で、内蔵のCPUに実行させるプログラムを更新する場合がある。プログラムの更新により、ある時期からプログラムの版数が更新されると、組み込み機器が保存しているトレースログには、異なる版数のプログラムから採取されたレコードが混在する。このような組み込み機器の動作不良などにより原因を究明する場合、トレースログを参照することとなる。このとき第2の実施の形態に示す解析装置300を用いて解析することで、トレースログ内の個々のレコードが、どの版数のプログラムに基づいて採取されたのかを判断できる。その結果、例えば何らかの動作不良が、どの版数のプログラムで生じた事象なのかを判断することができる。これにより、解析の効率化を図ることができる。また、ソフトウェアの開発段階のデバックのために、実行装置200にプログラムを実行させる場合もある。ソフトウェアの開発段階では、プログラムの内容に少しずつ改良を加え、適宜デバック処理が行われる。例えばソフトウェアのバージョンアップを繰り返しながら、その都度、実行環境でソフトウェアを実行させ、異なるバージョンのソフトウェアそれぞれのトレースログを取得することがある。このような場合であっても、第2の実施の形態によれば、各トレースログを取得したときのソフトウェアの版数を識別し、人間が解読可能な情報に正しく変更することができる。これにより、デバッグ作業の効率化を図ることができる。第3の実施の形態次に第3の実施の形態について説明する。第3の実施の形態は、可読トレースログを単なるテキストデータではなく、マークアップ言語によって表現することによって、強調したい項目を目立たせて表示させるものである。なお第3の実施の形態では、図6に示す各装置の機能に加え、解析装置300内に閲覧部が設けられる。閲覧部は、マークアップ言語で記述された可読トレースログに基づいて画面表示用のデータを作成し、可読トレースログの内容を画面表示する。図21は、第3の実施の形態の可読トレースログの一例を示す図である。図21の例では、図20に示した第2の実施の形態の可読トレースログ53の内容のうち、変数部文字列を強調した例である。第3の実施の形態では、可読化部321は、可読トレースログ61をHTMLHyperTextMarkupLanguage形式で作成している。そして可読化部321は、強調表示を示すstrongタグで変数部文字列を囲んだ可読トレースログ61を生成している。このようなHTML形式の可読トレースログ61を、HTMLに対応する閲覧部331により表示することで、表示画面62では、変数部文字列が強調表示される。閲覧部331としては、例えばWebブラウザを用いることができる。このように、重要な部分の強調表示を行うことで、可読トレースログ61の内容を、より把握しやすくなる。第4の実施の形態次に第4の実施の形態について説明する。第4の実施の形態は、可読トレースログをHTMLなどのハイパーリンク機能を有する言語で表現し、リンク先としてソースコードを指定したものである。これにより任意のトレースログ行をクリックすると、そのクリックしたログを出力しているソースコードのファイルを表示することが可能となる。図22は、第4の実施の形態の可読トレースログの一例を示す図である。図22の例は、図20に示した第2の実施の形態の可読トレースログ53の内容のうち、変数部文字列を強調すると共に、各行に対して、ソースコードへのハイパーリンクを設定したものである。第4の実施の形態では、可読化部321は、可読トレースログ71をHTML形式で作成している。そして可読化部321は、強調表示を示すstrongタグで変数部文字列を囲むと共に、各行をアンカータグで囲んだ可読トレースログ71を生成している。各行のアンカータグには、ファイル名と版数情報との組に対応する版数付ソースコードの位置情報として、URLUniformResourceLocatorが設定されている。例えば可読化部321は、開発装置100から版数付ソースコード記憶部162内の版数付ソースコード、またはソースコード記憶部112内のソースコードのURLを取得し、可読トレースログ71に設定する。このような可読トレースログ71が閲覧部331によって表示される。表示画面72では、変数部文字列が強調表示されると共に、各行に、ハイパーリンクの存在を示すアンダーラインが表示されている。例えばマウスポインタ73により、表示画面72内のいずれかの行が選択されると、閲覧部331は、アンカータグに設定されたURLに基づいて、開発装置100内のソースコード記憶部112から、対応するソースコードを取得する。そして閲覧部331は、取得したソースコードの内容を表示画面74に表示する。このようにして、開発装置100内のソースコードに容易にアクセスすることができる。なお、図22の例では、ファイルコードや版数情報の展開を行う前のソースコードを表示しているが、バージョン管理システム160内の版数付ソースコードを表示するようにしてもよい。また展開済ソースコードを表示するようにしてもよい。第5の実施の形態次に第5の実施の形態について説明する。第5の実施の形態は、ログトレース関数に指定する、バージョン管理システムによって展開される情報Id、Revを、あらかじめマクロ定義化しておくものである。図23は、第5の実施の形態のソースコードの例を示す図である。ソースコード81,82では、defineによって、defineIDIdとdefineREVRevと定義している。この文の、IdとRevとは、第2の実施の形態と同様にバージョン管理システム登録部121によって展開される。その結果、版数付ソースコード83,84が生成される。版数付ソースコード83では、Idがファイル名File1に一意に対応付けられたファイルコード0x01234567に置き換えられ、Revがソースコード81の版数情報111に置き換えられている。また版数付ソースコード84では、Idがファイル名File2に一意に対応付けられたファイルコード0x89abcdefに置き換えられ、Revがソースコード82の版数情報222に置き換えられている。このようにマクロ定義化されたログトレース関数内のキーワードは、コンパイル時のプリプロセッサによって、Id、Revの置換後の値に展開される。このようにして、第2の実施の形態と同様の実行コードを得ることができる。その他の実施の形態上記第2の実施の形態では、開発装置100と解析装置300を別の装置としているが、開発装置100と解析装置300との両方の機能を、1つの装置に統合することもできる。なお、上記の各実施の形態に示した処理機能は、コンピュータによって実現することができる。その場合、情報処理装置1~3、開発装置100、実行装置200、および解析装置300が有する機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置HDD、フレキシブルディスクFD、磁気テープなどがある。光ディスクには、DVD、DVD-RAM、CD-ROM/RWなどがある。光磁気記録媒体には、MOMagnetoOpticaldiscなどがある。プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD-ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。また、上記の処理機能の少なくとも一部を、DSPDigitalSignalProcessor、ASICApplicationSpecificIntegratedCircuit、PLDProgrammableLogicDeviceなどの電子回路で実現することもできる。以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成特徴を組み合わせたものであってもよい。以上の実施の形態に開示された技術には、以下の付記に示す技術が含まれる。付記1プログラムのソースコードが記述されたファイルの識別情報、該ソースコードの版数情報、および変数が設定されたログ取得命令を含むプログラムを実行し、ログ取得命令の実行段階になると、実行段階になったログ取得命令に設定された変数の値を取得するプログラム実行手段と、前記実行段階になったログ取得命令に設定されたファイルの識別情報と版数情報、および前記プログラム実行手段が取得した変数の値を含むトレースログを生成し、記憶装置に格納するトレースログ生成手段と、を有することを特徴とする情報処理装置。付記2ログ取得命令には、ソースコード内において前記ログ取得命令が記述された行の行番号が設定されており、前記トレースログ生成手段は、前記実行段階になったログ取得命令に含まれている行番号を含むトレースログを生成することを特徴とする付記1記載の情報処理装置。付記3プログラムのソースコードが記述されたファイルの識別情報、該ソースコードの版数情報、および変数の値を含むトレースログに基づいて、該ファイルの識別情報と該版数情報との組に対応するソースコードを取得するソースコード取得手段と、トレースログに基づいて取得されたソースコードから、該トレースログに関連する文字列を抽出し、該抽出した文字列を該トレースログに追加し、該文字列を追加したトレースログを記憶装置に格納する文字列追加手段と、を有することを特徴とする情報処理装置。付記4トレースログに含まれるファイルの識別情報は、ソースコードが記述されたファイルに一意に対応付けられた符号であり、前記ソースコード取得手段は、ソースコードが記述されたファイルのファイル名と、該ファイルに一意に対応付けられた符号との対応関係が登録された管理情報に基づいて、トレースログに含まれる符号に対応するファイル名を判断し、該ファイル名と該トレースログに含まれる版数情報との組に対応するファイルからソースコードを取得する、ことを特徴とする付記3記載の情報処理装置。付記5ファイルに一意に対応付けられた符号は、該ファイルのファイル名よりも少ないデータ量であることを特徴とする付記4記載の情報処理装置。付記6前記文字列追加手段は、トレースログに含まれる符号に対応するファイル名を、該トレースログに追加することを特徴とする付記4または5のいずれかに記載の情報処理装置。付記7トレースログには、ソースコード内においてログ取得命令が記述された行の行番号が含まれており、前記文字列追加手段は、トレースログに基づいて取得されたソースコード内の、該トレースログに含まれる行番号で示される行に記述されているログ取得命令から、該トレースログに関連する文字列を抽出する、ことを特徴とする付記3乃至6のいずれかに記載の情報処理装置。付記8前記文字列追加手段は、トレースログに含まれる変数の値に関連する文字列を抽出する、ことを特徴とする付記3乃至7のいずれかに記載の情報処理装置。付記9前記文字列追加手段は、ソースコードから抽出した文字列を追加したトレースログの内容をマークアップ言語によって記述したファイルを、前記記憶装置に格納することを特徴とする付記3乃至8のいずれかに記載の情報処理装置。付記10前記文字列追加手段は、ソースコードから抽出した文字列を追加したトレースログ内の変数の値を強調表示させる記述を、ソースコードから抽出した文字列を追加したトレースログの内容を記述したファイルに追加することを特徴とする付記9記載の情報処理装置。付記11前記文字列追加手段は、ソースコードから抽出した文字列を追加したトレースログに対して、該ソースコードへのハイパーリンクを追加することを特徴とする付記9または10のいずれかに記載の情報処理装置。付記12第1の情報処理装置が、プログラムのソースコードが記述されたファイルの識別情報、該ソースコードの版数情報、および変数が設定されたログ取得命令を含むプログラムを実行し、ログ取得命令の実行段階になると、実行段階になったログ取得命令に設定された変数の値を取得し、前記実行段階になったログ取得命令に設定されたファイルの識別情報と版数情報、および取得した変数の値を含むトレースログを生成し、生成したトレースログを第1の記憶装置に格納し、第2の情報処理装置が、前記第1の記憶装置に格納されたトレースログに基づいて、該トレースログに含まれるファイルの識別情報と版数情報との組に対応するソースコードを取得し、トレースログに基づいて取得されたソースコードから、該トレースログに関連する文字列を抽出し、該抽出した文字列を該トレースログに追加し、文字列を追加したトレースログを第2の記憶装置に格納する、ことを特徴とするトレースログ取得方法。付記13第3の情報処理装置が、プログラムのソースコードに含まれるログ取得命令に、該ソースコードが記述されたファイルのファイル名に一意に対応付けられた符号を該ファイルの識別情報として設定すると共に、該ソースコードの版数情報を該ログ取得命令に設定し、前記第3の情報処理装置が、ソースコードが記述されたファイルのファイル名、該ファイル名に対応する符号、および該ソースコードの版数情報を有する管理情報を、該ソースコードが記述されたファイルに関連付けて、第3の記憶装置に格納し、前記第1の情報処理装置は、ファイル名に一意に対応付けられた符号が、ファイルの識別情報として設定されたログ取得命令を含むプログラムを実行し、前記第2の情報処理装置は、前記第3の記憶装置に格納された管理情報に基づいて、トレースログに含まれる符号に対応するファイル名を判断し、該ファイル名と該トレースログに含まれる版数情報とを含む管理情報に関連付けられたファイルから、ソースコードを取得する、ことを特徴とする付記12記載のトレースログ取得方法。"