JPH0820976B2 - メモリ割当トレース装置 - Google Patents

メモリ割当トレース装置

Info

Publication number
JPH0820976B2
JPH0820976B2 JP5054972A JP5497293A JPH0820976B2 JP H0820976 B2 JPH0820976 B2 JP H0820976B2 JP 5054972 A JP5054972 A JP 5054972A JP 5497293 A JP5497293 A JP 5497293A JP H0820976 B2 JPH0820976 B2 JP H0820976B2
Authority
JP
Japan
Prior art keywords
memory
function
trace
allocation
address
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.)
Expired - Fee Related
Application number
JP5054972A
Other languages
English (en)
Other versions
JPH06242989A (ja
Inventor
次一 柴田
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
Nippon Electric 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 Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP5054972A priority Critical patent/JPH0820976B2/ja
Publication of JPH06242989A publication Critical patent/JPH06242989A/ja
Publication of JPH0820976B2 publication Critical patent/JPH0820976B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はプログラムのデバッグ時
に使用するメモリ割当トレース装置に関し、より具体的
には、メモリ確保関数,メモリ解放関数を呼び出して動
的にメモリを確保,解放しながら処理を進めるプログラ
ムがどのようにメモリを確保し、解放しているかを簡便
に調査することができるメモリ割当トレース装置に関す
る。
【0002】
【従来の技術】メモリ確保関数およびメモリ解放関数を
呼び出して動的にメモリを確保,解放しながら処理を進
めるプログラムにメモリに関するトラブルが発生した場
合、そのデバッグにおいては、どのようなサイズのメモ
リをプログラム中のどの箇所で確保し、確保したメモリ
をプログラム中のどの箇所で解放しているかといったメ
モリの確保,解放に関する動作を調査する必要がある。
このような調査を行う方法としては、一般的に次のよう
なものが考えられる。
【0003】デバッグ対象とするプログラムのソースプ
ログラム自体を修正し、プログラム中のどの箇所でどの
ようなサイズのメモリを確保したか、またプログラム中
のどの箇所でどのようなサイズを解放したかを出力する
機構を組み込み、コンパイルして実行する方法。
【0004】既存のシンボリックデバッガの提供する各
種のデバッグコマンドを使用して、利用者自身が適切な
箇所にブレークポイントを設定し、且つブレーク時に必
要な箇所のデータを読み取って記録する方法。
【0005】
【発明が解決しようとする課題】しかしながら、上述し
たソースプログラム自体を修正する方法では、不必要な
部分を誤って修正してしまう危険性がある。他方、シン
ボリックデバッガを使用する方法ではそのような問題は
生じないが、既存のシンボリックデバッガにはメモリの
確保,解放に関する動作を調査するための専用コマンド
が用意されていないため、ブレークポイントを設定する
コマンドやスタックの内容を出力させるコマンド等,既
存のコマンドを駆使して調査する必要がある。従って、
相当な知識と経験を有する者でなければメモリの確保,
解放の動作を調査することは困難であるのが現状であ
る。
【0006】本発明はこのような事情に鑑みて為された
ものであり、その目的は、ソースプログラムを修正する
ことなく、極めて簡単にプログラムのメモリ確保,解放
の動作を調査することができるメモリ割当トレース装置
を提供することにある。
【0007】
【課題を解決するための手段】本発明のメモリ割当トレ
ース装置は上記の目的を達成するために、メモリ確保関
数,メモリ解放関数を呼び出して動的にメモリを確保,
解放しながら処理を進めるプログラムを実行する情報処
理装置において、メモリ確保状態テーブルと、採取され
たメモリ確保トレース情報を前記メモリ確保状態テーブ
ルに格納するメモリ確保トレース手段と、採取されたメ
モリ解放トレース情報を前記メモリ確保状態テーブルに
格納するメモリ解放トレース手段と、前記プログラムの
ロードモジュールファイル中のシンボルテーブルを検索
するシンボルテーブル検索手段と、利用者入出力装置
と、該利用者入出力装置からメモリ確保トレースを要求
するコマンドが入力されることにより、前記シンボルテ
ーブル検索手段によりメモリ確保関数名で前記シンボル
テーブルを検索して得たメモリ確保関数の先頭アドレス
にブレークポイントを設定すると共に、該ブレークポイ
ントによるブレーク時にメモリ確保トレース情報を採取
して前記メモリ確保トレース手段により前記メモリ確保
状態テーブルに格納し、且つ、前記利用者入出力装置か
らメモリ解放トレースを要求するコマンドが入力される
ことにより、前記シンボルテーブル検索手段によりメモ
リ解放関数名で前記シンボルテーブルを検索して得たメ
モリ解放関数の先頭アドレスにブレークポイントを設定
すると共に、該ブレークポイントによるブレーク時にメ
モリ解放トレース情報を採取して前記メモリ解放トレー
ス手段により前記メモリ確保状態テーブルに格納するブ
レークポイント制御手段と、前記利用者入出力装置から
メモリ確保状態の表示を要求するコマンドが入力される
ことにより、前記メモリ確保状態テーブルに格納された
メモリ確保トレース情報およびメモリ解放トレース情報
を読み出して前記利用者入出力装置に出力するメモリ確
保状態表示手段とを備えている。
【0008】
【作用】本発明のメモリ割当トレース装置において、利
用者入出力装置からメモリ確保トレースを要求するコマ
ンドが入力されると、ブレークポイント制御手段が、シ
ンボルテーブル検索手段によりメモリ確保関数名でシン
ボルテーブルを検索して得たメモリ確保関数の先頭アド
レスにブレークポイントを設定する。また、利用者入出
力装置からメモリ解放トレースを要求するコマンドが入
力されると、ブレークポイント制御手段が、シンボルテ
ーブル検索手段によりメモリ解放関数名でシンボルテー
ブルを検索して得たメモリ解放関数の先頭アドレスにブ
レークポイントを設定する。上記のようなブレークポイ
ントが設定された状態でプログラムが実行され、メモリ
確保関数の先頭アドレスでブレークすると、ブレークポ
イント制御手段が、そのメモリ確保関数を呼び出した関
数名,行番号,メモリサイズといったメモリ確保トレー
ス情報を採取し、メモリ確保トレース手段によりメモリ
確保状態テーブルに格納する。またメモリ解放関数の先
頭アドレスでブレークすると、ブレークポイント制御手
段が、メモリ解放関数を呼び出した関数名,行番号とい
ったメモリ解放トレース情報を採取し、メモリ解放トレ
ース手段によりメモリ確保状態テーブルに格納する。そ
の後、利用者入出力装置からメモリ確保状態の表示を要
求するコマンドが入力されると、メモリ確保状態表示手
段が、メモリ確保状態テーブルに格納されたメモリ確保
トレース情報およびメモリ解放トレース情報を読み出し
て利用者入出力装置に出力する。
【0009】
【実施例】次に本発明の実施例について図面を参照して
詳細に説明する。
【0010】図1を参照すると、本発明の一実施例のメ
モリ割当トレース装置1は、主制御部2,コマンド入力
部3,ディスプレイ出力部4,シンボルテーブル検索部
5,ブレークポイント制御部6,メモリ確保トレース部
7,メモリ解放トレース部8およびメモリ確保状態表示
部9を有し、ロードモジュールファイル12,利用者入
出力装置である端末装置13,メモリ確保状態テーブル
10およびメモリ11に接続されている。なお、このよ
うなメモリ割当トレース装置1はデバッガの一部として
情報処理装置に組み込まれる。
【0011】メモリ11は情報処理装置の主記憶であ
り、その中の14はデバッグ対象となるプログラムであ
る。このプログラム14は例えばC言語系のプログラム
で、複数の関数(モジュール)から構成されており、特
にメモリ確保関数15,メモリ解放関数16を使用して
動的にメモリ11中のメモリの確保,解放を行いながら
処理を進めるものである。このプログラム14のどの関
数のどの行番号でどのようなサイズ,メモリアドレスの
メモリを確保し、また解放しているかを調べるのがメモ
リ割当トレース装置1の目的である。
【0012】ロードモジュールファイル12はプログラ
ム14に対応するロードモジュールファイルであり、プ
ログラム14はその実行時にロードモジュールファイル
12からメモリ11にロードされる。このロードモジュ
ールファイル12中にはシンボルテーブル17がある。
このシンボルテーブル17は、プログラム14のソース
プログラムを構成する関数名,そのソースプログラム上
での行番号,各ソース行に対応する機械語命令等がロー
ドされるメモリ11上のアドレスを保持している。
【0013】メモリ確保状態テーブル10は、メモリ割
当トレース装置1によってトレースされたメモリ確保,
解放に関するトレース情報を蓄積するテーブルであり、
例えば情報処理装置の主記憶上に構築される。このメモ
リ確保状態テーブル10は例えば図2に示すように、メ
モリ確保トレース情報を格納する確保欄101と、メモ
リ解放トレース情報を格納する解放欄102とで構成さ
れ、各欄101,102は複数のエントリE11〜E1
n,E21〜E2nを有している。
【0014】確保欄101および解放欄102とも、そ
の先頭のエントリE11,E21から順に使用される。
確保欄101の一つのエントリには、メモリの確保を要
求した関数名,そのソースプログラム上での行番号,確
保するメモリサイズ,確保したメモリアドレスが記憶さ
れる。また解放欄102の一つのエントリには、メモリ
の解放を要求した関数名,そのソースプログラム上での
行番号,解放したメモリアドレスが記憶される。
【0015】図3および図4はメモリ割当トレース装置
1内のブレークポイント制御部6の処理の一例を示すフ
ローチャートである。以下、各図を参照しながら、メモ
リ割当トレース装置1内の各部の詳細な機能を全体の動
作を通じて説明する。
【0016】メモリ割当トレース装置1に制御が移って
いる状態では、主制御部2はコマンド入力部3において
端末装置13からのコマンド入力待ちになっている。こ
の状態で、利用者によって端末装置13からメモリ確保
トレースを要求するコマンドが入力されると、そのコマ
ンドがコマンド入力部3で受け付けられ、主制御部2に
渡される。
【0017】主制御部2は入力されたコマンドがメモリ
確保トレースを要求するコマンドであることを認識する
と、ブレークポイント制御部6に対してメモリ確保トレ
ースを要求する。
【0018】ブレークポイント制御部6は、主制御部2
からメモリ確保トレースまたはメモリ解放トレースが要
求されると、図3に示す処理を行う。そして、図3の処
理S1でメモリ確保トレースが要求されたことを認識す
ると、シンボルテーブル検索部5を使用してメモリ確保
関数の関数名でシンボルテーブル17を検索し、メモリ
確保関数のメモリ11上のアドレスを得る(S2)。そ
して、メモリ確保関数15の先頭アドレスのコードを割
り込み命令コードに置き換え、メモリ確保関数15の先
頭アドレスと元のコードとを内部に記憶し(S3)、主
制御部2へ制御を渡す(S6)。
【0019】主制御部2はブレークポイント制御部6か
ら制御が戻されると、コマンド入力部3においてコマン
ドの入力待ちとなる。
【0020】この状態で利用者が端末装置13からプロ
グラムの実行を指示するコマンドを入力すると、主制御
部2は、プログラム14の実行を開始せしめる。
【0021】プログラム14の実行が開始され、プログ
ラム14中の或る関数によってメモリ確保関数15が呼
び出され、制御がメモリ確保関数15の先頭アドレスに
移ると、そこに存在する割り込み命令コードにより割り
込みが発生し、制御がメモリ割当トレース装置1のブレ
ークポイント制御部6に移る。
【0022】ブレークポイント制御部6は、割り込みが
かかったとき図4の処理を行う。先ず、割り込みのかか
ったメモリアドレスを内部に記憶しているアドレスと比
較することにより、メモリ確保関数の先頭アドレスで割
り込みがかかったのか、後述するようにメモリ確保関数
からの戻りアドレスで割り込みがかかったのか、メモリ
解放関数の先頭アドレスで割り込みがかかったのかを判
定する(S11)。
【0023】今の場合、メモリ確保関数の先頭アドレス
で割り込みがかかったことが認識されるので、ブレーク
ポイント制御部6は、図示しないスタックに積まれたメ
モリ確保関数からの戻りアドレスによりメモリ確保関数
を呼び出したメモリアドレスを認識し、このメモリアド
レスでシンボルテーブル検索部5を使用してシンボルテ
ーブル17を検索することにより、メモリ確保関数を呼
び出した関数名,行番号を得る(S12)。更に、今回
のメモリ確保関数の呼び出しで使用されたパラメータか
ら、要求されたメモリサイズを取得する(S13)。そ
して、これら取得した内容をメモリ確保トレース情報と
してメモリ確保トレース部7に渡して格納を要求する
(S14)。
【0024】メモリ確保トレース部7は、ブレークポイ
ント制御部6から渡されたメモリ確保トレース情報中の
関数名,行番号,メモリサイズを、図2に示したメモリ
確保状態テーブル10の確保欄101にその先頭のエン
トリE11から順に記憶する。今、確保欄101の全エ
ントリE11〜E1nが空とすると、先ずエントリE1
1が使用され、図2に示すようにそのエントリE11に
例えば関数名func1,行番号100,メモリサイズ
20が記憶される。その後、メモリ確保トレース部7は
制御をブレークポイント制御部6に戻す。
【0025】ブレークポイント制御部6は制御が戻され
ると、スタック上の戻り番地からメモリ確保関数を呼び
出したメモリアドレスを再度得て、そのメモリアドレス
のコードを割り込み命令のコードに置き換え、その戻り
アドレスと元のコードを内部に保存する(S15)。そ
して、今回の割り込み命令のコード(メモリ確保関数の
先頭アドレスに設定されたコード)を元のコードに置き
換え(S16)、制御を主制御部2に渡す(S17)。
【0026】主制御部2はブレークポイント制御部6か
ら制御が戻されると、コマンド入力部3においてコマン
ドの入力待ちとなる。
【0027】この状態で利用者が端末装置13からプロ
グラムの実行の再開を指示するコマンドを入力すると、
主制御部2は、前記割り込みのかかったアドレスからプ
ログラム14の実行を再開させる。これにより、メモリ
確保関数15が実行され、メモリの確保が行われる。
【0028】そして、メモリ確保関数15の実行が終了
し、呼び出し元に制御が戻ると、そこに存在する割り込
み命令コードにより再び割り込みが発生し、制御がブレ
ークポイント制御部6に移行する。
【0029】ブレークポイント制御部6は、図4の処理
S11において、割り込みのかかったメモリアドレスを
内部に記憶したアドレスと比較することにより、メモリ
確保関数からの戻りアドレスで割り込みがかかったこと
を認識すると、メモリ確保関数のリターン値から今回確
保されたメモリアドレスを取得し(S18)、この取得
したメモリアドレスを追加のメモリ確保トレース情報と
してメモリ確保トレース部7に渡し、格納を要求する
(S19)。
【0030】メモリ確保トレース部7は、ブレークポイ
ント制御部6から渡された追加のメモリ確保トレース情
報中のメモリアドレスを、メモリ確保状態テーブル10
の確保欄101の直前に使用したエントリに記憶する。
これにより、図2に示すように、先に使用されたエント
リE11に関数名,行番号,メモリサイズに加え、メモ
リアドレス(例えば1234)が記憶される。
【0031】ブレークポイント制御部6はメモリ確保ト
レース部7から制御が戻されると、今回の割り込み命令
のコード(メモリ確保関数の戻りアドレスに設定された
コード)を元のコードに置き換え(S16)、制御を主
制御部2に渡す(S17)。
【0032】主制御部2はブレークポイント制御部6か
ら制御が戻されると、再びコマンドの入力待ちとなる。
【0033】この状態で利用者が端末装置13からプロ
グラムの実行の再開を指示するコマンドを入力すると、
主制御部2は、前記割り込みのかかったアドレスからプ
ログラム14の実行を再開させる。これにより、プログ
ラム14の実行が再開される。
【0034】また、メモリ割当トレース装置1がコマン
ド入力待ちの状態になっているときに、利用者が端末装
置13からメモリ解放トレースを要求するコマンドを入
力すると、そのコマンドがコマンド入力部3で受け付け
られ、主制御部2に渡される。
【0035】主制御部2は入力されたコマンドがメモリ
解放トレースを要求するコマンドであることを認識する
と、ブレークポイント制御部6に対してメモリ解放トレ
ースを要求する。
【0036】ブレークポイント制御部6は、図3の処理
S1でメモリ解放トレースの要求を認識すると、シンボ
ルテーブル検索部5を使用してメモリ解放関数の関数名
でシンボルテーブル17を検索し、メモリ解放関数のメ
モリ11上のアドレスを得る(S4)。そして、メモリ
解放関数16の先頭アドレスのコードを割り込み命令コ
ードに置き換え、メモリ解放関数16の先頭アドレスと
その元のコードを内部に保存し(S5)、制御を主制御
部2に渡す(S6)。
【0037】主制御部2はブレークポイント制御部6か
ら制御が戻されると、再びコマンド入力待ちとなり、端
末装置13からプログラムの実行を再開するコマンドが
入力されると、プログラム14の実行を再開せしめる。
【0038】プログラム14の実行が進み、プログラム
14中の或る関数によってメモリ解放関数16が呼び出
され、制御がメモリ解放関数16の先頭アドレスに移る
と、そこに存在する割り込み命令コードにより割り込み
が発生し、制御がブレークポイント制御部6に移る。
【0039】ブレークポイント制御部6は、図4の処理
S11において、割り込みのかかったメモリアドレスを
内部に記憶したアドレスと比較することにより、メモリ
解放関数の先頭アドレスで割り込みがかかったことを認
識すると、スタック上の戻りアドレスからメモリ解放関
数を呼び出したメモリアドレスを認識し、このメモリア
ドレスでシンボルテーブル検索部5を使用してシンボル
テーブル17を検索することにより、メモリ解放関数を
呼び出した関数名,行番号を得る(S20)。更に、今
回のメモリ解放関数の呼び出しで使用されたパラメータ
から、解放を要求したメモリアドレスを取得する(S2
1)。そして、この取得した関数名,行番号,メモリア
ドレスをメモリ解放トレース情報としてメモリ解放トレ
ース部8に渡して格納を要求する(S22)。
【0040】メモリ解放トレース部8は、ブレークポイ
ント制御部6から渡されたメモリ解放トレース情報中の
関数名,行番号,メモリアドレスを、図2に示したメモ
リ確保状態テーブル10の解放欄102にその先頭のエ
ントリE21から順に記憶する。今、解放欄102の全
エントリE21〜E2nが空とすると、先ずエントリE
21が使用され、図2に示すようにそのエントリE21
に例えば関数名func1,行番号200,メモリアド
レス1234が記憶される。その後、メモリ解放トレー
ス部8は制御をブレークポイント制御部6に戻す。
【0041】なお、本実施例においては、メモリ割当ト
レース装置1の起動時にメモリ解放トレース部8に対し
て解放アドレスをチェックするよう指示しておくことが
可能になっている。このような指示が予め行われていた
場合、メモリ解放トレース部8は、今回解放したメモリ
アドレスと一致するメモリアドレスが確保欄101に存
在するか否かを調べ、一致するメモリアドレスが存在し
ない場合、ディスプレイ出力部4を利用して不正なメモ
リアドレスの解放が要求された旨のメッセージおよび今
回のメモリ解放トレース情報の内容を端末装置13に出
力するようにしている。
【0042】さて、ブレークポイント制御部6はメモリ
解放トレース部8から制御が戻されると、今回の割り込
み命令のコード(メモリ解放関数の先頭アドレスに設定
されたコード)を元のコードに置き換え(S16)、制
御を主制御部2に渡す(S17)。
【0043】主制御部2はブレークポイント制御部6か
ら制御が戻されると、コマンド入力部3においてコマン
ドの入力待ちとなる。
【0044】この状態で利用者が端末装置13からプロ
グラムの実行の再開を指示するコマンドを入力すると、
主制御部2は、前記割り込みのかかったアドレスからプ
ログラム14の実行を再開させる。これにより、メモリ
解放関数16が実行され、メモリの解放が行われる。
【0045】次に、コマンドの入力待ちの状態におい
て、利用者が端末装置13からメモリ確保状態の表示を
要求するコマンドを入力すると、これを認識した主制御
部2はメモリ確保状態表示部9を起動する。
【0046】メモリ確保状態表示部9は、メモリ確保状
態テーブル10の確保欄101および解放欄102のエ
ントリの内容を読み出し、確保欄101の各エントリに
記憶された関数名,行番号,メモリサイズ,メモリアド
レス並びに解放欄102の各エントリに記憶された関数
名,行番号,メモリアドレスを、それぞれ1行に納まる
ように編集し、ディスプレイ出力部4を利用して端末装
置13の表示面に、各欄101,102のエントリ順に
表示する。これにより、利用者は、プログラム14のど
の関数のどの行番号でどのようなサイズ,メモリアドレ
スのメモリを確保し、また解放しているかが認識でき、
且つ、表示順が確保,解放毎に確保,解放順になってい
るので、メモリ確保,解放の順序も知ることができる。
【0047】
【発明の効果】以上説明した本発明のメモリ割当トレー
ス装置によれば、以下のような効果を得ることができ
る。
【0048】デバッグ対象のプログラム中のどの関数の
どのソース行でどのようなサイズ,メモリアドレスのメ
モリが確保されるかを、メモリ確保トレースを要求する
コマンド,メモリ確保状態表示コマンドを入力するだけ
で、調査することができる。
【0049】デバッグ対象のプログラム中のどの関数の
どのソース行でどのようなメモリアドレスのメモリが解
放されるかを、メモリ解放トレースを要求するコマン
ド,メモリ確保状態表示コマンドを入力するだけで、調
査することができる。
【0050】よって、豊富な経験や専門的な知識を有し
ない利用者でもデバッグ対象プログラムのメモリ確保,
解放に関する動作の調査が行え、プログラムのデバッグ
中のメモリに関するトラブルを調査する作業時間の短縮
に効果がある。
【0051】解放するメモリアドレスが既に確保された
メモリアドレスと一致しないような不正なメモリアドレ
スを解放した場合には、その旨のメッセージが出力され
るので、問題箇所の摘出作業も容易になる。
【図面の簡単な説明】
【図1】本発明のメモリ割当トレース装置の一実施例の
構成図である。
【図2】メモリ確保状態テーブルの内容例を示す図であ
る。
【図3】メモリ確保トレース要求コマンド,メモリ解放
トレース要求コマンド入力時にブレークポイント制御部
で行われる処理の一例を示すフローチャートである。
【図4】ブレークポイントによるブレーク時にブレーク
ポイント制御部で行われる処理の一例を示すフローチャ
ートである。
【符号の説明】
1…メモリ割当トレース装置 2…主制御部 3…コマンド入力部 4…ディスプレイ出力部 5…シンボルテーブル検索部 6…ブレークポイント制御部 7…メモリ確保トレース部 8…メモリ解放トレース部 9…メモリ確保状態表示部 10…メモリ確保状態テーブル 11…メモリ 12…ロードモジュールファイル 13…端末装置 14…デバッグ対象のプログラム 15…メモリ確保関数 16…メモリ解放関数 17…シンボルテーブル

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 メモリ確保関数を呼び出して動的にメモ
    リを確保しながら処理を進めるプログラムを実行する情
    報処理装置において、 メモリ確保状態テーブルと、 採取されたメモリ確保トレース情報を前記メモリ確保状
    態テーブルに格納するメモリ確保トレース手段と、 前記プログラムのロードモジュールファイル中のシンボ
    ルテーブルを検索するシンボルテーブル検索手段と、 利用者入出力装置と、 該利用者入出力装置からメモリ確保トレースを要求する
    コマンドが入力されることにより、前記シンボルテーブ
    ル検索手段によりメモリ確保関数名で前記シンボルテー
    ブルを検索して得たメモリ確保関数の先頭アドレスにブ
    レークポイントを設定すると共に、該ブレークポイント
    によるブレーク時にメモリ確保トレース情報を採取して
    前記メモリ確保トレース手段により前記メモリ確保状態
    テーブルに格納するブレークポイント制御手段と、 前記利用者入出力装置からメモリ確保状態の表示を要求
    するコマンドが入力されることにより、前記メモリ確保
    状態テーブルに格納されたメモリ確保トレース情報を読
    み出して前記利用者入出力装置に出力するメモリ確保状
    態表示手段とを具備したことを特徴とするメモリ割当ト
    レース装置。
  2. 【請求項2】 前記ブレークポイント制御手段は、前記
    シンボルテーブル検索手段を通じ前記ブレークポイント
    のメモリアドレスで前記シンボルテーブルを検索して前
    記メモリ確保関数を呼び出した関数名,行番号を取得す
    ると共に、前記メモリ確保関数の呼び出しパラメータか
    らメモリサイズを取得し、これらを前記メモリ確保トレ
    ース情報として前記メモリ確保トレース手段によって前
    記メモリ確保状態テーブルに格納することを特徴とする
    請求項1記載のメモリ割当トレース装置。
  3. 【請求項3】 前記ブレークポイント制御手段は、前記
    ブレーク時に前記メモリ確保関数からの戻りアドレスに
    ブレークポイントを設定し、該設定したブレークポイン
    トによるブレーク時に前記メモリ確保関数のリターン値
    から確保されたメモリアドレスを取得し、該取得したメ
    モリアドレスを追加のメモリ確保トレース情報として前
    記メモリ確保トレース手段によって前記メモリ確保状態
    テーブルに登録することを特徴とする請求項2記載のメ
    モリ割当トレース装置。
  4. 【請求項4】 メモリ確保関数,メモリ解放関数を呼び
    出して動的にメモリを確保,解放しながら処理を進める
    プログラムを実行する情報処理装置において、 メモリ確保状態テーブルと、 採取されたメモリ確保トレース情報を前記メモリ確保状
    態テーブルに格納するメモリ確保トレース手段と、 採取されたメモリ解放トレース情報を前記メモリ確保状
    態テーブルに格納するメモリ解放トレース手段と、 前記プログラムのロードモジュールファイル中のシンボ
    ルテーブルを検索するシンボルテーブル検索手段と、 利用者入出力装置と、 該利用者入出力装置からメモリ確保トレースを要求する
    コマンドが入力されることにより、前記シンボルテーブ
    ル検索手段によりメモリ確保関数名で前記シンボルテー
    ブルを検索して得たメモリ確保関数の先頭アドレスにブ
    レークポイントを設定すると共に、該ブレークポイント
    によるブレーク時にメモリ確保トレース情報を採取して
    前記メモリ確保トレース手段により前記メモリ確保状態
    テーブルに格納し、且つ、前記利用者入出力装置からメ
    モリ解放トレースを要求するコマンドが入力されること
    により、前記シンボルテーブル検索手段によりメモリ解
    放関数名で前記シンボルテーブルを検索して得たメモリ
    解放関数の先頭アドレスにブレークポイントを設定する
    と共に、該ブレークポイントによるブレーク時にメモリ
    解放トレース情報を採取して前記メモリ解放トレース手
    段により前記メモリ確保状態テーブルに格納するブレー
    クポイント制御手段と、 前記利用者入出力装置からメモリ確保状態の表示を要求
    するコマンドが入力されることにより、前記メモリ確保
    状態テーブルに格納されたメモリ確保トレース情報およ
    びメモリ解放トレース情報を読み出して前記利用者入出
    力装置に出力するメモリ確保状態表示手段とを具備した
    ことを特徴とするメモリ割当トレース装置。
  5. 【請求項5】 前記ブレークポイント制御手段は、前記
    メモリ確保関数の先頭アドレスのブレークポイントによ
    るブレーク時に、該ブレークポイントのメモリアドレス
    で前記シンボルテーブルを検索して前記メモリ確保関数
    を呼び出した関数名,行番号を取得すると共に、前記メ
    モリ確保関数の呼び出しパラメータからメモリサイズを
    取得し、これらを前記メモリ確保トレース情報として前
    記メモリ確保トレース手段によって前記メモリ確保状態
    テーブルに格納し、且つ、前記メモリ解放関数の先頭ア
    ドレスのブレークポイントによるブレーク時に、該ブレ
    ークポイントのメモリアドレスで前記シンボルテーブル
    を検索して前記メモリ解放関数を呼び出した関数名,行
    番号を取得すると共に、前記メモリ解放関数の呼び出し
    パラメータからメモリアドレスを取得し、これらを前記
    メモリ解放トレース情報として前記メモリ解放トレース
    手段によって前記メモリ確保状態テーブルに格納するこ
    とを特徴とする請求項4記載のメモリ割当トレース装
    置。
  6. 【請求項6】 前記メモリ解放トレース手段は、前記ブ
    レークポイント制御手段から渡されたメモリ解放トレー
    ス情報中のメモリアドレスと一致するメモリアドレスが
    メモリ確保トレース情報として前記メモリ確保状態テー
    ブルに記憶されていないことにより、その旨のメッセー
    ジを前記利用者入出力装置に出力することを特徴とする
    請求項5記載のメモリ割当トレース装置。
  7. 【請求項7】 前記ブレークポイント制御手段は、前記
    メモリ確保関数の先頭アドレスのブレークポイントによ
    るブレーク時に、前記メモリ確保関数からの戻りアドレ
    スにブレークポイントを設定し、該設定したブレークポ
    イントによるブレーク時に前記メモリ確保関数のリター
    ン値から確保されたメモリアドレスを取得し、該取得し
    たメモリアドレスを前記メモリ確保トレース手段によっ
    て前記メモリ確保状態テーブルに登録することを特徴と
    する請求項6記載のメモリ割当トレース装置。
JP5054972A 1993-02-19 1993-02-19 メモリ割当トレース装置 Expired - Fee Related JPH0820976B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5054972A JPH0820976B2 (ja) 1993-02-19 1993-02-19 メモリ割当トレース装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5054972A JPH0820976B2 (ja) 1993-02-19 1993-02-19 メモリ割当トレース装置

Publications (2)

Publication Number Publication Date
JPH06242989A JPH06242989A (ja) 1994-09-02
JPH0820976B2 true JPH0820976B2 (ja) 1996-03-04

Family

ID=12985577

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5054972A Expired - Fee Related JPH0820976B2 (ja) 1993-02-19 1993-02-19 メモリ割当トレース装置

Country Status (1)

Country Link
JP (1) JPH0820976B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102180892B (zh) * 2011-03-24 2013-03-06 海南灵康制药有限公司 一种纯化头孢美唑钠的新方法
US9311221B2 (en) * 2013-03-15 2016-04-12 Ab Initio Technology Llc Recording program execution

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
情報処理学会論文誌第33巻第4号(平成4年4月15日発行情報処理学会)P.491−500「分散制御システムのデバック手法:要求仕様を用いたイベントヒストリの検査」(平井、杉本、阿部)

Also Published As

Publication number Publication date
JPH06242989A (ja) 1994-09-02

Similar Documents

Publication Publication Date Title
US8028278B2 (en) Method of generating and utilizing debug history
US20070074168A1 (en) Automated step type determination
US6658649B1 (en) Method, apparatus and article of manufacture for debugging a user defined region of code
JPH0883197A (ja) ソフトウエアプログラムをデバッグする方法およびコンピュータシステム
US7178135B2 (en) Scope-based breakpoint selection and operation
US20030208746A1 (en) Conditional breakpoint encountered indication
US7865883B1 (en) Parallel and asynchronous debugger and debugging method for multi-threaded programs
CN106126425B (zh) 基于Android自动化测试框架的功能遍历方法及系统
US20040168157A1 (en) System and method for creating a process invocation tree
CN113867834A (zh) 调试插件调用方法、装置及计算机可读存储介质
JPH0820976B2 (ja) メモリ割当トレース装置
US20030018957A1 (en) Debugger monitor with anticipatory highlights
US20030188225A1 (en) Extended "run to" function
JP2642788B2 (ja) 実行監視点削減方式
JP2001184235A (ja) ログ情報取得解析装置
JP2003263340A (ja) デバッグ装置
JPH07191876A (ja) プログラム試験装置とその使用方法
JP2001216139A (ja) メイク情報解析によるプロジェクト内容解析方法及びそのシステム並びに情報記録媒体
JPH07200350A (ja) ソフトウェアデバッガ
JP2788353B2 (ja) タスクトレース方法
JPH0468446A (ja) デバッグ支援装置
CN118672811A (zh) 程序异常分析方法、装置、电子设备及存储介质
JP2001067245A (ja) シミュレーション方法及びシミュレーション装置
JPS63173139A (ja) プログラムのデバツグ補助方式
JP2001265619A (ja) データトレース方式

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees