JP2008158634A - 情報処理装置、ソフトウェアトレースデータ記録方法及びソフトウェアトレースデータ記録プログラム - Google Patents

情報処理装置、ソフトウェアトレースデータ記録方法及びソフトウェアトレースデータ記録プログラム Download PDF

Info

Publication number
JP2008158634A
JP2008158634A JP2006344289A JP2006344289A JP2008158634A JP 2008158634 A JP2008158634 A JP 2008158634A JP 2006344289 A JP2006344289 A JP 2006344289A JP 2006344289 A JP2006344289 A JP 2006344289A JP 2008158634 A JP2008158634 A JP 2008158634A
Authority
JP
Japan
Prior art keywords
trace data
trace
output
program
data
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
JP2006344289A
Other languages
English (en)
Inventor
Katsuyuki Tanaka
勝行 田中
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2006344289A priority Critical patent/JP2008158634A/ja
Publication of JP2008158634A publication Critical patent/JP2008158634A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】異常なイベントが発生したり、ある特定のプログラムを実行しても、その後のトレースデータを保持することができる。
【解決手段】情報処理装置は、プログラムに対応したトレースIDを含むトレースデータを記憶する情報処理装置であって、トレースデータを記憶するトレースデータ記憶手段と、記憶しているトレースデータを外部に出力するか否かを表示する出力フラグ表示手段とを備える共に、出力フラグ表示手段によってトレースデータを外部に出力する場合、全てのトレースデータを出力すると共に、出力した全てのトレースデータ数をカウントするトレースデータカウント手段と、カウントされた全てのトレースデータ数と設定された閾値と比較する閾値判定手段とを更に備える。これにより、トレースデータカウント手段によってカウントされた全てのトレースデータ数が、設定された閾値に到達するまで、トレースデータを出力する。
【選択図】図2

Description

本発明は、情報処理装置、ソフトウェアトレースデータ記録方法及びソフトウェアトレースデータ記録プログラムに関し、特に、長時間経た後でもトレースデータが書き消されることなく参照できる情報処理装置、ソフトウェアトレースデータ記録方法及びソフトウェアトレースデータ記録プログラムに関する。
従来、ソフトウェアのトレース記録装置やトレースデータ記録方法では、ソフトウェアのトレースポイントにおいて、トレースの種別、タイムスタンプ及び固有情報等から構成されたトレースデータを、トレースメモリ領域の先頭から順番に記録していた。
そして、そのトレースデータを記録するトレースメモリ領域がなくなると、トレースメモリ領域の先頭から再び記録していくようになっていた。
このため、ソフトウェアの実行履歴であるトレースデータをトレースメモリ領域に記録する従来のシステムでは、トレースデータ領域を再利用してデータを記録するため、古いデータから順次消去(上書き)されてしまい、長時間前のトレースデータを参照することが困難であった。
また、ある異常なシーケンスが実行された場合や、ある特定のトレースポイントが実行された場合にも同様に、その前後のトレースデータを参照しようとしても、古いトレースデータはその後のトレースデータに書き消されてしまい、参照することができないという問題が発生していた。
そこで、先行技術として、トレースデータログ情報に関するものが、特許文献1乃至6に記載されている。
特開平9−305434号公報 特開2004−30505号公報 特開2002−215431号公報 特開平01−026244号公報 特開平04−178842号公報 特開平09−305431号公報
しかしながら、特許文献1乃至6に記載されたものでは、異常のイベントが発生した場合に、その異常が発生した記憶領域にあるトレースデータを、外部に出力する旨が記載されているものの、出力されたトレースデータが上書きされて書き消されてしまい、デバッグをすることができないという問題があった。
本発明は、上記問題点に鑑みてなされたものであり、異常なイベントが発生したり、ある特定のプログラムを実行しても、その後のトレースデータを保持することができる情報処理装置、ソフトウェアトレースデータ記録方法及びソフトウェアトレースデータ記録プログラムを提供することを目的とする。
本発明にかかる情報処理装置は、プログラムに対応したトレースIDを含むトレースデータを記憶する情報処理装置であって、前記トレースデータを記憶するトレースデータ記憶手段と、記憶している前記トレースデータを、外部に出力するか否かについて表示する出力フラグ表示手段と、前記出力フラグ表示手段によって前記トレースデータを外部に出力する場合に、前記トレースデータ記憶手段に記憶されている、全てのトレースデータを出力すると共に、出力した前記全てのトレースデータ数をカウントするトレースデータカウント手段と、前記トレースデータカウント手段によってカウントされた前記全てのトレースデータ数と、任意に設定された閾値と比較する閾値判定手段と、を備え、前記トレースデータカウント手段によってカウントされた前記全てのトレースデータ数が、前記任意に設定された閾値に到達するまで、前記トレースデータを出力することを特徴とする。
また本発明にかかる情報処理装置は、前記出力フラグ表示手段によって前記トレースデータを外部に出力する場合には、前記トレースデータ記憶手段に記憶されている、前記全てのトレースデータを外部に出力すると共に、当該トレースデータ記憶手段に記憶されている前記全てのトレースデータを消去するようにしても良い。
また本発明にかかる情報処理装置は、前記トレースデータを記憶する関連トレースデータ記憶手段と、前記トレースIDに関連付けられたプログラムがある場合に、当該関連付けられたプログラムに対応するトレースデータを前記関連トレースデータ記憶手段に記憶して、前記関連トレースデータ記憶手段から外部に出力すると共に、前記関連トレースデータ記憶手段から出力した全てのトレースデータ数をカウントする関連トレースデータカウント手段と、前記関連トレースデータカウント手段によってカウントされた前記全てのトレースデータ数と、任意に設定された関連用閾値と比較する関連閾値判定手段と、を更に備え、前記関連トレースデータカウント手段によってカウントされた前記全てのトレースデータ数が、前記任意に設定された関連用閾値に到達するまで、前記関連付けられたプログラムに対応するトレースデータを出力するようにしても良い。
また本発明にかかる情報処理装置は、プログラムを実行することによって発生するトレースポイントIDの発生率を算出する発生率算出手段を更に備え、当該トレースポイントIDの発生率が、任意に設定された発生率用閾値より少ない場合には、前記出力フラグ表示手段によって前記全てのトレースデータを外部に出力するようにしても良い。
また本発明にかかる情報処理装置は、前記トレースIDの種別を判断するトレースID種別判断手段を更に備え、当該トレースID種別判別手段は、前記トレースIDの種別に基づいて、当該トレースIDの種別が受信データ又は送信データの場合には、当該トレースデータが備える付加情報を、前記受信データ又は送信データから算出される計算値に置き換えるようにしても良い。
本発明によれば、メモリ上にトレースデータを記録しておき、必要なトレースポイントが実行された時だけ、トレースデータを外部に出力して外部記憶装置に記録することができる。これにより、トレースデータを記録するファイル容量を減らすと共に、ファイルIOの負荷を軽減することができるので、かくして、異常なイベントが発生したり、ある特定のプログラムを実行しても、その後のトレースデータを保持することができる情報処理装置、ソフトウェアトレースデータ記録方法及びソフトウェアトレースデータ記録プログラムを実現できる。
次に、本発明の実施の形態の構成について図面を参照して詳細に説明する。
(1)トレースデータ記録方法を備えた情報処理装置の構成
図1を参照すると、本発明における第1の実施の形態としての情報処理装置は、プログラム1と、通信制御装置104と、トレース機能部105と、トレース機能部105を制御するトレース制御プログラム106と、記憶装置107と、トレースデータを保存する外部記憶装置108とを備えている。
そして、プログラム1は、アプリケーションプログラム100と、ライブラリプログラム101と、プロトコルプログラム102と、通信制御装置ドライバ103とを備えている。
また、記憶装置107は、プログラム1に設けられたアプリケーションプログラム100から通信制御装置ドライバ103までの各プログラムのトレースデータを、プログラム毎に記録するトレースデータ記憶部109と、トレースIDを記録するトレースID記憶部110とを備えている。
次に、プログラム1に設けられたプログラムについて、動作に伴い対応する構成を詳述し、同一の構成には同一の符号を付し、別途、動作の説明を行う箇所については、異なる符号を付すこととする。
図2は、プログラム1に含まれた任意のあるプログラムについて、対応する構成を示したものである。ここでは、プログラム1に含まれる任意のあるプログラムをプログラムN200として説明する。
図2は、通常動作において、プログラムN200毎に設けられた、記憶装置208内のトレースデータ記憶部(プログラムN用)206にトレースデータを記録しておき、プログラムN200内の特定のトレースポイントが実行された場合だけ、トレースデータ記憶部206に記録された全てのトレースデータを、磁気記録装置などの外部記憶装置108に記録する構成を実現し、説明するための説明図である。
図2を参照すると、プログラムN200と、トレース制御プログラム106と、外部記憶装置108と、トレース機能部207と、記憶装置208とを備えている。
そして、トレース機能部207は、トレースID記録部201と、トレース処理部202と、トレースID比較部203と、トレースデータ出力部204とを備えている。
また、記憶装置208は、トレースID記憶部205と、トレースデータ記憶部206(プログラムN用)とを備えている。
これらの各部の構成は、それぞれ次のように動作する。
トレースID記録部201は、プログラムN200内の或る特定のトレースポイントが実行された時であって、その前後に記録されたトレースデータを外部記憶装置108に保存したい場合には、まず、トレース機能部207を制御するトレース制御プログラム106から、そのトレースポイントを識別するトレースID402が入力され、そのトレースID402をトレースID記憶部205に記録する。
次に、トレース処理部202は、プログラムN200に予め記述されたトレース出力命令が実行されることによって動作し、トレースID402を含むトレースデータを、トレースデータ記憶部(プログラムN用)206に記録する。
そして、トレースID比較部203は、トレース出力命令のトレースデータ内のトレースID402と、トレースID記憶部205に記録されたトレースID一覧502とを比較し、トレースID402と同一のトレースIDがトレースID記憶部205に記録されていた場合には、トレースデータ記憶部(プログラムN用)206に記録された全てのトレースデータをトレースデータ出力部204に外部記憶装置108へ出力することを指示する。
これに対し、トレースID比較部203は、トレースID402がトレースID記憶部205に記録されたトレースIDと一致しない場合には、トレースデータ出力部204にトレースデータを外部記憶装置108へ出力する旨の指示はしない。
トレースデータ出力部204は、トレースID比較部203からの指示により、トレースデータ記憶部(プログラムN用)206内に記録されている全てのトレースデータ406を外部記憶装置108へ出力し、トレースデータ記憶部(プログラムN用)206内のすべてのトレースデータを消去する。
次に、図3は、あるプログラムがトレースデータを外部記憶装置108に記録したいトレースポイントを実行した場合、同時に関連する他のプログラムのトレースデータも外部記憶装置108に記録する機能を実現するための説明図である。
図3を参照すると、プログラムA301と、プログラムB302と、トレース機能部310と、記憶装置311と、トレース制御プログラム106と、外部記憶装置108とを備えている。
また、トレース機能部310は、トレースID記録部303と、トレース処理部304と、トレースID比較部305と、トレースデータ出力部306とを備えている。
また、記憶装置311は、トレースデータ記憶部307と、トレースデータ記憶部308と、トレースID記憶部309とを備えている。
ここで、トレースデータ記憶部(プログラムA用)307は、プログラムA301のトレースデータを記憶する為に設けられ、トレースデータ記憶部(プログラムB用)308は、プログラムB302のトレースデータを記憶する為に設けられている。
これらの各部の構成は、それぞれ次のように動作する。
まず、トレースID記録部303は、トレース機能部310を制御する、トレース制御プログラム106から入力されたトレースID402を、トレースID記憶部309のトレースID一覧502に記憶する。
そして、プログラムA301に関連したプログラムB302のプログラムID401を、トレースID記憶部309の関連プログラムID一覧503に記録する。
トレース処理部304は、プログラムA301のプログラム中に予め記述されたトレース出力命令が実行されることにより動作し、トレースID402を含むトレースデータをトレースデータ記憶部307に記録する。
そして、トレースID比較部305は、トレース出力命令により、トレースID402と、トレースID記憶部309に記録されたトレースID一覧502とを比較する。
トレースID402と同一のトレースIDが、トレースID記憶部309のトレースID一覧502に記録されていた場合には、トレースデータ記憶部(プログラムA用)307に記憶された全てのトレースデータをトレースデータ出力部306に送信すると共に、外部記録装置108へ出力することを指示する。
また、トレースID比較部305は、トレースID記憶部309のトレースID一覧502に登録されたトレースID402に対応する関連プログラムID一覧503に、プログラムB302のプログラムID401が記録されていた場合には、プログラムB302のトレースデータを記録しているトレースデータ記憶部(プログラムB用)308内のトレースデータを外部記憶装置108へ出力する。また、トレースデータ記憶部(プログラムA用)307内及びトレースデータ記憶部(プログラムB用)308内の全てのトレースデータを消去する。
そして、トレースデータ出力部306は、トレースポイント比較部305からの指示により、トレースデータ記憶部(プログラムA用)307と、トレースデータ記憶部(プログラムB用)308に記録されているデータを外部記録装置108へ出力する。
ここで、トレースデータ記憶部109(図1)の構成について、説明する。
図4を参照すると、トレースデータ記憶部109は、アプリケーションプログラム100から通信制御装置ドライバ103までの各プログラムを識別するためのプログラムID401と、トレースポイントの識別情報であるトレースID402と、トレース出力命令が実行されたときの時刻情報であるタイムスタンプ403と、トレースがプログラムのどの関数のどの場所で出力されたかを識別するトレースポイントID404と、トレース出力の付加情報407とによってトレースデータ408が構成されると共に、外部出力Flag405(本発明の出力フラグ表示手段である。)と、トレース出力カウンタ406とを備えている。
次に、トレースID記憶部110(図1)の構成について、説明する。
図5を参照すると、トレースID記憶部110(図1)は、プログラムID401が記録されたプログラムID一覧501と、トレースID402が記録されたトレースID一覧502と、プログラムID401のトレースID402がトレース出力された場合に、出力したいプログラムのプログラムIDが記録された関連プログラムID一覧503とを備えている。
また、図6には、出力されたことが少ないトレースデータが出力された場合に、そのトレースID402がトレースID記憶部110(図5)に登録されていなくても、自動的に外部記憶装置108へトレースデータを出力する機能を実現するための説明図である。
図6を参照すると、トレース機能部600と、プログラムN601と、記憶装置608と、外部記憶装置108とを備えている。
トレース機能部600は、トレースポイント統計情報記録部602と、トレース処理部603と、トレースポイント出力判定部604と、トレースデータ出力部605とを備えている。
また、記憶装置608は、トレースポイント統計情報記憶部606と、トレースデータ記憶部(プログラムN用)607とを備えている。
これらの各部の構成は、それぞれ次のように動作する。
まず、トレース処理部603(図6)は、プログラムN601のプログラム中に予め記述されたトレース出力命令が実行されることにより動作し、トレースID402を含むトレースデータ408をトレースデータ記憶部(プログラムN用)607に記録する。
また、トレース処理部603(図6)は、トレースポイント統計情報記録部602にトレースポイントID404(図4)を入力する。
トレースポイント統計情報記録部602(図6)は、トレース処理部603から入力されたトレースポイントID404毎に、入力された回数をトレースポイント統計情報記憶部606(図6)に記録する。
そして、トレースポイント出力判定部604は、トレース出力命令のトレースポイントID404のトレースポイント統計情報記憶部606に記録された、トレースポイントID404の出現回数を参照し、所定の値より少ない場合には、トレースデータ出力部605にトレースデータの外部記憶装置108への出力を指示する。
また、トレースデータ出力部605は、トレースポイント出力判定部604からの指示で、トレースデータ記憶部(プログラムN用)607に記録されているトレースデータ408を外部記憶装置108へ出力し、トレースデータ記憶部(プログラムN用)607内のすべてのトレースデータ408を消去する。
ここで、プログラムの構成について、図7を用いて説明する。
図7を参照すると、あるプログラム1内のFunctionAは、トレースポイントID:A−1(1001)、トレースポイントID:A−2(1002)、トレースポイントID:A−3(1003)、トレースポイントID:A−4(1004)の4つのトレース出力ポイントを備えている。
図8を参照すると、トレースポイント統計情報記憶部608(図6)には、プログラムID一覧1101と、トレースポイントID404の一覧1102と、プログラムID401とトレースポイントID404とから識別されるトレースポイントにおいてトレースデータとして出力された値を記録したトレース出力カウンタ1105とを備えている。
また、トレースポイントID404の一覧1102は、プログラム1内のFunctionを識別するためのFunctionID1103と、そのFunction内でのトレース位置を識別するためのポイントID1104とを備えている。
(2)トレースデータ記録処理手順
次に、図1から図8に示した図面及び後述するフローチャートを参照して、本発明における第1の実施の形態の動作について、詳細に説明する。
まず、図1に示すように、プログラム1の構成要素であるアプリケーション100と、ライブラリ101と、プロトコルモジュール102と、通信制御装置ドライバ103とは、それぞれのプログラムが実行された箇所の実行履歴を記録するため、トレース機能部105を呼び出して、トレースデータをプログラム毎に用意されたトレースデータ記憶部109にそれぞれ記録する。
各トレースデータ記憶部109に記録されたトレースデータは、トレース制御プログラム106(図1)によって記憶装置107内のトレースID記憶部110に、図5に示した形態により、記憶されたトレースIDと一致した場合に、保存用の外部記憶装置108に出力される。
ここでは、図2に示した第1の実施の形態に、更に図9に示すフローチャートを参照して、詳細に説明する。
まず、プログラムN200は、プログラム中のトレースデータ出力命令が実行されると、図9のフローチャートのRT1が開始され、トレース機能部207(図2)が動作して、フローチャートのトレースデータ記録処理手順が開始される。
トレース機能部207(図2)は、プログラム毎に対応するトレースデータ408を、トレースデータ記憶部(プログラムN用)206(図2)に、図4に示した形態で記録する(ステップA1)。
次に、外部出力Flag405(図4)がONになっているかどうかを確認する(ステップA2)。ここで、外部出力Flag405がONの場合には、次にステップA6に進む。
これに対し、外部出力Flag405がONになっていない場合には、ステップA3に進み、トレースID402がトレースID記憶部205に記録されているか否かを確認する(ステップA3)。
ここで、トレースID402が記録されていない場合は、処理を終了する。
これに対し、トレースID402が記録されている場合は、ステップA4に進み、トレース出力カウンタ406を、0に変更する(ステップA4)。
そして、外部出力Flag405をONに変更する(ステップA5)。
また、トレースデータ記憶部206内にある全てのトレースデータ408を、外部記憶装置108に出力し、トレースデータ記憶部(プログラムN用)206の全てのトレースデータ406を消去する(ステップA6)。
トレースデータ記憶部206は、トレース出力カウンタ406に、外部記憶装置108に出力したトレースデータ408の数を加算する(ステップA7)。
そして、トレース出力カウンタ406(図4)の値が、閾値より大きいか確認する(ステップA8)。
ここで、トレース出力カウンタ406の値が閾値より小さい場合は、処理を終了する。これに対し、トレース出力カウンタ406の値が閾値より大きい場合には、外部出力Flag405をOFFする(ステップA9)。
次に、図3乃至図5の図面及び図10と図11のフローチャートを参照して詳細に説明する。
なお、フローチャートにおいて、図9と同一のステップであって符号のみ異なるところは、同一処理を行うものとし、処理の異なるステップについて説明することとする。
図10を参照すると、図3に記載されたプログラムA301及びプログラムB302が動作している状態において、プログラムA301のトレース出力命令のトレースID402(図4)が、トレースID記憶部308(図3)に記録されていた場合には(ステップB3がYesの場合)、該当トレースID402に関連するプログラムID401があるか否か判定するため、トレースID記憶部110(図5)に記録されているか確認する(ステップB10)。
ここで、該当トレースID402に関連するプログラムID401が記録されていない場合には、ステップB6に進む。
これに対し、該当トレースID402に関連するプログラムID401が記録されている場合には、図11のフローチャートで示される処理が動作する(ステップB11)。
図11のフローチャートにおける処理内容は後述することとし、図11の処理を終了した後、ステップB6に進む。
また、ステップB2においてYesの場合又はステップB10がNoの場合には、トレースデータ記憶部(プログラムA用)307(図3)内にある全てのトレースデータ408を、外部記憶装置108に出力し、トレースデータ記憶部(プログラムA用)307の全てのトレースデータ406を消去する(ステップB6)。
トレース出力カウンタ406(図4)に、外部記憶装置108に出力したトレースデータ408の数を加算する(ステップB7)。
そして、トレース出力カウンタ406が、閾値より大きいか否か判定する(ステップB8)。
もし、トレース出力カウンタ406が閾値より小さい場合には、処理を終了する。
これに対し、トレース出力カウンタ406が閾値より大きい場合には、外部出力Flag405をOFFにする(ステップB9)。
次に、図11のフローチャートを説明する。
まず、図10のフローチャートにおける関連するプログラムが、プログラムB302(図3)とすると、プログラムB302(図3)の外部出力Flag405がONになっているか否か確認する(ステップD1)。
ここで、外部出力Flag405がONになっている場合には、ステップD4に進む。
これに対し、外部出力Flag405がONでない場合には、プログラムB302のトレース出力カウンタ406を、0に変更する(ステップD2)。
次に、プログラムB302の外部出力Flag405をONに変更する(ステップD3)。プログラムB302のトレースデータ記憶部(プログラムB用)308(図3)の全てのトレースデータ408を外部記憶装置108に出力し、全てのトレースデータ408を消去する(ステップD4)。
また、プログラムB302のトレース出力カウンタ406に、外部記憶装置108に出力したトレースデータ数を加算する(ステップD5)。
そして、プログラムB302のトレース出力カウンタ406が閾値より大きいか否かを確認する(ステップD6)。
ここで、プログラムB302のトレース出力カウンタ406が閾値より小さい場合には、処理を終了する。
これに対し、プログラムB302のトレース出力カウンタ406が閾値より大きい場合には、外部出力Flag405(図4)をOFFに変更する(ステップD7)。
次に、図6乃至図8の図面及び図12のフローチャートを参照して詳細に説明する。
プログラム601N(図6)内で、図7のFunctionAが動作した場合、図7に示すように4箇所でトレース出力命令が実行される。
トレースポイントID:A−1(1001)では、FunctionAの入り口にあるため、必ず実行される。
そして、FunctionAが実行されると、トレース出力命令が実行され、トレースポイント統計情報記録部602(図6)によって、トレースポイント統計情報記憶部606(図6)に、各トレースポイントが実行された回数がカウントされ、記録される。
次に、図7に示すFunctionAにおいては、トレースポイントID:A−3(1003)が実行されることが稀であるとすると、この時のトレースポイント統計情報記憶部606(図6)は、図8のようになる。
次に、図12のフローチャートを参照すると、トレースポイントID:A−3(1003)が実行された場合には、まず、トレースポイント統計情報記憶部606(図6)に、トレースポイントID:A−3(1003)のトレース出力カウンタ1105が、1加算される(ステップC1)。
そして次に、トレースポイントID:A−3(1003)の発生率を算出する(ステップC2)。
ここで、発生率は、今回発生したトレースポイントID404(図4)のトレース出力カウンタ1105(図8)の値を、今回発生したトレースポイントID404(図4)と同じFunctionID1103(図8)のポイントID1104(図8)が1のトレースポイントID404のトレース出力カウンタ1105(図8)の値で、除算した値とする。
そして、この発生率が、ある閾値より大きいか小さいかを確認する(ステップC3)。
ここで、この発生率が、閾値よりも小さい場合には、プログラム601N(図6)のトレース出力カウンタ406を、0に設定する(ステップC4)。
次に、プログラム601Nの外部出力Flag405をONに変更する(ステップC5)。
また、該当トレースポイントID404のトレースID402に関連プログラムがあるか否かを確認する(ステップC6)。
ここで、該当トレースポイントID404のトレースID402に関連する関連プログラムがない場合には、ステップC8へ進む。
これに対し、該当トレースポイントID404のトレースID402に関連する関連プログラムがある場合には、図11のフローチャートが実行される(ステップC7)。
プログラムN601のトレースデータ記憶部(プログラムN用)607(図6)のトレースデータを外部記憶装置108に出力し、トレースデータ記憶部(プログラムN用)607内の全てのトレースデータ406を消去する(ステップC8)。
また、プログラムN601(図6)のトレース出力カウンタ406(図4)に、外部記憶装置108(図6)に出力したトレースデータ数を加算する(ステップC9)。
そして、プログラムN601のトレース出力カウンタ406が閾値より大きいか否かを確認する(図12ステップC10)。
ここで、プログラムN601のトレース出力カウンタ406が閾値より小さい場合は、処理を終了する。
これに対し、プログラムN601のトレース出力カウンタ406が閾値より大きい場合には、外部出力Flag405(図4)をOFFに変更する(ステップC11)。
(3)第1の実施の形態による効果
本発明の第1の実施の形態では、通常動作時にはメモリ内にトレース情報を記録し、必要な場合に応じて磁気記録媒体などの外部記憶装置に記録する構成にしているので、ファイルなどの磁気記憶装置の使用容量を減らすと共に、ファイルI/Oの負荷を軽減できる。
また、本発明の第1の実施の形態では、更にプログラム毎にメモリ領域を確保する構成にしているので、他のプログラムの影響を受けて、他のプログラムのトレースデータに書き消されてしまうことを防止することができる。
また、本発明の第1の実施の形態では、あるプログラムのトレースポイントを実行した時、関連する他のプログラムのトレースデータも外部記憶装置に記録するように構成されているので、プログラム間でのデバックが容易になる。
また、本発明の第1の実施の形態では、トレースポイントの発生率を算出し、トレースポイントの発生率の低いトレースポイントが発生した場合には、外部記憶装置に記録するように構成されているので、再現性の低い不具合のデバックが容易になる。
(4)他の実施の形態
(4−1)第2の実施の形態における構成
次に、本発明の第2の実施の形態の構成について図面を参照して詳細に説明する。
図13は、通信データの機密保護及び記憶容量の削減を実現するための説明図である。
図13を参照すると、トレース機能部700と、プログラムN701と、記憶装置707と、トレース制御プログラム106とを備えている。
トレース機能部700は、トレースID種別記録部702と、トレース処理部703と、トレースデータハッシュ値算出部704とを備えている。
記憶装置707は、トレースID種別記憶部705と、トレースデータ記憶部(プログラムN用)706とを備えている。
また図14を参照すると、トレースID種別記憶部705(図13)は、プログラムID一覧1301と、プログラム内のトレースポイントでトレース出力されるトレースID一覧1302と、プログラムID401とトレースID402で識別されるトレース出力の種別を識別するための種別IDの一覧1303とを備えている。
トレースID種別記録部702(図13)は、トレース機能部700を制御するトレース制御プログラム106から入力されたトレースID402の種別を、トレースID種別記憶部705に記録する。
トレース処理部703は、プログラムN701のプログラム中に予め記述されたトレース出力命令が実行されると動作し、トレースID402を含むトレースデータ406(図4)を、トレースデータ記憶部(プログラムN用)706(図13)に記録する。
この時、トレースID402(図4)の種別をトレースID種別記憶部705から参照し、送信データまたは受信データの場合には、トレースデータ408の付加情報407を、トレースデータハッシュ値算出部704(図14)に入力し、付加情報407のハッシュ値を得る。そして得たハッシュ値を、付加情報407の代わりにトレースデータ記憶部(プログラムN用)706に記録する。
(4−2)第2の実施の形態における動作
図13、図14の図面及び図15のフローチャートを参照して詳細に説明する。
まず、トレース制御プログラム106(図13)は、トレースID種別記録部702に、プログラムID401と、トレースID402と、そのトレースの種別ID1303とを入力する(図14)。
そして、トレースID種別記録部702(図13)は、入力されたプログラムID401と、トレースID402と、そのトレースの種別ID1303とをトレースID種別記憶部705(図13)に記録する。
次に、図15のフローチャートを参照すると、プログラムN701がトレース出力命令を実行すると、トレース処理部703(図13)は、トレースID402(図14)の種別を、トレースポイント種別記憶部705(図14)から検索する(ステップE1)。
そこで、トレースID402の種別ID1303が、送信データ又は受信データかについて確認する(ステップE2)。ここで、トレースID402の種別ID1303が受信データでも送信データでもなく、Noの場合には、ステップE5に進む。
これに対し、種別ID1303が受信データ又は送信データであり、Yesの場合には、トレースデータ408の付加情報407(図4)の部分をトレースデータハッシュ値算出部704(図13)に入力して、ハッシュ値を算出する(ステップE3)。
トレースデータハッシュ値算出部704(図13)では、入力されたデータのハッシュ値を計算し、算出したハッシュ値をトレース処理部703(図13)に返す。
ハッシュ値が入力されたトレース処理部703(図13)は、トレースデータ408の付加情報407を、算出されたハッシュ値に置き換える(ステップE4)。
そして、トレースデータ408(図4)をトレースデータ記憶部(プログラムN用)706(図13)に記録する(ステップE5)。
(4−3)第2の実施の形態における効果
本発明の第2の実施の形態によれば、通信プロトコルプログラムの送信または受信データは、ハッシュ値を算出し、このハッシュ値をトレースデータとして記録しているので、通信データの機密保護を図ると共に記憶容量の削減ができる。
(4−4)閾値や発生率について
本発明の第1の実施の形態及び第2の実施の形態において、トレース出力カウンタ406と閾値との比較を行ったり、発生率を算出した後に閾値と比較を行なっていたが、本発明の実施の形態ではこれに限定されるものではなく、ユーザによって予め設定された閾値やプログラムの大きさに基づいて、プログラムの大きさに比例するように閾値を割り当てるようにしても良い。
また、図12のフローチャートにおいて、トレースポイントID204の発生率を算出するようになっていたが、本発明の実施の形態ではこの算出方法に限定されるものではなく、トレースポイントID204の出現回数が相対的に少ない場合に、全てのトレースデータ408を出力するようにしても良い。
本発明によれば、通信制御装置を搭載した通信制御コンピュータにおいて、各種通信プロトコルプログラム及び通信制御装置制御プログラムから構成される通信制御システムに適用することができ、各プログラムのデバッグといった用途に適用できる。
本発明の第1の実施の形態における情報処理装置の構成を示すブロック図である。 本発明の第1の実施の形態における通常動作を示す情報処理装置の構成を示すブロック図である。 本発明の第1の実施の形態における関連する他のプログラムのトレースデータも外部に出力する情報処理装置の構成を示すブロック図である。 本発明の第1の実施の形態におけるトレースデータ記憶部の構成を示したものである。 本発明の第1の実施の形態におけるトレースID記憶部の構成を示したものである。 本発明の第1の実施の形態における出力回数が少ないトレースデータが出力された場合に、トレースデータを外部に出力する情報処理装置の構成を示すブロック図である。 本発明の第1の実施の形態におけるプログラムの構成の一例である。 本発明の第1の実施の形態におけるトレースポイント統計情報記憶部の構成を示したものである。 本発明の第1の実施の形態におけるトレースデータ記録処理手順を示すフローチャートである。 本発明の第1の実施の形態におけるトレースIDに関連するプログラムの有無を判断するトレースデータ記録処理手順を示すフローチャートである。 本発明の第1の実施の形態におけるトレースIDに関連するプログラムがある場合のトレースデータ記録処理手順を示すフローチャートである。 本発明の第1の実施の形態におけるトレースIDの発生率の低い場合のトレースデータ記録処理手順を示すフローチャートである。 本発明の第2の実施の形態における情報処理装置の構成を示すブロック図である。 本発明の第2の実施の形態におけるトレースID種別記憶部の構成を示したものである。 本発明の第2の実施の形態におけるトレースIDの種別データによってトレースデータの付加情報を置換するフローチャートである。
符号の説明
1 プログラム
100 アプリケーションプログラム
101 ライブラリプログラム
102 プロトコルプログラム
103 通信制御装置ドライバ
104 通信制御装置
105 トレース機能部
106 トレース制御プログラム
107 記憶装置
108 外部記憶装置
109 トレースデータ記憶部
110 トレースID記憶部
200 プログラムN
201 トレースID記録部
202 トレース処理部
203 トレースID比較部
204 トレースデータ出力部
205 トレースID記憶部
206 トレースデータ記憶部(プログラムN用)
207 トレース機能部
208 記憶装置
301 プログラムA
302 プログラムB
303 トレースID記録部
304 トレース処理部
305 トレースID比較部
306 トレースデータ出力部
307 トレースデータ記憶部(プログラムA用)
308 トレースデータ記憶部(プログラムB用)
309 トレースID記憶部
310 トレース機能部
311 記憶装置
401 プログラムID
402 トレースID
403 タイムスタンプ
404 トレースポイントID
405 外部出力Flag
406 トレース出力カウンタ
407 付加情報
408 トレースデータ
501 プログラムID一覧
502 トレースID一覧
503 関連プログラムID一覧
600 トレース機能部
601 プログラムN
602 トレースポイント統計情報記録部
603 トレース処理部
604 トレースポイント出力判定部
605 トレースデータ出力部
606 トレースポイント統計情報記憶部
607 トレースデータ記憶部(プログラムN用)
608 記憶装置
700 トレース機能部
701 プログラムN
702 トレースID種別記録部
703 トレース処理部
704 トレースデータハッシュ値算出部
705 トレースID種別記憶部
706 トレースデータ記憶部(プログラムN用)
707 記憶装置
1001 トレースポイントID:A−1
1002 トレースポイントID:A−2
1003 トレースポイントID:A−3
1004 トレースポイントID:A−4
1101 プログラムID
1102 トレースポイントID一覧
1103 FunctionID
1104 ポイントID
1105 トレース出力カウンタ
1301 プログラムID一覧
1302 トレースID一覧
1303 種別

Claims (15)

  1. プログラムに対応したトレースIDを含むトレースデータを記憶する情報処理装置であって、
    前記トレースデータを記憶するトレースデータ記憶手段と、
    記憶している前記トレースデータを、外部に出力するか否かについて表示する出力フラグ表示手段と、
    前記出力フラグ表示手段によって前記トレースデータを外部に出力する場合に、前記トレースデータ記憶手段に記憶されている、全てのトレースデータを出力すると共に、出力した前記全てのトレースデータ数をカウントするトレースデータカウント手段と、
    前記トレースデータカウント手段によってカウントされた前記全てのトレースデータ数と、任意に設定された閾値と比較する閾値判定手段と、を備え、
    前記トレースデータカウント手段によってカウントされた前記全てのトレースデータ数が、前記任意に設定された閾値に到達するまで、前記トレースデータを出力する
    ことを特徴とする情報処理装置。
  2. 前記出力フラグ表示手段によって前記トレースデータを外部に出力する場合には、
    前記トレースデータ記憶手段に記憶されている、前記全てのトレースデータを外部に出力すると共に、当該トレースデータ記憶手段に記憶されている前記全てのトレースデータを消去する
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記トレースデータを記憶する関連トレースデータ記憶手段と、
    前記トレースIDに関連付けられたプログラムがある場合に、当該関連付けられたプログラムに対応するトレースデータを前記関連トレースデータ記憶手段に記憶して、前記関連トレースデータ記憶手段から外部に出力すると共に、
    前記関連トレースデータ記憶手段から出力した全てのトレースデータ数をカウントする関連トレースデータカウント手段と、
    前記関連トレースデータカウント手段によってカウントされた前記全てのトレースデータ数と、任意に設定された関連用閾値と比較する関連閾値判定手段と、を更に備え、
    前記関連トレースデータカウント手段によってカウントされた前記全てのトレースデータ数が、前記任意に設定された関連用閾値に到達するまで、前記関連付けられたプログラムに対応するトレースデータを出力する
    ことを特徴とする請求項1又は2に記載の情報処理装置。
  4. プログラムを実行することによって発生するトレースポイントIDの発生率を算出する発生率算出手段を更に備え、
    当該トレースポイントIDの発生率が、任意に設定された発生率用閾値より少ない場合には、前記出力フラグ表示手段によって前記全てのトレースデータを外部に出力する
    ことを特徴とする請求項1乃至3の何れか1項に記載の情報処理装置。
  5. 前記トレースIDの種別を判断するトレースID種別判断手段を更に備え、
    当該トレースID種別判別手段は、
    前記トレースIDの種別に基づいて、当該トレースIDの種別が受信データ又は送信データの場合には、当該トレースデータが備える付加情報を、前記受信データ又は送信データから算出される計算値に置き換える
    ことを特徴とする請求項1乃至4の何れか1項に記載の情報処理装置。
  6. プログラムに対応したトレースIDを含むトレースデータを記憶する情報処理装置におけるソフトウェアトレースデータ記録方法であって、
    前記トレースデータを記憶するトレースデータ記憶ステップと、
    記憶している前記トレースデータを、外部に出力するか否かについて表示する出力フラグ表示ステップと、
    前記出力フラグ表示ステップによって前記トレースデータを外部に出力する場合に、前記トレースデータ記憶ステップに記憶されている、全てのトレースデータを出力すると共に、出力した前記全てのトレースデータ数をカウントするトレースデータカウントステップと、
    前記トレースデータカウントステップによってカウントされた前記全てのトレースデータ数と、任意に設定された閾値と比較する閾値判定ステップと、を備え、
    前記トレースデータカウントステップによってカウントされた前記全てのトレースデータ数が、前記任意に設定された閾値に到達するまで、前記トレースデータを出力する
    ことを特徴とするソフトウェアトレースデータ記録方法。
  7. 前記出力フラグ表示ステップによって前記トレースデータを外部に出力する場合には、
    前記トレースデータ記憶ステップによって記憶されている、前記全てのトレースデータを外部に出力すると共に、当該トレースデータ記憶ステップによって記憶されている前記全てのトレースデータを消去する
    ことを特徴とする請求項6に記載のソフトウェアトレースデータ記録方法。
  8. 前記トレースデータを記憶する関連トレースデータ記憶ステップを更に備え、
    前記トレースIDに関連付けられたプログラムがある場合に、当該関連付けられたプログラムに対応するトレースデータを前記関連トレースデータ記憶ステップによって記憶し、前記関連トレースデータ記憶ステップによって外部に出力すると共に、
    前記関連トレースデータ記憶ステップによって出力した全てのトレースデータ数をカウントする関連トレースデータカウントステップと、
    前記関連トレースデータカウントステップによってカウントされた前記全てのトレースデータ数と、任意に設定された関連用閾値と比較する関連閾値判定ステップと、を更に備え、
    前記関連トレースデータカウントステップによってカウントされた前記全てのトレースデータ数が、前記任意に設定された関連用閾値に到達するまで、前記関連付けられたプログラムに対応するトレースデータを出力する
    ことを特徴とする請求項6又は7に記載のソフトウェアトレースデータ記録方法。
  9. プログラムを実行することによって発生するトレースポイントIDの発生率を算出する発生率算出ステップを更に備え、
    当該トレースポイントIDの発生率が、任意に設定された発生率用閾値より少ない場合には、前記出力フラグ表示ステップにより前記全てのトレースデータを外部に出力する
    ことを特徴とする請求項6乃至8の何れか1項に記載のソフトウェアトレースデータ記録方法。
  10. 前記トレースIDの種別を判断するトレースID種別判断ステップを更に備え、
    当該トレースID種別判別ステップは、
    前記トレースIDの種別に基づいて、当該トレースIDの種別が受信データ又は送信データの場合には、当該トレースデータが備える付加情報を、前記受信データ又は送信データから算出される計算値に置き換える
    ことを特徴とする請求項6乃至9の何れか1項に記載のソフトウェアトレースデータ記録方法。
  11. プログラムに対応したトレースIDを含むトレースデータを記憶する情報処理装置におけるソフトウェアトレースデータ記録プログラムであって、
    前記トレースデータを記憶するトレースデータ記憶手順と、
    記憶している前記トレースデータを、外部に出力するか否かについて表示する出力フラグ表示手順と、
    前記出力フラグ表示手順によって前記トレースデータを外部に出力する場合に、前記トレースデータ記憶手順に記憶されている、全てのトレースデータを出力すると共に、出力した前記全てのトレースデータ数をカウントするトレースデータカウント手順と、
    前記トレースデータカウント手順によってカウントされた前記全てのトレースデータ数と、任意に設定された閾値と比較する閾値判定手順と、を備え、
    前記トレースデータカウント手順によってカウントされた前記全てのトレースデータ数が、前記任意に設定された閾値に到達するまで、前記トレースデータを出力する
    ことをコンピュータに実行させることを特徴とするソフトウェアトレースデータ記録プログラム。
  12. 前記出力フラグ表示手順によって前記トレースデータを外部に出力する場合には、
    前記トレースデータ記憶手順によって記憶されている、前記全てのトレースデータを外部に出力すると共に、当該トレースデータ記憶手順に記憶されている前記全てのトレースデータを消去する
    ことをコンピュータに実行させることを特徴とする請求項11に記載のソフトウェアトレースデータ記録プログラム。
  13. 前記トレースデータを記憶する関連トレースデータ記憶手順と、
    前記トレースIDに関連付けられたプログラムがある場合に、当該関連付けられたプログラムに対応するトレースデータを前記関連トレースデータ記憶手順によって記憶して、前記関連トレースデータ記憶手順によって外部に出力すると共に、
    前記関連トレースデータ記憶手順によって出力した全てのトレースデータ数をカウントする関連トレースデータカウント手順と、
    前記関連トレースデータカウント手順によってカウントされた前記全てのトレースデータ数と、任意に設定された関連用閾値と比較する関連閾値判定手順と、を更に備え、
    前記関連トレースデータカウント手順によってカウントされた前記全てのトレースデータ数が、前記任意に設定された関連用閾値に到達するまで、前記関連付けられたプログラムに対応するトレースデータを出力する
    ことをコンピュータに実行させることを特徴とする請求項11又は12に記載のソフトウェアトレースデータ記録プログラム。
  14. プログラムを実行することによって発生するトレースポイントIDの発生率を算出する発生率算出手順を更に備え、
    当該トレースポイントIDの発生率が、任意に設定された発生率用閾値より少ない場合には、前記出力フラグ表示手順によって前記全てのトレースデータを外部に出力する
    ことをコンピュータに実行させることを特徴とする請求項11乃至13の何れか1項に記載のソフトウェアトレースデータ記録プログラム。
  15. 前記トレースIDの種別を判断するトレースID種別判断手順を更に備え、
    当該トレースID種別判別手順は、
    前記トレースIDの種別に基づいて、当該トレースIDの種別が受信データ又は送信データの場合には、当該トレースデータが備える付加情報を、前記受信データ又は送信データから算出される計算値に置き換える
    ことをコンピュータに実行させることを特徴とする請求項11乃至14の何れか1項に記載のソフトウェアトレースデータ記録プログラム。
JP2006344289A 2006-12-21 2006-12-21 情報処理装置、ソフトウェアトレースデータ記録方法及びソフトウェアトレースデータ記録プログラム Pending JP2008158634A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006344289A JP2008158634A (ja) 2006-12-21 2006-12-21 情報処理装置、ソフトウェアトレースデータ記録方法及びソフトウェアトレースデータ記録プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006344289A JP2008158634A (ja) 2006-12-21 2006-12-21 情報処理装置、ソフトウェアトレースデータ記録方法及びソフトウェアトレースデータ記録プログラム

Publications (1)

Publication Number Publication Date
JP2008158634A true JP2008158634A (ja) 2008-07-10

Family

ID=39659495

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006344289A Pending JP2008158634A (ja) 2006-12-21 2006-12-21 情報処理装置、ソフトウェアトレースデータ記録方法及びソフトウェアトレースデータ記録プログラム

Country Status (1)

Country Link
JP (1) JP2008158634A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9164878B2 (en) 2010-12-24 2015-10-20 International Business Machines Corporation Evaluating coverage of a software test
US9804912B2 (en) 2014-10-06 2017-10-31 Fujitsu Limited Log management apparatus, computer-readable recording medium having stored therein log management program, and log management method
JP2021039394A (ja) * 2019-08-30 2021-03-11 任天堂株式会社 情報処理システム、情報処理方法、開発装置、および開発装置用のプログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9164878B2 (en) 2010-12-24 2015-10-20 International Business Machines Corporation Evaluating coverage of a software test
US9804912B2 (en) 2014-10-06 2017-10-31 Fujitsu Limited Log management apparatus, computer-readable recording medium having stored therein log management program, and log management method
JP2021039394A (ja) * 2019-08-30 2021-03-11 任天堂株式会社 情報処理システム、情報処理方法、開発装置、および開発装置用のプログラム
JP7168532B2 (ja) 2019-08-30 2022-11-09 任天堂株式会社 情報処理システム、情報処理方法、開発装置、および開発装置用のプログラム

Similar Documents

Publication Publication Date Title
US7096458B2 (en) Method and apparatus to create and compare debug scenarios of a computer process
US7162715B1 (en) Method and apparatus for preemptive monitoring of software binaries by instruction interception and dynamic recompilation
US20130024466A1 (en) System event logging system
JP2009187545A (ja) 機械設備または類似の設備の保存された運転データの保護方法
CN106681863B (zh) 保存电子病历编辑内容的方法和终端设备
CN109388622A (zh) 一种日志信息处理方法、装置、设备及可读存储介质
CN116305290A (zh) 一种系统日志安全检测方法及装置、电子设备及存储介质
JP2008158634A (ja) 情報処理装置、ソフトウェアトレースデータ記録方法及びソフトウェアトレースデータ記録プログラム
US6785883B1 (en) Software system for tracing data
JP2004139292A (ja) アクセス制御のポリシー診断システム
JP2009223714A (ja) 演算回路及び演算回路の異常解析方法
JP5453871B2 (ja) イベント判別装置、イベント判別プログラム、イベント判別方法
CA2946486C (en) Monitor performance analysis
CN109445877B (zh) 一种检测游戏服务器多线程使用同一虚拟机的方法
US6581156B1 (en) Method for recording a data state in a data processing system
JPH047650A (ja) 障害情報ログ方法及びデータ処理装置
US9619306B2 (en) Information processing device, control method thereof, and recording medium
JP7298694B2 (ja) 異常検出装置、制御方法、及びプログラム
JP2002175201A (ja) コンピュータシステム及びそれに用いるトレース情報制御方式
KR100949949B1 (ko) 콜 스택을 이용한 디버깅 방지 방법 및 장치
JP2018085040A (ja) プログラムテスト装置、プログラムテストプログラムおよびプログラムテスト方法
KR20090096825A (ko) 코드 변형 감지 시스템 및 그 방법
CN116860581A (zh) 异常调用方法的检测方法、装置及存储介质
CN117289870A (zh) 配置数据确定方法、系统、设备及存储介质
WO2020065960A1 (ja) 情報処理装置、制御方法、及びプログラム

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080617

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091106

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091112

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100108

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100527

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100726

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20100909

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100909

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20101206