JPH10214204A - デバッガー - Google Patents

デバッガー

Info

Publication number
JPH10214204A
JPH10214204A JP9029745A JP2974597A JPH10214204A JP H10214204 A JPH10214204 A JP H10214204A JP 9029745 A JP9029745 A JP 9029745A JP 2974597 A JP2974597 A JP 2974597A JP H10214204 A JPH10214204 A JP H10214204A
Authority
JP
Japan
Prior art keywords
source code
program
breakpoint
display
line number
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
JP9029745A
Other languages
English (en)
Inventor
Masataka Saito
政隆 斉藤
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co 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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP9029745A priority Critical patent/JPH10214204A/ja
Publication of JPH10214204A publication Critical patent/JPH10214204A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【解決手段】 デバッガー1によりブレークポイントを
指定して実行プログラム4を実行させると、ブレークポ
イントにおけるシンボル情報からソースコードの行番号
が取り出される。デバッガー1のソースコードレベル処
理機能部5は、このソースコードの行番号を読み取っ
て、ソースコード3にブレークポイントを表示する文字
等を埋め込む。 【効果】 ソースコードに自動的にブレークポイント表
示が埋め込まれると、ソースコードを変更しながらプロ
グラムを開発する際に一度動作を確認した場所が明示さ
れ、開発管理者等も的確に確認ができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、マイクロプロセッ
サを装備した機器のファームウェアプログラム等を点検
処理するために用いられるデバッガーに関する。
【0002】
【従来の技術】プリンタやファクシミリ、電話機、その
他各種の機器には、通常、その動作を制御するためにマ
イクロプロセッサが組み込まれている。このマイクロプ
ロセッサを動作させるためのファームウェアプログラム
は、機器の構成に応じて開発され、機器の機能向上に合
わせて改良される。このようなファームウェアプログラ
ムが正常に動作するかどうかを確認するためのデバッグ
ツールとしては、ICE(インサーキットエミュレー
タ)やデバッグモニタがある。いずれのデバッガーを使
用する場合にも、プログラマーはプログラムを実行させ
任意の位置でその実行を一時停止させ、レジスタ、その
他の情報を読み取ってプログラムの実行が正しく行われ
ているかどうかを確認する。このようにプログラムを一
時停止させる箇所をブレークポイントと呼ぶが、重要な
プログラムについては、各種のブレークポイントを設定
してデバッグ処理が行われる。
【0003】
【発明が解決しようとする課題】ところで、上記のよう
な従来のデバッガーには次のような解決すべき課題があ
った。例えば、大きなプロジェクトにおいて、チームが
ソフトウェアを分担して開発しているような場合、チー
ムの管理者は各担当者の開発したプログラムについて目
を通す。そして、各担当者がデバッガーを用いて必要な
箇所の動作確認を行ったかどうかを調べる。このような
場合、管理者はソースプログラムを参照しながら重要な
ポイントをチェックするが、デバッグの結果がプログラ
ムを実行した物理アドレスで表示されているような場合
にはソースプログラム上で対応する箇所を見つけるのは
容易でない。
【0004】また、プログラムを部分的に変更しながら
繰り返しデバッグを行うような場合、前回のデバッグの
際に指定したブレークポイントをソースプログラムの行
番号等で記録しておいても、変更したプログラムでは行
番号が変わっており、対応付けが必要になる。従って、
ソースプログラムを変更しながらデバッグを繰り返して
いく場合に、既に動作を確認した場所とそうでない場所
とが記録として明確に残らないという問題があった。
【0005】
【課題を解決するための手段】本発明は以上の点を解決
するため次の構成を採用する。 〈構成1〉指定したブレークポイントでデバッグ対象の
プログラムの実行が一時停止したとき、ブレークポイン
トにおけるプログラムのソースコード行番号を示す情報
を記録するテストカバレージ機能部と、テストカバレー
ジ機能部の記録を参照して、ソースコードの該当部分に
ブレークポイント表示を書き加えて、その結果を出力す
るソースコードレベル処理機能部とを備えたことを特徴
とするデバッガー。
【0006】〈構成2〉構成1において、テストカバレ
ージ機能部の記録から、ソースコード行番号を示す情報
を削除する情報削除処理部を備えたことを特徴とするデ
バッガー。
【0007】〈構成3〉構成1において、任意のブレー
クポイント表示をソースコードから削除する表示削除処
理部を備えたことを特徴とするデバッガー。
【0008】
【発明の実施の形態】以下、本発明の実施の形態を具体
例を用いて説明する。 〈具体例〉図1は、本発明のデバッガーの具体例を示す
ブロック図である。この図は、デバッガー1を用いてプ
ログラムの動作を確認する処理を概略的に表したもので
ある。プログラムはソースコード3で表示され、これが
コンパイルされて実行プログラム4が得られる。実行プ
ログラム4の動作確認のために、デバッガー1にはソー
スコードレベル処理機能部5と、テストカバレージ機能
部6と、カバレージデータ記憶部7とが設けられてい
る。カバレージデータ記憶部7には、ソースコードの行
番号が記憶される。ソースコード3はディスプレイ2や
図示しないプリンタ等によって出力され、プログラマー
やそのプログラマーの作業を管理する管理者によって利
用される。
【0009】上記のデバッガー1は、まず図示しないキ
ーボードやマウス等を利用して、ブレークポイントの指
定11を行い、実行プログラム4の動作を開始させる。
実行プログラム4は指定されたブレークポイントで動作
を一時停止し、その際にテストカバレージ機能部6が動
作する。テストカバレージ機能部6は、指定したブレー
クポイントにおけるプログラムのソースコード行番号を
示す情報を取り出し、カバレージデータ記憶部7に記憶
する機能を持つ部分である。なお、ソースコードの行番
号を示す情報は、実行プログラム4のシンボル情報等か
ら得る。この機能そのものは従来のデバッガーにも設け
られており、更に詳細な説明は省略する。
【0010】ソースコードレベル処理機能部5は、この
ソースコードの行番号を参照し、ソースコード3を書き
換える機能を持つ。ブレークポイント表示の埋め込みや
削除処理10は、こうしたソースコードレベル処理機能
部5の機能である。本発明では、このような機能を持た
せることによって、ソースコードを見ればどの部分を既
に点検したかを容易に確認できる。
【0011】上記のようなデバッガーの具体的な動作を
フローチャートを用いて説明する。図2は、本発明のデ
バッガー動作フローチャートである。本発明のデバッガ
ーでは、図1に示す実行プログラム4を実行させ、ブレ
ークポイントにおいてテストカバレージ機能部6が動作
し、カバレージデータの記録を行う。この図2に示すス
テップS1はそのために設けられた処理で、ブレークポ
イントのみでこうした処理を行うことによって、その位
置でのソースコードの行番号が抽出され、ソースコード
に対し必要な情報の埋め込みが行われることになる。
【0012】図2のステップS2では、実行プログラム
が動作を停止した状態で、デバッグコマンドを待つ。デ
バッグコマンドの入力が行われるとステップS3に進
み、そのコマンドの内容を判定する。もし、GOコマン
ドが入力された場合には、実行プログラムが動作を再開
する。従って、ステップS4から処理を抜け、ブレーク
処理を終了する。一方、本発明の特徴であるブレークポ
イント表示の埋め込みが指示されるとステップS5に移
り、その埋め込み処理が実行される。埋め込みの前後の
状態を図3と図4を用いて説明し、埋め込み処理を図5
を用いて後で説明する。
【0013】図3には、ソースコードの例説明図を示
す。この図はC言語で記載された所定の制御プログラム
であるが、例えば図のN1,N2,N3と表示した行を
ブレークポイントとして動作の確認を行ったものとす
る。この場合、次の図に示すようにしてブレークポイン
ト表示が埋め込まれる。
【0014】図4は、ブレークポイント表示の例説明図
を示す。この図は、図3に示したソースコードに対しブ
レークポイント表示20を埋め込んだものである。実際
には、/*によって区切られたコメント文の中に(BR
K)というブレークポイント表示のための文字を書き加
える。このようなソースコードが、図1に示したディス
プレイ2に表示されたり、プリンタによってプリントア
ウトされると、管理者はこの段階のソースコードについ
てどの部分の動作を確認したかを確実に認識できる。
【0015】図2に示したステップS6は、コマンドが
ブレークポイント表示削除処理である場合の手続きを示
す。点検箇所の確認等が終了すると、再度デバッグのや
り直しを行うような場合やブレークポイントの再設定等
を行う場合には、このブレークポイント表示が邪魔にな
る。そこで、記入したブレークポイント表示を削除する
処理が設定されている。図1に示した表示削除処理部1
4が、この処理を実行する。
【0016】図2のステップS7では、カバレージデー
タのクリア処理が行われる。これは、図1の情報削除処
理部13により処理される。即ち、コマンドがカバレー
ジデータのクリアを指示するものであれば、図1のテス
トカバレージ機能部6が取り込んだカバレージデータが
クリアされる。これによって、新たなデバッグ処理とブ
レークポイント処理の埋め込み等が可能になる。図2の
ステップS8はその他のコマンド処理である。その他の
コマンド処理には、例えばブレーク位置の設定コマン
ド、メモリ内容の表示やその内容の変更、プロセッサ内
部のレジスタの内容表示や内容変更といったものがあ
る。これによって、実際のプログラムの動作確認が行わ
れる。
【0017】図5には、ブレークポイント表示埋め込み
処理動作フローチャートを示す。図2のステップS5に
おけるブレークポイント表示埋め込み処理のコマンドが
実行されると、この図に示すような手順で処理がされ
る。まず、図5のステップS11において、図1に示す
カバレージデータ記憶部7を参照するためのポインタを
初期化する。即ち、つまりカバレージデータ記憶部7の
データを読み出す先頭位置にポインタを設定する。そし
て、ステップS12において、カバレージデータを取り
出す。次のステップS13では、このデータ取り出し処
理が成功したかどうかによってカバレージデータの有無
を判断する。カバレージデータが無ければ処理は終了す
る。カバレージデータがあればステップS14に進む。
【0018】この具体例では、カバレージデータは直接
ソースコードの行番号を示していない。即ち、カバレー
ジデータはプログラムローダー等から出力されるシンボ
ル情報を含んでおり、これを利用してソースコードの行
番号を検索する(ステップS14)。こうしてソースコ
ードの行番号が検索されると、ソースコードレベル処理
機能部5は、その行を検索してコメント行が存在するか
どうかを判断する(ステップS15)。コメント行が存
在する場合には、そのコメント行にブレークポイント表
示があるかどうかを判断する(ステップS16)。ブレ
ークポイント表示があれば、ブレークポイント表示追加
処理は不要なため、ステップS18に飛ぶ。一方、ブレ
ークポイント表示がなければステップS17に進み、図
4を用いて既に説明したようなブレークポイント表示を
コメント行に追加する。
【0019】一方、ステップS15で、その該当する行
にコメント行が無い場合にはステップS19に進み、新
たにコメント行を加えると共にその中にブレークポイン
ト表示を追加する。こうして、ブレークポイント表示が
その該当するソースコードの行に埋め込まれた状態でス
テップS18に進み、カバレージデータを再び参照する
ためにポインタを更新する。即ち、カバレージデータ記
憶部7には、ブレークポイントが複数存在する場合、そ
のブレークポイントの数だけカバレージデータが格納さ
れる。従って、ポインタを1つずつ進め、ステップS1
3からステップS18までの処理を繰り返すことによっ
て、全てのブレークポイントに対する表示をソースコー
ドに埋め込むことができる。以上がソースコードレベル
処理機能部5のブレークポイント表示埋め込み処理であ
る。
【0020】次に、ソースコードレベル処理機能部5の
ブレークポイント表示削除動作を説明する。図6は、ブ
レークポイント表示削除動作を示すフローチャートであ
る。まず、ステップS21において、ソースコードを1
行ずつ読み取るためにポインタを設定し、そのポインタ
を初期化する。ステップS22では、1行目を読み取
り、行データがあるかどうかを判断する。即ち、ここで
ソースコード全てについて処理が終了したかどうかを判
断する。処理が終了していない場合にはステップS23
に進み、その行にコメントが存在するかどうかを判断す
る。コメントが存在しなければステップS26に飛び、
次の行を参照することになる。コメントが存在すれば、
ステップS24において、(BRK)というブレークポ
イント表示が存在するかどうかを判断する。もし、ブレ
ークポイント表示が存在すればステップS25に進み、
コメント行からブレークポイント表示を削除処理する。
ブレークポイント表示がなければステップS24からス
テップS26に飛ぶ。
【0021】こうしてコメント行からブレークポイント
表示を削除した状態でステップS26に進み、ポインタ
を1行進める。即ち、ソースコードの次の行を参照する
ためにポインタを進め、ステップS22〜ステップS2
6の処理を繰り返す。こうして、ソースコードの全ての
行についてブレークポイント削除処理を行った後、この
動作を終了する。こうした動作を実行することによっ
て、ソースコードからブレークポイント表示が削除さ
れ、新たなブレークポイントの指定やデバッグ処理を行
うことができる。
【0022】図7には、デバッグ処理の動作フローチャ
ートを示す。この図を用いて以上の説明を総合したデバ
ッガーの操作方法を説明する。通常、プログラムのデバ
ッグ作業は数日間あるいは数カ月間をかけて行われる。
この図は、そのうちのある1日のプログラムデバッグ作
業終了時に行う処理を示したものである。まず、ステッ
プS31において、該当するプログラムに対するデバッ
グ作業を全て終了したかどうかを判断する。デバッグ作
業を後日も行う場合にはステップS32に進み、プログ
ラムソースファイルの変更を行うかどうかの判断をす
る。プログラムソースファイルを変更しない場合には、
そのままの状態で後日デバッグ作業を開始すればよいか
ら処理を抜ける。一方、プログラムソースファイルを変
更する場合にはステップS33に進み、ブレークポイン
ト表示埋め込みコマンドを実行する。即ち、プログラム
ソースファイルの変更により、既に動作を確認した場所
の行番号が変わって不明確になるのを防ぐためブレーク
ポイント表示を埋め込んでおく。ステップS34におい
て、テストカバレージデータをクリアするコマンドを実
行する。ブレークポイント表示の埋め込みが終了したた
め、図1に示すカバレージデータ記憶部7の内容をクリ
アしておき、後日の作業を円滑にするためである。
【0023】一方、ステップS31において、全てのデ
バッグ作業が完了した場合には、ソースコード中に書き
加えられたブレークポイント表示は既に不要なため、ス
テップS35に進み、ブレークポイント表示の削除コマ
ンドを実行させる。これによってソースコードの中に含
まれたブレークポイント表示は全て無くなり、デバッグ
作業を終了してプログラムは完成する。
【0024】
【発明の効果】以上のように、プログラム開発者がソー
スプログラムをコンパイルして実行プログラムについて
デバッグ処理を行うと、ブレークポイントにおいて、ソ
ースコードの行番号を表示するデータを記録されるか
ら、1日の作業が終了した際、記録されたソースコード
の行番号を参照して、ソースコードレベル処理機能部が
ソースコードに対し該当部分にブレークポイント表示を
記録できる。これによって、ソースコードをプリントア
ウトしたりディスプレイに表示して、プログラマーや管
理者がプログラムのどの部分について動作を確認したか
正確に把握できる。ソースコードの内容を変更しない場
合には、カバレージデータを記録しておく限り、ブレー
クポイントの埋め込み作業はいつ行ってもよい。例え
ば、管理者が動作確認をした箇所の把握をしたい場合に
だけソースコードレベル処理機能部を動作させてもよ
い。いずれの場合でも動作点検箇所を確認できる。
【0025】一方、ソースファイルの内容を変更するよ
うな場合には、ソースコードの行番号がその前後で食い
違う。従って、一旦カバレージデータを参照し、ブレー
クポイント表示をソースコードに埋め込んだ後にソース
コードを書き直すようにする。こうすれば、ソースコー
ドをどんどん書き換えてデバッグを行うような場合にお
いても、動作点検箇所を間違いなく表示し確認できる。
なお、この場合にカバレージデータを残しておくと、次
のブレークポイント表示埋め込み処理に邪魔になるため
クリアすればよい。
【図面の簡単な説明】
【図1】本発明のデバッガー具体例を示すブロック図で
ある。
【図2】本発明のデバッガー動作フローチャートであ
る。
【図3】ソースコードの例説明図である。
【図4】ブレークポイント表示の例説明図である。
【図5】ブレークポイント表示埋め込み処理動作フロー
チャートである。
【図6】ブレークポイント表示削除動作フローチャート
である。
【図7】デバッグ処理の動作フローチャートである。
【符号の説明】
1 デバッガー 2 ディスプレイ 3 ソースコード 4 実行プログラム 5 ソースコードレベル処理機能部 6 テストカバレージ機能部 7 カバレージデータ記憶部

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 指定したブレークポイントでデバッグ対
    象のプログラムの実行が一時停止したとき、ブレークポ
    イントにおけるプログラムのソースコード行番号を示す
    情報を記録するテストカバレージ機能部と、 テストカバレージ機能部の記録を参照して、ソースコー
    ドの該当部分にブレークポイント表示を書き加えて、そ
    の結果を出力するソースコードレベル処理機能部とを備
    えたことを特徴とするデバッガー。
  2. 【請求項2】 請求項1において、 テストカバレージ機能部の記録から、ソースコード行番
    号を示す情報を削除する情報削除処理部を備えたことを
    特徴とするデバッガー。
  3. 【請求項3】 請求項1において、 任意のブレークポイント表示をソースコードから削除す
    る表示削除処理部を備えたことを特徴とするデバッガ
    ー。
JP9029745A 1997-01-29 1997-01-29 デバッガー Pending JPH10214204A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9029745A JPH10214204A (ja) 1997-01-29 1997-01-29 デバッガー

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9029745A JPH10214204A (ja) 1997-01-29 1997-01-29 デバッガー

Publications (1)

Publication Number Publication Date
JPH10214204A true JPH10214204A (ja) 1998-08-11

Family

ID=12284646

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9029745A Pending JPH10214204A (ja) 1997-01-29 1997-01-29 デバッガー

Country Status (1)

Country Link
JP (1) JPH10214204A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8826239B2 (en) 2010-10-06 2014-09-02 International Business Machines Corporation Asynchronous code testing in integrated development environment (IDE)
US8875104B2 (en) 2010-11-09 2014-10-28 International Business Machines Corporation Efficiently developing software using test cases to check the conformity of the software to the requirements
CN104123218A (zh) * 2013-04-23 2014-10-29 腾讯科技(深圳)有限公司 一种代码覆盖测试方法、装置和系统

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8826239B2 (en) 2010-10-06 2014-09-02 International Business Machines Corporation Asynchronous code testing in integrated development environment (IDE)
US8875104B2 (en) 2010-11-09 2014-10-28 International Business Machines Corporation Efficiently developing software using test cases to check the conformity of the software to the requirements
US8875105B2 (en) 2010-11-09 2014-10-28 International Business Machines Corporation Efficiently developing software using test cases to check the conformity of the software to the requirements
CN104123218A (zh) * 2013-04-23 2014-10-29 腾讯科技(深圳)有限公司 一种代码覆盖测试方法、装置和系统
CN104123218B (zh) * 2013-04-23 2015-06-24 腾讯科技(深圳)有限公司 一种代码覆盖测试方法、装置和系统

Similar Documents

Publication Publication Date Title
US5124989A (en) Method of debugging a computer program
EP0785510B1 (en) Program debugging system for debugging a program having a graphical user interface
EP1130518B1 (en) Software analysis system having an apparatus for selectively collecting analysis data from a target system executing software instrumented with tag statements and method for use thereof
US7266809B2 (en) Software debugger and software development support system for microcomputer operable to execute conditional execution instruction
JP3407809B2 (ja) コンピュータ・アプリケーション・ソフトウェアの自動化試験システム
KR950006619B1 (ko) 번역 코드 실행용의 개선된 에러 기록 방법 및 시스템
US4802165A (en) Method and apparatus of debugging computer programs
US7426717B1 (en) System and method for debugging files in a runtime environment
US7251808B2 (en) Graphical debugger with loadmap display manager and custom record display manager displaying user selected customized records from bound program objects
CA2153075A1 (en) Tool and method for diagnosing and correcting errors in a computer program
JP2006185211A (ja) プログラム解析装置、テスト実行装置、その解析方法及びプログラム
JP2008293138A (ja) ソフトウェア開発支援プログラム、ソフトウェア開発支援方法
EP0111952A2 (en) Verification of a processor architecture having a partial instruction set
JP3206641B2 (ja) マイコンシステムのデバッグ方法、デバッグ装置及びデバッグプログラムを記録した記録媒体
US20030177471A1 (en) System and method for graphically developing a program
US6425122B1 (en) Single stepping system and method for tightly coupled processors
JPH10214204A (ja) デバッガー
US6611924B1 (en) Reducing code size of debug output statements
KR101251792B1 (ko) 디버거를 이용한 임베디드 소프트웨어 단위 테스트 자동화 장치 및 방법
JP3459898B2 (ja) 組み込みシステムの障害情報トレーサ装置
JP4208591B2 (ja) ブレイクポイント設定装置、ブレイクポイント設定方法及びブレイクポイント設定プログラム
Spinellis Debuggers and logging frameworks
JP3183228B2 (ja) プログラムデバッグ装置およびデバッグ方法
JP2812289B2 (ja) デバッグ装置およびそのデバッグ方法
JPH05181699A (ja) デバッグ処理システム