JPH1021116A - シンボリックデバッガの関数トレース方式 - Google Patents
シンボリックデバッガの関数トレース方式Info
- Publication number
- JPH1021116A JPH1021116A JP8195294A JP19529496A JPH1021116A JP H1021116 A JPH1021116 A JP H1021116A JP 8195294 A JP8195294 A JP 8195294A JP 19529496 A JP19529496 A JP 19529496A JP H1021116 A JPH1021116 A JP H1021116A
- Authority
- JP
- Japan
- Prior art keywords
- load module
- function
- information
- address
- stack
- 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.)
- Granted
Links
- 230000006870 function Effects 0.000 claims description 80
- 238000000034 method Methods 0.000 claims description 17
- 238000004891 communication Methods 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 7
- 239000000284 extract Substances 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
Landscapes
- Debugging And Monitoring (AREA)
- Exchange Systems With Centralized Control (AREA)
Abstract
(57)【要約】
【課題】デバッグ情報がないロードモジュールを入力し
て関数トレースを行えるようにする。 【解決手段】キーボード3から関数トレースコマンドが
入力されると、シンボリックデバッガ21は、交換機1か
らトレースに必要な情報を通信回線5を介してワークス
テーション2に転送する。その後、実行番地をキーにロ
ードモジュール群22を検索し、実行番地を含むロードモ
ジュールと関数とを求める。求めたロードモジュールに
デバッグ情報がない場合には、ロードモジュールのテキ
スト情報から命令を解析してスタックフレームサイズと
戻り番地の格納位置とを求め、スタック情報から関数の
戻り番地を取り出し、実行結果をディスプレイ4に表示
する。最初に実行された関数が検索されるまで、スタッ
ク先頭番地からスタックフレームサイズを引いたものを
スタック先頭番地、戻り番地を実行番地とみなして処理
を繰り返す。
て関数トレースを行えるようにする。 【解決手段】キーボード3から関数トレースコマンドが
入力されると、シンボリックデバッガ21は、交換機1か
らトレースに必要な情報を通信回線5を介してワークス
テーション2に転送する。その後、実行番地をキーにロ
ードモジュール群22を検索し、実行番地を含むロードモ
ジュールと関数とを求める。求めたロードモジュールに
デバッグ情報がない場合には、ロードモジュールのテキ
スト情報から命令を解析してスタックフレームサイズと
戻り番地の格納位置とを求め、スタック情報から関数の
戻り番地を取り出し、実行結果をディスプレイ4に表示
する。最初に実行された関数が検索されるまで、スタッ
ク先頭番地からスタックフレームサイズを引いたものを
スタック先頭番地、戻り番地を実行番地とみなして処理
を繰り返す。
Description
【0001】
【発明の属する技術分野】本発明は、交換システム等の
プログラムをデバッグする際に用いられるシンボリック
デバッガの関数トレース方式に関し、特にデバッグ情報
がないロージモジュールを入力した場合でも関数トレー
スを行うことができるシンボリックデバッガの関数トレ
ース方式に関する。
プログラムをデバッグする際に用いられるシンボリック
デバッガの関数トレース方式に関し、特にデバッグ情報
がないロージモジュールを入力した場合でも関数トレー
スを行うことができるシンボリックデバッガの関数トレ
ース方式に関する。
【0002】
【従来の技術】従来、交換システム等のプログラムをデ
バッグする際には、プログラム実行中にどのような順序
で関数が呼び出されたかを知るために、例えば特開平5
−204702号公報に記載されているような方法のも
とで、シンボリックデバッガの関数トレースコマンドを
使用している。
バッグする際には、プログラム実行中にどのような順序
で関数が呼び出されたかを知るために、例えば特開平5
−204702号公報に記載されているような方法のも
とで、シンボリックデバッガの関数トレースコマンドを
使用している。
【0003】なお、関数トレースコマンドを使用するた
めには、ソースプログラムの翻訳時にデバッグ情報を生
成するように指示してデバッグ情報があるロードモジュ
ールを作成しておき、シンボリックデバッガにより関数
の呼び出し順序を知りたいところでプログラムの実行を
停止させ、キーボードから関数トレースコマンドを入力
して、どのような順序で関数が呼び出されたかをディス
プレイに表示させる。
めには、ソースプログラムの翻訳時にデバッグ情報を生
成するように指示してデバッグ情報があるロードモジュ
ールを作成しておき、シンボリックデバッガにより関数
の呼び出し順序を知りたいところでプログラムの実行を
停止させ、キーボードから関数トレースコマンドを入力
して、どのような順序で関数が呼び出されたかをディス
プレイに表示させる。
【0004】図5は、従来のシンボリックデバッガの関
数トレース方式の一例を説明するためのブロック図であ
る。
数トレース方式の一例を説明するためのブロック図であ
る。
【0005】図5を参照すると、交換機1とワークステ
ーション2とが通信回線5を介して接続され、ワークス
テーション2には、シンボリックデバッガ21、ロード
モジュール群22、コマンドを入力するためのキーボー
ド3、および実行結果を出力するためのディスプレイ4
が備えられている。
ーション2とが通信回線5を介して接続され、ワークス
テーション2には、シンボリックデバッガ21、ロード
モジュール群22、コマンドを入力するためのキーボー
ド3、および実行結果を出力するためのディスプレイ4
が備えられている。
【0006】シンボリックデバッガ21は、情報収集手
段211、ロードモジュール検索手段212、関数検索
手段213、デバッグ情報検索手段215、スタック検
索手段217、および実行結果出力手段218を含む。
段211、ロードモジュール検索手段212、関数検索
手段213、デバッグ情報検索手段215、スタック検
索手段217、および実行結果出力手段218を含む。
【0007】情報収集手段211は、キーボード3から
関数トレースコマンドが入力されると、交換機1のレジ
スタ11から実行番地およびスタック先頭番地を、メモ
リ12からスタック情報を読み出し、通信回線5を介し
てワークステーション2に転送する。
関数トレースコマンドが入力されると、交換機1のレジ
スタ11から実行番地およびスタック先頭番地を、メモ
リ12からスタック情報を読み出し、通信回線5を介し
てワークステーション2に転送する。
【0008】ロードモジュール検索手段212は、情報
収集手段211により転送された実行番地をキーにロー
ドモジュール群22を検索してロードモジュールを求め
る。
収集手段211により転送された実行番地をキーにロー
ドモジュール群22を検索してロードモジュールを求め
る。
【0009】関数検索手段213は、情報収集手段21
1により転送された実行番地をキーにロードモジュール
検索手段212により求められたロードモジュールを検
索して関数を求める。
1により転送された実行番地をキーにロードモジュール
検索手段212により求められたロードモジュールを検
索して関数を求める。
【0010】デバッグ情報検索手段215は、ロードモ
ジュール検索手段212および関数検索手段213によ
り求められたロードモジュールのデバッグ情報から、1
回の関数呼び出しにより格納されるスタックの大きさ
(スタックフレームサイズ)と、関数の戻り番地が格納
されているスタック先頭番地からのオフセット(戻り番
地の格納位置)と、ソースファイル名、行番号およびパ
ラメータ情報(関数情報)と、を求める。
ジュール検索手段212および関数検索手段213によ
り求められたロードモジュールのデバッグ情報から、1
回の関数呼び出しにより格納されるスタックの大きさ
(スタックフレームサイズ)と、関数の戻り番地が格納
されているスタック先頭番地からのオフセット(戻り番
地の格納位置)と、ソースファイル名、行番号およびパ
ラメータ情報(関数情報)と、を求める。
【0011】スタック検索手段217は、情報収集手段
211により転送されたスタック情報から、デバッグ情
報検索手段215により求められた戻り番地の格納位置
に格納されている関数の戻り番地を取り出す。
211により転送されたスタック情報から、デバッグ情
報検索手段215により求められた戻り番地の格納位置
に格納されている関数の戻り番地を取り出す。
【0012】実行結果出力手段218は、トレースした
結果をディスプレイ4に出力する。
結果をディスプレイ4に出力する。
【0013】
【発明が解決しようとする課題】しかしながら、前述し
た従来のシンボリックデバッガの関数トレース方式で
は、ロードモジュールのデバッグ情報から関数トレース
に必要なスタックフレームサイズと戻り番地の格納位置
とを求めているため、デバッグ情報があるロードモジュ
ールを入力しないと、シンボリックデバッガにより関数
トレースを行うことができない。
た従来のシンボリックデバッガの関数トレース方式で
は、ロードモジュールのデバッグ情報から関数トレース
に必要なスタックフレームサイズと戻り番地の格納位置
とを求めているため、デバッグ情報があるロードモジュ
ールを入力しないと、シンボリックデバッガにより関数
トレースを行うことができない。
【0014】また、前述した従来のシンボリックデバッ
ガの関数トレース方式では、交換機等は通常その使用で
きるディスクおよびメモリの量に制約があるため、その
ような交換機等上のディスクおよびメモリを大量に消費
するデバッグ情報を持つロードモジュールを入力するこ
とができない場合がある。
ガの関数トレース方式では、交換機等は通常その使用で
きるディスクおよびメモリの量に制約があるため、その
ような交換機等上のディスクおよびメモリを大量に消費
するデバッグ情報を持つロードモジュールを入力するこ
とができない場合がある。
【0015】さらに、前述した従来のシンボリックデバ
ッガの関数トレース方式では、デバッグ情報がデバッグ
時にのみ必要なものであるため、デバッグ作業終了時に
再翻訳してデバッグ情報のないロードモジュールを作成
しなければならない。
ッガの関数トレース方式では、デバッグ情報がデバッグ
時にのみ必要なものであるため、デバッグ作業終了時に
再翻訳してデバッグ情報のないロードモジュールを作成
しなければならない。
【0016】従って、本発明は前述した事情に鑑みてな
されたものであり、ロードモジュールにデバッグ情報が
ない場合でも、シンボリックデバッガの関数トレースコ
マンドを入力するだけでプログラム実行中にどのような
順序で関数が呼び出されたかを表示させることができる
シンボリックデバッガの関数トレース方式を提供するこ
とを目的とする。
されたものであり、ロードモジュールにデバッグ情報が
ない場合でも、シンボリックデバッガの関数トレースコ
マンドを入力するだけでプログラム実行中にどのような
順序で関数が呼び出されたかを表示させることができる
シンボリックデバッガの関数トレース方式を提供するこ
とを目的とする。
【0017】
【課題を解決するための手段】前述した目的を達成する
ため、本発明は、交換システム等のプログラムをデバッ
グするためのシンボリックデバッガにおいて、ロードモ
ジュールの命令を解析してスタックフレームサイズと戻
り番地の格納位置とを求める命令解析手段(図1の21
6)を備え、デバッグ情報がないロードモジュールを入
力して関数トレースを行うことを特徴とするシンボリッ
クデバッガの関数トレース方式を提供する。
ため、本発明は、交換システム等のプログラムをデバッ
グするためのシンボリックデバッガにおいて、ロードモ
ジュールの命令を解析してスタックフレームサイズと戻
り番地の格納位置とを求める命令解析手段(図1の21
6)を備え、デバッグ情報がないロードモジュールを入
力して関数トレースを行うことを特徴とするシンボリッ
クデバッガの関数トレース方式を提供する。
【0018】また、本発明のシンボリックデバッガの関
数トレース方式は、ロードモジュールにデバッグ情報が
あるか否かを識別するロードモジュール識別手段(図1
の214)をさらに備え、デバッグ情報があるロードモ
ジュールに対してはそのデバッグ情報を利用して関数ト
レースを行い、デバッグ情報がないロードモジュールに
対しては前記命令解析手段により必要な情報を求めてか
ら関数トレースを行うことを特徴とする。
数トレース方式は、ロードモジュールにデバッグ情報が
あるか否かを識別するロードモジュール識別手段(図1
の214)をさらに備え、デバッグ情報があるロードモ
ジュールに対してはそのデバッグ情報を利用して関数ト
レースを行い、デバッグ情報がないロードモジュールに
対しては前記命令解析手段により必要な情報を求めてか
ら関数トレースを行うことを特徴とする。
【0019】このように、本発明によれば、命令解析手
段により、ロードモジュールのテキスト情報からスタッ
クフレームサイズと戻り番地の格納位置とを求めるた
め、デバッグ情報がないロードモジュールを入力した場
合でも関数トレースを行うことができる。
段により、ロードモジュールのテキスト情報からスタッ
クフレームサイズと戻り番地の格納位置とを求めるた
め、デバッグ情報がないロードモジュールを入力した場
合でも関数トレースを行うことができる。
【0020】また、本発明によれば、ロードモジュール
識別手段により、ロードモジュールにデバッグ情報があ
るか否かを判断し、デバッグ情報の有無に応じて関数ト
レースの方法を替えるため、デバッグ情報があるロード
モジュールとデバッグ情報がないロードモジュールのい
ずれを入力しても関数トレースを行うことができる。
識別手段により、ロードモジュールにデバッグ情報があ
るか否かを判断し、デバッグ情報の有無に応じて関数ト
レースの方法を替えるため、デバッグ情報があるロード
モジュールとデバッグ情報がないロードモジュールのい
ずれを入力しても関数トレースを行うことができる。
【0021】
【発明の実施の形態】次に、本発明の実施の形態につい
て図面を参照して詳細に説明する。
て図面を参照して詳細に説明する。
【0022】まず、本発明の第1の実施の形態について
説明する。図1は、本発明の第1の実施の形態の構成を
示すブロック図である。
説明する。図1は、本発明の第1の実施の形態の構成を
示すブロック図である。
【0023】図1を参照すると、本発明の第1の実施の
形態は、交換機1とワークステーション2とが通信回線
5を介して接続され、ワークステーション2には、シン
ボリックデバッガ21、ロードモジュール群22、コマ
ンドを入力するためのキーボード3、および実行結果を
出力するためのディスプレイ4が備えられている。
形態は、交換機1とワークステーション2とが通信回線
5を介して接続され、ワークステーション2には、シン
ボリックデバッガ21、ロードモジュール群22、コマ
ンドを入力するためのキーボード3、および実行結果を
出力するためのディスプレイ4が備えられている。
【0024】シンボリックデバッガ21は、情報収集手
段211、ロードモジュール検索手段212、関数検索
手段213、ロードモジュール識別手段214、デバッ
グ情報検索手段215、命令解析手段216、スタック
検索手段217、および実行結果出力手段218を含
む。
段211、ロードモジュール検索手段212、関数検索
手段213、ロードモジュール識別手段214、デバッ
グ情報検索手段215、命令解析手段216、スタック
検索手段217、および実行結果出力手段218を含
む。
【0025】情報収集手段211は、キーボード3から
関数トレースコマンドが入力されると、交換機1のレジ
スタ11から実行番地およびスタック先頭番地を、メモ
リ12からスタック情報を読み出し、通信回線5を介し
てワークステーション2に転送する。
関数トレースコマンドが入力されると、交換機1のレジ
スタ11から実行番地およびスタック先頭番地を、メモ
リ12からスタック情報を読み出し、通信回線5を介し
てワークステーション2に転送する。
【0026】ロードモジュール検索手段212は、情報
収集手段211により転送された実行番地をキーにロー
ドモジュール群22を検索してロードモジュールを求め
る。
収集手段211により転送された実行番地をキーにロー
ドモジュール群22を検索してロードモジュールを求め
る。
【0027】関数検索手段213は、情報収集手段21
1により転送された実行番地をキーにロードモジュール
検索手段212により求められたロードモジュールを検
索して関数を求める。
1により転送された実行番地をキーにロードモジュール
検索手段212により求められたロードモジュールを検
索して関数を求める。
【0028】ロードモジュール識別手段214は、ロー
ドモジュール検索手段212により求められたロードモ
ジュールにデバッグ情報があるか否かを識別する。
ドモジュール検索手段212により求められたロードモ
ジュールにデバッグ情報があるか否かを識別する。
【0029】ロードモジュール識別手段214によりデ
バッグ情報があると判断された場合には、デバッグ情報
検索手段215は、ロードモジュール検索手段212お
よび関数検索手段213により求められたロードモジュ
ールのデバッグ情報から、スタックフレームサイズと、
戻り番地の格納位置と、関数情報と、を求める。
バッグ情報があると判断された場合には、デバッグ情報
検索手段215は、ロードモジュール検索手段212お
よび関数検索手段213により求められたロードモジュ
ールのデバッグ情報から、スタックフレームサイズと、
戻り番地の格納位置と、関数情報と、を求める。
【0030】一方、ロードモジュール識別手段214に
よりデバッグ情報がないと判断された場合には、命令解
析手段216は、ロードモジュール検索手段212およ
び関数検索手段213により求められたロードモジュー
ルのテキスト情報から、スタックフレームサイズと、戻
り番地の格納位置と、を求める。
よりデバッグ情報がないと判断された場合には、命令解
析手段216は、ロードモジュール検索手段212およ
び関数検索手段213により求められたロードモジュー
ルのテキスト情報から、スタックフレームサイズと、戻
り番地の格納位置と、を求める。
【0031】スタック検索手段217は、情報収集手段
211により転送されたスタック情報から、デバッグ情
報検索手段215または命令解析手段216により求め
られた戻り番地の格納位置に格納されている関数の戻り
番地を取り出す。
211により転送されたスタック情報から、デバッグ情
報検索手段215または命令解析手段216により求め
られた戻り番地の格納位置に格納されている関数の戻り
番地を取り出す。
【0032】実行結果出力手段218は、トレースした
結果をディスプレイ4に出力する。
結果をディスプレイ4に出力する。
【0033】次に、本発明の第1の実施の形態の動作に
ついて説明する。図2は、本発明の第1の実施の形態の
動作を説明するためのフローチャートである。
ついて説明する。図2は、本発明の第1の実施の形態の
動作を説明するためのフローチャートである。
【0034】図1および図2を参照すると、シンボリッ
クデバッガ21は、キーボード3から関数トレースコマ
ンドが入力されると、情報収集手段211により、交換
機1のレジスタ11から実行番地およびスタック先頭番
地を、メモリ12からスタック情報を読み出し、通信回
線5を介してワークステーション2に転送し(ステップ
A1)、スタック先頭番地と実行番地とを求める(ステ
ップA2、A3)。
クデバッガ21は、キーボード3から関数トレースコマ
ンドが入力されると、情報収集手段211により、交換
機1のレジスタ11から実行番地およびスタック先頭番
地を、メモリ12からスタック情報を読み出し、通信回
線5を介してワークステーション2に転送し(ステップ
A1)、スタック先頭番地と実行番地とを求める(ステ
ップA2、A3)。
【0035】その後、ロードモジュール検索手段212
は、情報収集手段211により求められた実行番地をキ
ーにして、ロードモジュール群22のロードモジュール
のテキスト情報の割り付け番地とサイズとからロードモ
ジュールを求める(ステップA4、A5)。
は、情報収集手段211により求められた実行番地をキ
ーにして、ロードモジュール群22のロードモジュール
のテキスト情報の割り付け番地とサイズとからロードモ
ジュールを求める(ステップA4、A5)。
【0036】また、関数検索手段213は、情報収集手
段211により求められた実行番地をキーにして、ロー
ドモジュール検索手段212により求められたロードモ
ジュールのシンボル情報である関数名と関数の割り付け
番地とから関数を求める(ステップA6、A7)。
段211により求められた実行番地をキーにして、ロー
ドモジュール検索手段212により求められたロードモ
ジュールのシンボル情報である関数名と関数の割り付け
番地とから関数を求める(ステップA6、A7)。
【0037】その後、ロードモジュール識別手段214
は、ロードモジュール検索手段212により求められた
ロードモジュールにデバッグ情報があるか否かを識別す
る(ステップA8、A9)。
は、ロードモジュール検索手段212により求められた
ロードモジュールにデバッグ情報があるか否かを識別す
る(ステップA8、A9)。
【0038】ロードモジュール識別手段214によりデ
バッグ情報があると判断された場合(ステップA9でY
ES)には、デバッグ情報検索手段215は、ロードモ
ジュール検索手段212および関数検索手段213によ
り求められたロードモジュールのデバッグ情報から、ス
タックフレームサイズと、戻り番地の格納位置と、関数
情報と、を求める(ステップA10、A11、A1
2)。
バッグ情報があると判断された場合(ステップA9でY
ES)には、デバッグ情報検索手段215は、ロードモ
ジュール検索手段212および関数検索手段213によ
り求められたロードモジュールのデバッグ情報から、ス
タックフレームサイズと、戻り番地の格納位置と、関数
情報と、を求める(ステップA10、A11、A1
2)。
【0039】一方、ロードモジュール識別手段214に
よりデバッグ情報がないと判断された場合(ステップA
9でNO)には、命令解析手段216は、ロードモジュ
ール検索手段212および関数検索手段213により求
められたロードモジュールの関数のテキスト情報から1
命令ずつ命令を取り出し(ステップA13)、取り出し
た命令がスタックにスタックフレーム分の情報を格納し
ている命令の場合には、スタックフレームサイズを求め
る(ステップA14、A15)。また、スタックに関数
の戻り番地を格納している命令の場合には、戻り番地の
格納位置を求める(ステップA16、A17)。
よりデバッグ情報がないと判断された場合(ステップA
9でNO)には、命令解析手段216は、ロードモジュ
ール検索手段212および関数検索手段213により求
められたロードモジュールの関数のテキスト情報から1
命令ずつ命令を取り出し(ステップA13)、取り出し
た命令がスタックにスタックフレーム分の情報を格納し
ている命令の場合には、スタックフレームサイズを求め
る(ステップA14、A15)。また、スタックに関数
の戻り番地を格納している命令の場合には、戻り番地の
格納位置を求める(ステップA16、A17)。
【0040】スタック検索手段217は、情報収集手段
211により転送されたスタック情報から、デバッグ情
報検索手段215または命令解析手段216により求め
られた戻り番地の格納位置に格納されている関数の戻り
番地を取り出す(ステップA18)。
211により転送されたスタック情報から、デバッグ情
報検索手段215または命令解析手段216により求め
られた戻り番地の格納位置に格納されている関数の戻り
番地を取り出す(ステップA18)。
【0041】実行結果出力手段218は、以上の処理に
より求められた結果をディスプレイ4に出力する(ステ
ップA19)。
より求められた結果をディスプレイ4に出力する(ステ
ップA19)。
【0042】なお、最初に実行された関数が検索される
まで(ステップA20でYESと判断されるまで)、ス
タック先頭番地からスタックフレームサイズを引いたも
のをスタック先頭番地、関数の戻り番地を実行番地とみ
なし、ステップA2ないしA20の処理を繰り返す。
まで(ステップA20でYESと判断されるまで)、ス
タック先頭番地からスタックフレームサイズを引いたも
のをスタック先頭番地、関数の戻り番地を実行番地とみ
なし、ステップA2ないしA20の処理を繰り返す。
【0043】以上のように、本発明の第1の実施の形態
によれば、デバッグ情報があるロードモジュールとデバ
ッグ情報がないロードモジュールのいずれも入力するこ
とができ、ロードモジュールにデバッグ情報がない場合
にも関数トレースを行うことができる。
によれば、デバッグ情報があるロードモジュールとデバ
ッグ情報がないロードモジュールのいずれも入力するこ
とができ、ロードモジュールにデバッグ情報がない場合
にも関数トレースを行うことができる。
【0044】次に、本発明の第2の実施の形態について
説明する。図4は、本発明の第2の実施の形態の構成を
示すブロック図である。
説明する。図4は、本発明の第2の実施の形態の構成を
示すブロック図である。
【0045】図4を参照すると、本発明の第2の実施の
形態は、情報収集手段211が交換機1から通信回線5
を介して情報を転送するのではなく、予め交換機1のレ
ジスタ11から実行番地およびスタック先頭番地をレジ
スタ情報23として、メモリ12からスタック情報をメ
モリ情報24として転送しておき、シンボリックデバッ
ガ21の転送コマンドにより、これらの予め転送された
レジスタ情報23およびメモリ情報24を読み込むよう
にしたものであり、この点で前述した本発明の第1の実
施の形態と異なる。
形態は、情報収集手段211が交換機1から通信回線5
を介して情報を転送するのではなく、予め交換機1のレ
ジスタ11から実行番地およびスタック先頭番地をレジ
スタ情報23として、メモリ12からスタック情報をメ
モリ情報24として転送しておき、シンボリックデバッ
ガ21の転送コマンドにより、これらの予め転送された
レジスタ情報23およびメモリ情報24を読み込むよう
にしたものであり、この点で前述した本発明の第1の実
施の形態と異なる。
【0046】なお、本発明の第2の実施の形態によれ
ば、前述した本発明の第1の実施の形態の効果に加え
て、交換機を使用せずに関数トレースを行うことができ
るという効果も有する。
ば、前述した本発明の第1の実施の形態の効果に加え
て、交換機を使用せずに関数トレースを行うことができ
るという効果も有する。
【0047】
【実施例】次に、前述した本発明の実施の形態をより具
体的に説明するために、本発明の実施例について図面を
参照して詳細に説明する。
体的に説明するために、本発明の実施例について図面を
参照して詳細に説明する。
【0048】前述した本発明の第1の実施の形態の一実
施例として、図1において、交換機1とワークステーシ
ョン2とがGP−IB(general purpose interface bu
s)を介して接続され、ワークステーション2には、シ
ンボリックデバッガ21、デバッグ情報がないロードモ
ジュール“LM1”、“LM2”、コマンドを入力するための
キーボード3、および実行結果を出力するためのディス
プレイ4が備えられているものとする。
施例として、図1において、交換機1とワークステーシ
ョン2とがGP−IB(general purpose interface bu
s)を介して接続され、ワークステーション2には、シ
ンボリックデバッガ21、デバッグ情報がないロードモ
ジュール“LM1”、“LM2”、コマンドを入力するための
キーボード3、および実行結果を出力するためのディス
プレイ4が備えられているものとする。
【0049】次に、本発明の一実施例の動作について説
明する。なお、デバッグの対象となるロードモジュール
および関数の割り付け番地は、図3に示すようなもので
あるとする。
明する。なお、デバッグの対象となるロードモジュール
および関数の割り付け番地は、図3に示すようなもので
あるとする。
【0050】図1、図2および図3を参照すると、シン
ボリックデバッガ21は、キーボード3から関数トレー
スコマンドが入力されると、情報収集手段211によ
り、交換機1のレジスタ11から実行番地およびスタッ
ク先頭番地を、メモリ12からスタック情報を読み出
し、GP−IBを介してワークステーション2に転送し
(ステップA1)、スタック先頭番地“0x20000100”と
実行番地“0x40003010”とを求める(ステップA2、A
3)。
ボリックデバッガ21は、キーボード3から関数トレー
スコマンドが入力されると、情報収集手段211によ
り、交換機1のレジスタ11から実行番地およびスタッ
ク先頭番地を、メモリ12からスタック情報を読み出
し、GP−IBを介してワークステーション2に転送し
(ステップA1)、スタック先頭番地“0x20000100”と
実行番地“0x40003010”とを求める(ステップA2、A
3)。
【0051】その後、ロードモジュール検索手段212
は、情報収集手段211により求められた実行番地“0x
40003010”をキーにして、図3に示すようなロードモジ
ュール群22のロードモジュール“LM1”、“LM2”のテ
キスト情報の割り付け番地とサイズとからロードモジュ
ール“LM2”を求める(ステップA4、A5)。
は、情報収集手段211により求められた実行番地“0x
40003010”をキーにして、図3に示すようなロードモジ
ュール群22のロードモジュール“LM1”、“LM2”のテ
キスト情報の割り付け番地とサイズとからロードモジュ
ール“LM2”を求める(ステップA4、A5)。
【0052】また、関数検索手段213は、情報収集手
段211により求められた実行番地“0x40003010”をキ
ーにして、ロードモジュール検索手段212により求め
られたロードモジュール“LM2”のシンボル情報である
関数名と関数の割り付け番地とから関数“func21”を求
める(ステップA6、A7)。
段211により求められた実行番地“0x40003010”をキ
ーにして、ロードモジュール検索手段212により求め
られたロードモジュール“LM2”のシンボル情報である
関数名と関数の割り付け番地とから関数“func21”を求
める(ステップA6、A7)。
【0053】その後、ロードモジュール識別手段214
は、ロードモジュール検索手段212により求められた
ロードモジュール“LM2”にデバッグ情報があるか否か
を識別する(ステップA8、A9)。
は、ロードモジュール検索手段212により求められた
ロードモジュール“LM2”にデバッグ情報があるか否か
を識別する(ステップA8、A9)。
【0054】ここで、ロードモジュール“LM2”はデバ
ッグ情報がないため、命令解析手段216は、求められ
たロードモジュール“LM2”の関数“func21”のテキス
ト情報から1命令ずつ命令を取り出し(ステップA1
3)、取り出した命令がスタックにスタックフレーム分
の情報を格納している命令である“addiu sp,sp,-0x3
0”からスタックフレームサイズ“0x30”を求める(ス
テップA14、A15)。また、スタックに関数の戻り
番地を格納している命令である“sw ra,0x10(sp)”から
戻り番地の格納位置“0x10”を求める(ステップA1
6、A17)。
ッグ情報がないため、命令解析手段216は、求められ
たロードモジュール“LM2”の関数“func21”のテキス
ト情報から1命令ずつ命令を取り出し(ステップA1
3)、取り出した命令がスタックにスタックフレーム分
の情報を格納している命令である“addiu sp,sp,-0x3
0”からスタックフレームサイズ“0x30”を求める(ス
テップA14、A15)。また、スタックに関数の戻り
番地を格納している命令である“sw ra,0x10(sp)”から
戻り番地の格納位置“0x10”を求める(ステップA1
6、A17)。
【0055】スタック検索手段217は、情報収集手段
211により転送されたスタック情報から、求められた
戻り番地の格納位置“0x10”に格納されている関数の戻
り番地“0x40000050”を取り出す(ステップA18)。
211により転送されたスタック情報から、求められた
戻り番地の格納位置“0x10”に格納されている関数の戻
り番地“0x40000050”を取り出す(ステップA18)。
【0056】実行結果出力手段218は、以上の処理に
より求められた結果“0x40003010 LM2 func21()”をデ
ィスプレイ4に出力する(ステップA19)。
より求められた結果“0x40003010 LM2 func21()”をデ
ィスプレイ4に出力する(ステップA19)。
【0057】そして、スタック先頭番地“0x20000100”
からスタックフレームサイズ“0x30”を引いた“0x2000
0070”をスタック先頭番地、関数の戻り番地“0x400000
50”を実行番地とみなし、ステップA2ないしA20の
処理を繰り返し、求められた結果“0x40000050 LM1 ros
main()”をディスプレイ4に出力する(ステップA1
9)。
からスタックフレームサイズ“0x30”を引いた“0x2000
0070”をスタック先頭番地、関数の戻り番地“0x400000
50”を実行番地とみなし、ステップA2ないしA20の
処理を繰り返し、求められた結果“0x40000050 LM1 ros
main()”をディスプレイ4に出力する(ステップA1
9)。
【0058】なお、検索された関数が、最初に実行され
た関数“ros main”であるため、この時点で処理を終了
する。
た関数“ros main”であるため、この時点で処理を終了
する。
【0059】
【発明の効果】以上説明したように、本発明によれば、
デバッグ情報がないロードモジュールを入力した場合で
も関数トレースを行うことができるため、交換機上のデ
ィスクおよびメモリの使用量を削減することができる。
デバッグ情報がないロードモジュールを入力した場合で
も関数トレースを行うことができるため、交換機上のデ
ィスクおよびメモリの使用量を削減することができる。
【0060】また、本発明によれば、交換機を使用せず
に関数トレースを行うこともできるため、交換機を使用
する時間を短縮することができる。
に関数トレースを行うこともできるため、交換機を使用
する時間を短縮することができる。
【図1】本発明の第1の実施の形態の構成を示すブロッ
ク図である。
ク図である。
【図2】本発明の第1の実施の形態の動作を説明するた
めのフローチャートである。
めのフローチャートである。
【図3】本発明の第1の実施の形態の一実施例における
デバッグ対象となるロードモジュールおよび関数の割り
付け番地の具体例を示す図である。
デバッグ対象となるロードモジュールおよび関数の割り
付け番地の具体例を示す図である。
【図4】本発明の第2の実施の形態の構成を示すブロッ
ク図である。
ク図である。
【図5】従来のシンボリックデバッガの関数トレース方
式の一例を説明するためのブロック図である。
式の一例を説明するためのブロック図である。
1 交換機 11 レジスタ 12 メモリ 2 ワークステーション 21 シンボリックデバッガ 211 情報収集手段 212 ロードモジュール検索手段 213 関数検索手段 214 ロードモジュール識別手段 215 デバッグ情報検索手段 216 命令解析手段 217 スタック検索手段 218 実行結果出力手段 22 ロードモジュール群 23 レジスタ情報 24 メモリ情報 3 キーボード 4 ディスプレイ 5 通信回線
Claims (3)
- 【請求項1】交換システム等のプログラムをデバッグす
るためのシンボリックデバッガにおいて、 ロードモジュールの命令を解析してスタックフレームサ
イズと戻り番地の格納位置とを求める命令解析手段を備
え、デバッグ情報がないロードモジュールを入力して関
数トレースを行うことを特徴とするシンボリックデバッ
ガの関数トレース方式。 - 【請求項2】ロードモジュールにデバッグ情報があるか
否かを識別するロードモジュール識別手段をさらに備
え、デバッグ情報があるロードモジュールに対してはそ
のデバッグ情報を利用して関数トレースを行い、デバッ
グ情報がないロードモジュールに対しては前記命令解析
手段により必要な情報を求めてから関数トレースを行う
ことを特徴とする請求項1記載のシンボリックデバッガ
の関数トレース方式。 - 【請求項3】交換機のレジスタおよび/またはメモリに
格納されている情報を予め前記シンボリックデバッガが
動作する装置上に転送しておき、この予め転送された情
報に基づいて関数トレースを行うことを特徴とする請求
項1または2記載のシンボリックデバッガの関数トレー
ス方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP8195294A JP3006499B2 (ja) | 1996-07-05 | 1996-07-05 | シンボリックデバッガの関数トレース方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP8195294A JP3006499B2 (ja) | 1996-07-05 | 1996-07-05 | シンボリックデバッガの関数トレース方式 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH1021116A true JPH1021116A (ja) | 1998-01-23 |
| JP3006499B2 JP3006499B2 (ja) | 2000-02-07 |
Family
ID=16338771
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP8195294A Expired - Lifetime JP3006499B2 (ja) | 1996-07-05 | 1996-07-05 | シンボリックデバッガの関数トレース方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3006499B2 (ja) |
-
1996
- 1996-07-05 JP JP8195294A patent/JP3006499B2/ja not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| JP3006499B2 (ja) | 2000-02-07 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN110765013A (zh) | 一种流程自动化执行方法及系统 | |
| CN111382044B (zh) | 性能瓶颈的定位方法、定位装置、电子设备及存储介质 | |
| JP4795446B2 (ja) | 動作検証装置および動作検証プログラム | |
| CN111274156B (zh) | 兼容多框架页面的自动识别方法及装置 | |
| JP4846030B2 (ja) | 動作検証装置、動作検証方法および動作検証プログラム | |
| JP2003084813A (ja) | ラダー回路の編集装置、および、その編集方法 | |
| JP3006499B2 (ja) | シンボリックデバッガの関数トレース方式 | |
| CN113836025B (zh) | 页面测试方法及装置、存储介质及电子设备 | |
| CN109062797B (zh) | 生成信息的方法和装置 | |
| CN109284097B (zh) | 实现复杂数据分析的方法、设备、系统及存储介质 | |
| JP3328056B2 (ja) | 構文解析木からの情報抽出装置 | |
| CN115344529B (zh) | 一种agv行车记录仪数据显示方法以及数据翻译器 | |
| JP2811804B2 (ja) | 変数出力範囲指定方式 | |
| JPH10289102A (ja) | プログラムのデータフロー解析装置 | |
| JP6983976B2 (ja) | コードリーディング支援装置、及び、コードリーディング支援方法、並びに、コードリーディング支援プログラム | |
| CN112948010B (zh) | JavaScript模块化HTML文件前端加载方法 | |
| JPS6274130A (ja) | プログラム構造資料作成処理装置 | |
| CN121900827A (zh) | 映射表项获取方法、装置、设备及存储介质 | |
| CN117667312A (zh) | 一种工具部署方法、装置、容器云平台及存储介质 | |
| JPH11194935A (ja) | ソフトウェア構造解析システム | |
| JPH06231001A (ja) | シンボル名入力装置 | |
| JPH03273346A (ja) | シンボリックデバッガによる動的呼出し関係解析方式 | |
| JPH01228031A (ja) | ストール時の障害解析方式 | |
| JPH05204708A (ja) | デバッガ処理方式 | |
| CN118747499A (zh) | 用于检查页面文字翻译的方法、装置及存储介质 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 19991026 |