JPH1115692A - デバッグ情報出力制御方法 - Google Patents

デバッグ情報出力制御方法

Info

Publication number
JPH1115692A
JPH1115692A JP9162861A JP16286197A JPH1115692A JP H1115692 A JPH1115692 A JP H1115692A JP 9162861 A JP9162861 A JP 9162861A JP 16286197 A JP16286197 A JP 16286197A JP H1115692 A JPH1115692 A JP H1115692A
Authority
JP
Japan
Prior art keywords
function
output
log
debug
debug information
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
JP9162861A
Other languages
English (en)
Inventor
Tetsuya Hirata
哲也 平田
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 Solution Innovators Ltd
Original Assignee
NEC Solution Innovators Ltd
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 Solution Innovators Ltd filed Critical NEC Solution Innovators Ltd
Priority to JP9162861A priority Critical patent/JPH1115692A/ja
Publication of JPH1115692A publication Critical patent/JPH1115692A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【課題】デバッグ出力で詳細な情報を得るために書き出
し文を入れログ出力するとソフトウェアの実行が実際の
動作よりも著しく遅くなったり書き出したログが膨大な
量となり、出力先となる外部記憶装置を圧迫する。 【解決手段】このデバッグ情報出力制御方法は、ソフト
ウェア内部の各機能に機能番号を持たせ、この機能番号
を解釈するデバッグ情報出力機能を提供し、この機能番
号とともにデバッグ情報出力機能を呼び出す出力情報受
領機能1と、外部ファイル5を参照しソフトウェアのデ
バッグ出力対象機能を選択する外部ファイル読み込み機
能2と、外部入力装置6の状態を参照して入力があると
きのみログを出力するようにする外部入力装置状態監視
機能3と、出力された情報に付加された機能番号と外部
ファイルから読み出したデバッグ出力対象機能とを比較
して、デバッグ出力対象機能であるかどうかを判断する
ログ出力機能4とを備える。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はデバッグ情報出力制
御方法に関し、特にコンピュータのソフトウェア開発に
おけるデバッグ情報出力制御方法に関する。
【0002】
【従来の技術】従来のデバッグ情報出力制御方法は、主
にコンピュータのソフトウェアのデバッグ/チューニン
グすることを目的として、開発中のソフトウェアの実行
時の内部状態を取得するために、プログラミング言語の
出力命令(例えばC言語のfprintfなど)を使用して書
き出し文を追加しファイルにログとして出力したりCR
Tやプリンタに書き出して、処理の実行の流れや、デー
タの変化を調べることが一般的に行われている。
【0003】
【発明が解決しようとする課題】この従来のデバッグ情
報出力制御方法における第1の問題点は、詳細な情報を
出力させると、ソフトウェアの実行に時間がかかる、と
いうことである。その理由は、詳細な情報を出力する
と、データサイズが巨大になり、ファイルアクセスに時
間がかかるためである。
【0004】第2の問題点は、デバッグ情報として詳細
な情報を出力すると、外部記憶装置に入りきらない可能
性がある、ということである。その理由は、詳細な情報
を出力すると、出力する情報が巨大になるからである。
【0005】第3の問題点は、詳細な情報を出力させる
と、発生原因を突き止めるのに時間がかかる、というこ
とである。その理由は、デバッグのために出力した詳細
情報が膨大であるため、データの検査に時間がかかるた
めである。
【0006】第4の問題点は、デバッグ中に、後付けで
ログ出力機能を追加するとバグの発生原因になる可能性
がある、ということである。その理由は、必要な情報を
得ることを目的としてデバッグ情報出力機能の追加する
修正をソフトウェアのソースコードに何度も加える必要
があるためである。
【0007】本発明の目的は、デバッグ対象ソフトウェ
アを修正することなしに、デバッグのために出力する情
報の選択を可能にすることにより、デバッグ情報の出力
先となる外部記憶装置への出力を減らし、ソフトウェア
の実行時間を実際の実行時間に近づけることと、外部記
憶装置の使用量を削減することである。
【0008】
【課題を解決するための手段】本発明のデバッグ情報出
力制御方法は、デバッグ時のログ出力に追加した機能番
号と外部ファイルで指定する出力対象条件とを比較し
て、ログ出力の可否を決定することを特徴とする。
【0009】また、本発明のデバッグ情報出力制御方法
は、外部入力装置の状態によってデバッグ情報出力動作
を切り替えることができることを特徴とする。
【0010】さらに、本発明のデバッグ情報出力制御方
法は、ソフトウェア内部の各機能に機能番号を持たせ、
この機能番号を解釈するデバッグ情報出力機能を提供
し、前記機能番号とともに前記デバッグ情報出力機能を
呼び出す出力情報受領機能と、外部ファイルを参照しソ
フトウェアのデバッグ出力対象機能を選択する外部ファ
イル読み込み機能と、外部入力装置の状態を参照して入
力があったときのみログを出力するようにする外部入力
装置状態監視機能と、出力された情報に付加された前記
機能番号と前記外部ファイルから読み出した前記デバッ
グ情報出力機能とを比較して、前記デバッグ情報出力機
能であるかどうかを判断するログ出力機能とを備える。
【0011】
【発明の実施の形態】次に、本発明の実施の形態につい
て図面を参照して詳細に説明する。
【0012】本発明の一実施の形態をブロックで示す図
1を参照すると、この実施の形態のデバッグ情報出力制
御方法であるデバッグ情報出力制御機能10において、
出力情報受領機能1は、ソフトウェアの機能11,1
2,…,1nのような各機能から機能IDと出力情報と
を受け取る機能を有する。外部ファイル読み込み機能2
は、外部ファイル5から、ログ出力対象機能および外部
入力装置6の状態毎のログ出力先を読み込む機能を有す
る。外部入力装置状態監視機能3は、ジョイスティッ
ク,キーボード,マウスのような外部入力装置6の状態
を取得する機能を有する。ログ出力機能4は、出力情報
受領機能1,外部ファイル読み込み機能2および外部入
力装置状態監視機能3で得た機能IDと外部ファイル5
より得られた出力条件と外部入力装置6の状態からデバ
ッグ情報をログファイル7に出力するかどうかを決定す
る機能を有する。
【0013】次に、図2および図3を図1に併せて参照
して、この実施の形態の動作を説明する。ソフトウェア
の各機能11,12,…,1nに機能IDを与え、デバ
ッグ情報出力機能呼出し時に、機能IDを付加して呼出
すようにソフトウェアを作成する(ステップ21)。次
に、外部ファイル5にログ出力条件を記述し(ステップ
22)、ソフトウェアを実行する(ステップ23)。そ
の際、まず、ソフトウェアの各機能11,12,…,1
nの初期化(ステップ24)およびデバッグ情報出力制
御機能10の初期化(ステップ25)を実行する。外部
ファイル読み込み機能2は、外部ファイル5に記述され
たログ出力条件を取得する(ステップ26)。ソフトウ
ェアの各機能11,12,…,1nは、機能IDとデバ
ッグ情報とを出力情報受領機能1に渡す(ステップ2
8)。
【0014】出力情報受領機能1は、ソフトウェアの各
機能11,12,…,1nから機能IDとデバッグ情報
を受け取り、ログ出力機能4へ渡す(ステップ32)。
外部入力装置監視機能3は、外部入力装置6の入力状態
を監視し、メモリ中のフラグに外部入力装置6の状態を
書き込む(ステップ33)。ログ出力機能4は、外部入
力装置6の入力状態を示すフラグを参照して、入力があ
る状態のときには、外部ファイル読み込み機能2が取得
したログ出力条件と、出力情報受領機能1に渡されたこ
の機能IDとを比較し、条件に合致する場合のみ、ログ
出力する(ステップ34,35)。また、外部入力装置
6の入力状態を示すフラグが入力状態でない場合また、
ログ出力条件に合致しない場合には、ログ出力を行なわ
ない(ステップ33)。
【0015】次に、図1を参照して、この実施の形態の
具体例について説明する。
【0016】出力情報受領機能1は、ソフトウェアの機
能11,12,…,1nのような各機能から機能IDと
出力情報とを受け取る機能を有する。機能IDを、たと
えば8ビット整数で構成した場合、機能毎に2進数の1
ビットに対応するようにつけることにより、8通りの機
能を識別することができ、ソフトウェアの機能11,1
2,…,1nに対して機能11の機能IDを‘0000
0001b’、機能12の機能IDを‘0000001
0b’の様に与える。
【0017】外部ファイル読み込み機能2は、外部ファ
イル5から、ログ出力条件および外部入力装置6の状態
毎のログ出力先を読み込む機能を有する。ログ出力条件
は、たとえばoutput=1のように正の整数として
与える。
【0018】外部入力装置状態監視機能3は、たとえば
ジョイスティックのような外部入力装置6のボタンの押
下状態を取得する機能を有する。
【0019】ログ出力機能4は、ソフトウェアの各機能
11,12,…,1nから得られた機能IDと外部ファ
イル5より得られたログ出力条件とこのジョイスティッ
クのボタン押下状態よりデバッグ情報を外部ファイル5
に出力するかどうかを決定し、ログファイルに出力する
機能を有する。
【0020】次に、この実施の形態の具体例の動作につ
いて図1を参照して説明する。
【0021】最初に、ソフトウェアの機能11に機能I
D‘00000001b’とソフトウェアの機能12に
機能ID‘00000010b’を与え、デバッグ情報
出力制御機能を呼出すようにソフトウェアを作成する。
【0022】外部ファイル5にログ出力条件outpu
t=1と記述し、ソフトウェアを実行する。外部ファイ
ル読み込み機能2は、外部ファイル5から、ログ出力条
件output=1を取得する。ソフトウェアの機能1
1は、機能ID‘00000001b’とデバッグ情報
とを出力情報受領機能1に渡す。出力情報受領機能1
は、ソフトウェアの各機能11,12,…,1nから機
能IDとデバッグ情報とを受け取り、ログ出力機能4へ
渡す。外部入力装置状態監視機能3は、ジョイスティッ
クのボタン押下状態を監視し、メモリ中のフラグにボタ
ン押下状態を書き込む。
【0023】ログ出力機能4は、ジョイスティックのボ
タン押下状態を示すフラグを参照して、ボタンが押下状
態である場合に、外部ファイル読み込み機能2が取得し
たログ出力条件output=1と、出力情報受領機能
1に渡されたソフトウェアの機能11の機能ID‘00
000001b’とand条件で比較し、結果が‘真’
であるのでログ出力する。また、外部入力装置6のジョ
イスティックのボタンが押されていない場合には、ログ
出力条件の比較を行なわず、ログ出力もしない。
【0024】ソフトウェアの機能12の場合、出力条件
がoutput=1で、ジョイスティックが押下状態の
時、機能12の機能IDは、‘00000010b’な
ので、and条件で比較した結果が‘真’でないので、
ログ出力を行なわない。
【0025】以上説明した機能IDの拡張として、機能
IDを8ビットでなくnビットに拡張が可能である。ま
た、ビット毎に機能IDを与えていたが機能IDを連番
とすることも可能である。また機能IDの他に、機能グ
ループIDや、操作IDを付加することで、機能内部の
中の特定操作について絞り込んでログ出力を指定するこ
とができるので、柔軟にデバッグのための情報を得るこ
とが可能になる。出力条件として、and条件だけでな
く、not/xor/orを組み合わせた指定も可能で
ある。また、ログ出力条件の他にbreak条件を付加
することで、外部入力装置6が入力状態にありかつ特定
機能を通った時にbreakpoint割り込みを発生
させ、OSに組み込まれたデバッグ機能を起動して対話
式のデバッグに移行することも可能である。
【0026】外部入力装置監視機能3では、ジョイステ
ィックの他にキーボードや、マウスといったコンピュー
タ本体に接続されている機器の監視を行うことができ
る。また、入力のon/offだけでなく、カウンタや
コンピュータ本体がもつ計時機能と組み合わせて、入力
があった時点から一定期間をログ出力期間に設定するよ
うにすることで、特定期間のログが取得可能になる。
【0027】
【発明の効果】以上説明したように、本発明の第1の効
果は、デバッグ対象ソフトウェアを修正することなしに
デバッグのために出力する情報の変更が可能である、と
いうことである。その理由は、デバッグ対象ソフトウェ
アの全機能にIDを与え、IDと共にデバッグ情報を出
力するための機能を呼び出させているため、外部ファイ
ルで、ログ出力条件を指定するだけで、必要な情報が得
られるからである。
【0028】第2の効果は、ログ情報と実際の動作の対
応づけが簡単に出来るため、実行後の解析が楽になる、
ということである。その理由は、外部入力装置が入力状
態になっているときだけログ出力されるためである。
【0029】第3の効果は、外部入力装置が入力状態に
ない場合の実行時間が短い、ということである。その理
由は、外部入力装置が入力状態でないときにはデバッグ
ログを出力しないため、デバッグログ出力にかかる時間
がかからないためである。
【0030】第4の効果は、ログ出力先の外部記憶装置
の使用量が少なくても必要な情報が得られる、というこ
とである。その理由は、外部入力装置が入力状態になっ
た時のみデバッグ情報をログとして外部記憶装置に書き
出すが、外部入力装置が入力状態にならなければログが
出力されないためである。
【0031】第5の効果は、デバッグ情報の内容変更の
ためにソースコードを修正する必要がなくなり、デバッ
グ時にバグが混入することが減少する、ということであ
る。その理由は、機能毎にデバッグ情報を出力する様に
作成済みであり、かつ、外部ファイルにより、デバッグ
情報出力対象とする機能を選択できるためである。
【図面の簡単な説明】
【図1】本発明の一実施の形態の構成を示すブロック図
である。
【図2】この実施の形態の動作を示す流れ図である。
【図3】この実施の形態の動作を示す流れ図である。
【符号の説明】
1 出力情報受領機能 2 外部ファイル読み込み機能 3 外部入力装置状態監視機能 4 ログ出力機能 5 外部ファイル 6 外部入力装置 7 ログファイル 10 デバッグ情報出力制御機能 11,12,…,1n ソフトウェアの機能

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 デバッグ時のログ出力に追加した機能番
    号と外部ファイルで指定する出力対象条件とを比較し
    て、ログ出力の可否を決定することを特徴とするデバッ
    グ情報出力制御方法。
  2. 【請求項2】 外部入力装置の状態によってデバッグ情
    報出力動作を切り替えることができることを特徴とする
    請求項1記載のデバッグ情報出力制御方法。
  3. 【請求項3】 ソフトウェア内部の各機能に機能番号を
    持たせ、この機能番号を解釈するデバッグ情報出力機能
    を提供し、前記機能番号とともに前記デバッグ情報出力
    機能を呼び出す出力情報受領機能と、外部ファイルを参
    照しソフトウェアのデバッグ出力対象機能を選択する外
    部ファイル読み込み機能と、外部入力装置の状態を参照
    して入力があったときのみログを出力するようにする外
    部入力装置状態監視機能と、出力された情報に付加され
    た前記機能番号と前記外部ファイルから読み出した前記
    デバッグ情報出力機能とを比較して、前記デバッグ情報
    出力機能であるかどうかを判断するログ出力機能とを備
    えることを特徴とするデバッグ情報出力制御方法。
JP9162861A 1997-06-19 1997-06-19 デバッグ情報出力制御方法 Pending JPH1115692A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9162861A JPH1115692A (ja) 1997-06-19 1997-06-19 デバッグ情報出力制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9162861A JPH1115692A (ja) 1997-06-19 1997-06-19 デバッグ情報出力制御方法

Publications (1)

Publication Number Publication Date
JPH1115692A true JPH1115692A (ja) 1999-01-22

Family

ID=15762656

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9162861A Pending JPH1115692A (ja) 1997-06-19 1997-06-19 デバッグ情報出力制御方法

Country Status (1)

Country Link
JP (1) JPH1115692A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100395725C (zh) * 2006-04-24 2008-06-18 华为技术有限公司 日志信息输出系统及输出方法
JP2012064103A (ja) * 2010-09-17 2012-03-29 Konica Minolta Business Technologies Inc 情報処理装置、ログ記録方法およびログ記録プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100395725C (zh) * 2006-04-24 2008-06-18 华为技术有限公司 日志信息输出系统及输出方法
JP2012064103A (ja) * 2010-09-17 2012-03-29 Konica Minolta Business Technologies Inc 情報処理装置、ログ記録方法およびログ記録プログラム

Similar Documents

Publication Publication Date Title
JP4901075B2 (ja) コンピュータ読取可能な媒体、方法及びコンピューティングデバイス
US11249881B2 (en) Selectively tracing portions of computer process execution
US8370810B2 (en) Debugging device and debugging method
JP4094724B2 (ja) ソフトウェアをデバッグする際に例外を識別するための装置および方法
US8024620B2 (en) Dynamic address-type selection control in a data processing system
US10740219B2 (en) Selectively tracing portions of computer process execution
US9208060B1 (en) Emulation-based expression evaluation for diagnostic tools
US7793160B1 (en) Systems and methods for tracing errors
US20040098639A1 (en) Debugging kernel-loadable modules and suspending and replacing functions in non-microkernel operating systems
US8225286B2 (en) Debugging interpreted input
US20090100413A1 (en) Stack Walking Enhancements Using Sensorpoints
CN105824750B (zh) 一种在NorFlash程序空间调试的软断点模拟方法
US7426660B2 (en) Method, program, and storage medium for acquiring logs
JPH11110255A (ja) ソフトウェアをデバッグするための装置および方法
US20030177471A1 (en) System and method for graphically developing a program
US8468393B2 (en) Triggering diagnostic operations within a data processing apparatus
US6785883B1 (en) Software system for tracing data
US20200272553A1 (en) Configurable system for interaction with system or processor states in development tools
JPH1115692A (ja) デバッグ情報出力制御方法
US6611924B1 (en) Reducing code size of debug output statements
JPH11110256A (ja) プログラムデバッグ装置、プログラムデバッグ方法及びその方法を記録したコンピュータ読取り可能な記録媒体
KR20020055528A (ko) 멀티 태스크 프로그램의 논스톱 디버깅을 위한트레이스포인트 설정 방법
JPH0283749A (ja) マイクロプロセッサの内部割込み制御方式
JP2003263340A (ja) デバッグ装置
JP2006031248A (ja) 関数呼び出しをフックしてログを生成するソフトウェア評価システム

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20000307