JP2001147837A - プログラムトレース装置及び記憶媒体 - Google Patents

プログラムトレース装置及び記憶媒体

Info

Publication number
JP2001147837A
JP2001147837A JP32875899A JP32875899A JP2001147837A JP 2001147837 A JP2001147837 A JP 2001147837A JP 32875899 A JP32875899 A JP 32875899A JP 32875899 A JP32875899 A JP 32875899A JP 2001147837 A JP2001147837 A JP 2001147837A
Authority
JP
Japan
Prior art keywords
instruction
control
program
trace
rewritten
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
JP32875899A
Other languages
English (en)
Inventor
Yutaka Haga
豊 芳賀
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP32875899A priority Critical patent/JP2001147837A/ja
Priority to US09/645,530 priority patent/US6715140B1/en
Publication of JP2001147837A publication Critical patent/JP2001147837A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【課題】 本発明はプログラムトレース装置及び記憶媒
体に関し、非常に多くのトレースポイントの指定に対し
ても、トレースポイントを短時間で検索して高速でプロ
グラムトレースを行うことを可能とすることを目的とす
る。 【解決手段】 プログラムの命令列を書き換えて実行中
の制御を横取りし、元のプログラムの実行状態をトレー
スするプログラムトレース装置において、制御を横取り
するために書き換える命令が、制御を横取りするために
上書きする制御転送命令よりも長いか否かを判定する判
定手段と、判定手段が、制御を横取りするために書き換
える命令が制御転送命令よりも長いと判定し、且つ、十
分な余剰バイトを有する場合には、書き換えた所在を同
定するインデックスデータを余剰バイトに格納してトレ
ースポイントの同定を行う同定手段とを備えるように構
成する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はプログラムトレース
装置及び記憶媒体に係り、特にコンピュータ上で動作す
るプログラムをトレースするプログラムトレース装置及
びコンピュータにプログラムトレースを行わせるプログ
ラムが格納されたコンピュータ読み取り可能な記憶媒体
に関する。
【0002】プログラムトレース機能とは、コンピュー
タ上で動作するプログラムに対して、このプログラムの
実行時の関数、手続き、ルーチン等の処理ブロックの実
行履歴(トレース)を記録するものである。
【0003】
【従来の技術】従来、プログラムトレース装置では、ト
レースポイントとして指定されるアドレスに、所謂ブレ
ークポイント命令を埋め込む。又、指定されたトレース
ポイントの情報は、テーブルで管理する、トレースポイ
ント管理を採用している。
【0004】
【発明が解決しようとする課題】しかし、上記の如き簡
単なトレースポイント管理では、例えばオペレーティン
グシステム等で提供される、非常に多くの関数を全てト
レースするような場合には、トレースポイントで制御を
横取りした後でトレースポイントの同定を行うため、非
常に長い検索時間を要するという問題があった。
【0005】他方、プログラムトレース装置を、複数の
命令を上書きして、制御を横取りするときに付加的な情
報を引き渡すような構成とすることも考えられるが、複
数の命令を上書きする場合には、書き換える途中の命令
が分岐命令の飛び先となっていないか否かの判断が必要
となり、この判断のためにプログラム全体に渡って命令
を解析する必要が生じてしまう。又、書き換える途中の
命令が分岐命令の飛び先になっている場合には、元の分
岐命令を整合性がとれるように変更する作業も必要とな
ってしまう。更に、マルチプロセッサシステム上では、
書き換え中の排他処理も必要となってしまう。これらの
理由から、複数の命令を上書きして、制御を横取りする
ときに付加的な情報を引き渡す構成は、実現が困難であ
るという問題があった。
【0006】そこで、本発明は、非常に多くのトレース
ポイントの指定に対しても、トレースポイントを短時間
で検索して高速でプログラムトレースを行うことが可能
なプログラムトレース装置及び記憶媒体を提供すること
を目的とする。
【0007】
【課題を解決するための手段】上記の課題は、プログラ
ムの命令列を書き換えて実行中の制御を横取りし、元の
プログラムの実行状態をトレースするプログラムトレー
ス装置であって、制御を横取りするために書き換える命
令が、制御を横取りするために上書きする制御転送命令
よりも長いか否かを判定する判定手段と、該判定手段
が、該制御を横取りするために書き換える命令が該制御
転送命令よりも長いと判定し、且つ、十分な余剰バイト
を有する場合には、書き換えた所在を同定するインデッ
クスデータを該余剰バイトに格納してトレースポイント
の同定を行う第1の同定手段とを備えたプログラムトレ
ース装置によって達成される。
【0008】プログラムトレース装置は、前記判定手段
が、前記制御を横取りするために書き換える命令が前記
制御転送命令よりも長いと判定し、且つ、十分な余剰バ
イトを有さない場合には、トレースポイントを管理する
別の制御データを用いてトレースポイントの同定を行う
第2の同定手段を更に備えても良い。又、プログラムト
レース装置は、前記判定手段が、前記制御を横取りする
ために書き換える命令が前記制御転送命令の命令長以下
であると判定すると、後続の何れかの命令に制御の横取
りアドレスを移しても与えられたアドレスでのトレース
と実質的に等価なトレースが可能であるか否かを判断す
る判断手段と、該判断手段が該実質的に等価なトレース
が可能であると判断すると、該制御転送命令の命令長よ
り長く、且つ、書き換えに適切な命令を検索する検索手
段とを更に備え、前記第1の同定手段は、前記制御を横
取りするために書き換える命令が前記十分な余剰バイト
を有さない場合でも、該検索手段により検索された命令
に基づいてトレースポイントの同定を行う構成としても
良い。
【0009】前記インデックスデータは、各トレースポ
イントを管理するトレースポイント情報を含み、該トレ
ースポイント情報は、各トレースポイントのアドレスに
対し、書き換えた元の命令及び復帰処理の実行命令列を
含んでも良い。上記の課題は、コンピュータに、プログ
ラムの命令列を書き換えて実行中の制御を横取りし、元
のプログラムの実行状態をトレースするプログラムトレ
ースを行わせるプログラムを格納したコンピュータ読み
取り可能な記憶媒体であって、制御を横取りするために
書き換える命令が、制御を横取りするために上書きする
制御転送命令よりも長いか否かを判定する判定手順と、
該判定手順が、該制御を横取りするために書き換える命
令が該制御転送命令よりも長いと判定し、且つ、十分な
余剰バイトを有する場合には、書き換えた所在を同定す
るインデックスデータを該余剰バイトに格納してトレー
スポイントの同定を行う同定手順とをコンピュータに行
わせるプログラムを格納した記憶媒体によっても達成さ
れる。
【0010】記憶媒体は、前記判定手順が、前記制御を
横取りするために書き換える命令が前記制御転送命令の
命令長以下であると判定すると、後続の何れかの命令に
制御の横取りアドレスを移しても与えられたアドレスで
のトレースと実質的に等価なトレースが可能であるか否
かを判断する判断手順と、該判断手順が該実質的に等価
なトレースが可能であると判断すると、該制御転送命令
の命令長より長く、且つ、書き換えに適切な命令を検索
する検索手順とを更にコンピュータに行わせ、前記同定
手順は、前記制御を横取りするために書き換える命令が
前記十分な余剰バイトを有さない場合でも、該検索手順
により検索された命令に基づいてトレースポイントの同
定をコンピュータに行わせても良い。
【0011】上記の課題は、プログラムの命令列を書き
換えて実行中の制御を横取りし、元のプログラムの実行
状態をトレースするプログラムトレース装置であって、
書き換え対象の命令を制御横取りに使用する制御転送命
令及びトレースポイントを特定するインデックスデータ
で書き換える手段と、割り込みで通知されるインデック
スデータを用いてトレースポイントを同定する手段とを
備えたプログラムトレース装置によっても達成される。
【0012】上記の課題は、コンピュータに、プログラ
ムの命令列を書き換えて実行中の制御を横取りし、元の
プログラムの実行状態をトレースするプログラムトレー
スを行わせるプログラムを格納したコンピュータ読み取
り可能な記憶媒体であって、書き換え対象の命令を制御
横取りに使用する制御転送命令及びトレースポイントを
特定するインデックスデータで書き換える手順と、割り
込みで通知されるインデックスデータを用いてトレース
ポイントを同定する手順とをコンピュータに行わせるプ
ログラムを格納した記憶媒体によっても達成される。
【0013】従って、本発明によれば、非常に多くのト
レースポイントの指定に対しても、トレースポイントを
短時間で検索して高速でプログラムトレースを行うこと
が可能となる。
【0014】
【発明の実施の形態】以下に、本発明になるプログラム
トレース装置及び記憶媒体の各実施例を、図面と共に説
明する。
【0015】
【実施例】図1は、本発明になるプログラムトレース装
置の第1実施例を示す斜視図である。本実施例では、本
発明になるプログラムトレース装置がデスクトップ型の
コンピュータシステムにより構成されているが、携帯型
のコンピュータシステムによっても同様に構成可能であ
る。
【0016】図1に示すコンピュータシステム100
は、大略CPUやディスクドライブ装置等を内蔵した本
体部101、本体部101からの指示により、表示画面
102a上に画像を表示するディスプレイ102、コン
ピュータシステム100に種々の情報を入力するための
キーボード103、ディスプレイ102の表示画面10
2a上の任意の位置を指定するマウス104、及び外部
のデータベースなどにアクセスして他のコンピュータシ
ステムに記憶されているプログラム等をダウンロードす
るモデム105を有する。
【0017】ディスク110等の可搬型記録媒体に格納
されるか、モデム105等の通信装置を使って他のコン
ピュータシステムの記録媒体106からダウンロードさ
れる、コンピュータシステム100にプログラムトレー
ス機能をもたせるプログラム(プログラムトレース用プ
ログラム又はソフトウェア)は、コンピュータシステム
100に入力されてコンパイルされる。本発明になる記
憶媒体は、プログラムトレース用プログラムを格納し
た、例えばディスク110等の記録媒体からなる。本発
明になる記憶媒体を構成する記録媒体は、ディスク11
0、ICカードメモリ、フロッピーディスク、光磁気デ
ィスク、CD−ROM等の可搬型記録媒体に限定される
ものではなく、モデム105やLAN等の通信装置や通
信手段を介して接続されるコンピュータシステムでアク
セス可能な各種記録媒体を含む。
【0018】図2は、コンピュータシステム100の本
体部101内の要部の構成を説明するブロック図であ
る。同図中、本体部101は、大略バス200により接
続されたCPU201と、RAMやROM等からなるメ
モリ部202と、ディスク110用のディスクドライブ
203と、ハードディスクドライブ204とからなる。
尚、図示は省略するが、ディスプレイ102、キーボー
ド103、マウス104等は、バス200を介してCP
U201に接続されていても、直接CPU201に接続
されていても良い。
【0019】尚、コンピュータシステム100の構成
は、図1及び図2に示す構成に限定されるものではな
く、代わりに各種周知の構成を使用しても良い。図3
は、第1実施例におけるCPU201のトレースポイン
ト設定処理を説明するフローチャートである。本発明に
なる記憶媒体の第1実施例は、CPU201に同図に示
すトレースポイント設定処理を行わせるためのプログラ
ムが格納された、例えばディスク110の如き記録媒体
により構成される。
【0020】図3中、ステップS1は、全トレースポイ
ントの設定が完了したか否かを判定し、判定結果がNO
であると、処理はステップS2へ進む。ステップS2
は、指定されたトレースポイントについて、書き換えら
れる命令長が制御を横取りするために使用する制御転送
命令より長く、且つ、十分な余剰バイトが存在するか否
かを判定する。ステップS2の判定結果がYESである
と、ステップS3は、指定されたトレースポイントにつ
いて、余剰バイトに格納される、この指定されたトレー
スポイントを特定するためのインデックスデータ11を
作成する。本実施例では、インデックスデータ11は、
図4に示す構成を有し、後述する、各トレースポイント
を管理するトレースポイント情報13の要素番号を格納
している。
【0021】ステップS4は、上記トレースポイント情
報13、即ち、制御を横取りした後の実行情報を作成す
る。本実施例では、トレースポイント情報13は、図5
に示す構成を有する。図5は、トレースポイントの個数
nと、トレースポイントのアドレスの一次元配列を入力
データとした場合を示す。図5に示すように、トレース
ポイント情報13は、各トレースポイントのアドレスに
対して、書き換えた元の命令(退避領域)及び復帰処理
の実行命令列を格納している。又、ステップS5は、制
御転送命令の埋め込みを行い、処理はステップS1へ戻
る。
【0022】ステップS2の判定結果がNOであると、
ステップS6は、インデックスが作成できないトレース
ポイントに対して、トレースポイントのアドレスを用い
てハッシュされた通常検索用データ12を作成し、処理
はステップS4へ進む。尚、ステップS6は、他に二分
探索を行うようにトレースポイントのアドレスに従って
ソートされた通常検索用データ12を作成するようにし
ても良い。
【0023】他方、ステップS1の判定結果がYESで
あると、ステップS7は、図6と共に後述するトレース
データの取得処理を行う。このように、図5に示すトレ
ースポイント情報13は、各トレースポイント毎の構造
体データの配列として構成されている。又、図4に示す
インデックスデータ11は、トレースポイント情報13
の要素を指す配列として構成され、インデックスには、
インデックスデータ11の配列の要素番号を使用する。
例えば、Intel社製のPentiumプロセッサ等
のX86アーキテクチャの場合、1バイト命令のINT
3(オペコードは16進数でCC)を、制御の横取りの
ための制御転送命令として使用できる。従って、この場
合、ステップS3は、インデックスデータ11の配列を
最初の要素から順に使用し、トレースポイントにおける
元の命令の命令長が3バイト以上の場合に2バイトのイ
ンデックスを作成する。つまり、この場合は制御の横取
りのための制御転送命令として1バイト命令のINT3
を使用するため、余剰バイトが2バイト以上であれば、
2バイトのインデックスを作成する。
【0024】尚、余剰バイトが1バイトのみの場合に
も、インデックスを作成できるように、1バイトのイン
デックス管理と、2バイト以上のインデックス管理とを
併用するようにしても良い。又、インデックス長を2バ
イトに固定して処理を行う場合には、インデックスデー
タ11の作成を省略して、直接トレースポイント情報1
3の要素番号をインデックスとして使用するようにして
も良い。
【0025】図6は、図3に示すステップS7で行われ
るトレースデータ取得処理を説明するフローチャートで
ある。図6中、制御の横取り、即ち、トレースポイント
ヒットにより、ステップS71は、インデックスデータ
11からインデックスを検索し、ステップS72は、検
索されたインデックスが正当であるか否かを判定する。
具体的には、制御を横取りした後、分岐元のアドレスか
ら2バイトを読み出して、読み出した値が最大のインデ
ックス以下であるか否かを判断する。読み出した値が最
大のインデックス以下であれば、インデックスデータ1
1に格納されているトレースポイント情報13の要素番
号からトレースポイント情報を引いて、分岐元のアドレ
スとトレースポイント情報13に格納されているアドレ
スとが符合するか否かを判定する。この判定結果は、ス
テップS72の判定結果に対応する。
【0026】ステップS72の判定結果がYESである
と、ステップS73は、トレースポイント情報13への
位置付けを行い、ステップS74は、トレースデータの
書き込み処理を行う。又、ステップS75は、復帰処理
を行い、復帰点に制御転送を行う。他方、ステップS7
2の判定結果がNOであると、ステップS76は、通常
検索用データ12を用いて、トレースポイント情報13
のの該当する要素に位置付ける。ステップS76の後、
処理はステップS73へ進み、上記の如く、トレースデ
ータの書き込み処理及び復帰処理が行われる。
【0027】このように、本実施例では、指定されたト
レースポイントについて、書き換えられる命令長が制御
を横取りするために使用する制御転送命令より長く、十
分な余剰バイトが存在するか否かを判定して、このトレ
ースポイントについて、余剰バイトに格納されこのトレ
ースポイントを特定するインデックスデータを作成す
る。インデックスデータを作成することができないトレ
ースポイントについては、他の方法でトレースポイント
を検索するための通常検索用データを作成する。
【0028】つまり、書き換え後の余剰バイトに応じ
て、可能な限りインデックスデータを作成する。インデ
ックスデータが作成できないトレースポイントについて
は、制御の横取りした後に、二分探索やハッシュ検索等
の通常検索用データに基づいて、適切なオーバーヘッド
の下で検索が行われる。しかし、インデックスデータが
作成できるトレースポイントについては、後続アドレス
のデータが読み出されて直接インデックスとして使用さ
れるので、トレースポイントの同定を高速に行うことが
可能となる。従って、本実施例は、実行するプログラム
に予めトレース取得のためのコードを埋め込んでおくこ
とができず、プログラムの実行時にトレースポイントを
設定して実行履歴を取得するプログラムトレースに好適
である。
【0029】次に、本発明になるプログラムトレース装
置の第2実施例を説明する。本実施例においても、本発
明になるプログラムトレース装置が、図1及び図2に示
す如きデスクトップ型のコンピュータシステムにより構
成されているものとする。図7は、第2実施例における
CPU201のトレースポイント設定処理を説明するフ
ローチャートである。本発明になる記憶媒体の第2実施
例は、CPU201に同図に示すトレースポイント設定
処理を行わせるためのプログラムが格納された、例えば
ディスク110の如き記録媒体により構成される。同図
中、図3と同一ステップには同一符号を付し、その説明
は省略する。
【0030】又、図8は、本実施例で用いるトレースポ
イント情報13の構成を示す図である。本実施例では、
同図に示すように、トレースポイント情報13は、各ト
レースポイントに対して、実際のトレースポイントのア
ドレスをも格納する。図7において、ステップS2の判
定結果がNOであると、ステップS11及びステップS
12が行われ、ステップS12の判定結果がYESであ
れば処理はステップS3へ進み、NOであると処理はス
テップS6へ進む。ステップS11は、トレースポイン
ト最適化処理を行う。ステップS12は、トレースポイ
ント最適化処理の結果、トレースポイントの移動が可能
であるか否かを判定する。具体的には、指定されたトレ
ースポイントのアドレスから、後続の命令の命令長と命
令の意味を解析し、分岐命令に突き当たるか、或いは、
分岐命令の飛び先の命令に突き当たるまで、上記の如き
X86アーキテクチャの場合であれば、3バイト以上の
命令列を検索する。3バイト以上の命令列が見つかった
場合には、その命令列を実際のトレースポイントとして
選出してステップS3以降に伝達することで、トレース
ポイントをトレースポイント情報13に反映させる。
【0031】尚、命令列を実際のトレースポイントとし
て選出する選出論理は、上記の如き選出論理に限定され
るものではない。例えば、単純に後続の命令についての
み適正を判断するといった、任意の選出論理を採用可能
であることは、言うまでもない。図9は、図7に示すス
テップS11のトレースポイント最適化処理の一実施例
を説明するフローチャートである。同図中、例えばX8
6アーキテクチャの場合、ステップS111は、関数の
先頭命令がpush ebp, move ebp,e
spであるか否かを判定する。
【0032】図10は、push ebp, move
ebp,espなる命令を説明する図である。ステッ
プS111の判定結果がYESであると、ステップS1
12は、次の命令長に十分な余剰バイトが存在するか否
かを判定する。ステップS112の判定結果がYESで
あると、処理は図7に示すステップS12へ進む。他
方、ステップS111又はステップS112の判定結果
がNOであると、処理は図7に示すステップS6へ進
む。
【0033】このように、本実施例では、指定されたト
レースポイントについて、書き換えられる命令長が制御
を横取りするために使用する制御転送命令より長く、十
分な余剰バイトが存在するか否かを判定して、このトレ
ースポイントについて、余剰バイトに格納されこのトレ
ースポイントを特定するインデックスデータを作成す
る。インデックスデータを作成することができないトレ
ースポイントについては、後続の何れかの命令に制御の
横取りアドレスを移しても与えられたアドレスでのトレ
ースと等価なトレースが可能であるか否かを判断する。
このようなトレースが可能であると判断されると、制御
転送命令の命令長より長く書き換えに適した命令を検索
し、自動的にトレースポイントを最適化した上でインデ
ックス情報を作成する。インデックスデータを作成する
ことができず、又、このような最適化が行えないトレー
スポイントについては、上記第1実施例の場合と同様
に、他の方法でトレースポイントを検索するための通常
検索用データを作成する。
【0034】つまり、書き換え後の余剰バイトがない命
令のアドレスに対してトレースポイントが指定された場
合には、上記第1実施例ではインデックス情報を作成す
ることができない。しかし、本実施例では、トレースポ
イント最適化処理により、後続の適切な命令に自動的に
実際のトレースポイントを移動するため、更に多くのト
レースポイントをインデックス情報の作成対象とするこ
とが可能となる。この結果、トレースポイントの同定に
かかるオーバーヘッドを更に低減することができる。従
って、本実施例も、実行するプログラムに予めトレース
取得のためのコードを埋め込んでおくことができず、プ
ログラムの実行時にトレースポイントを設定して実行履
歴を取得するプログラムトレースに好適である。
【0035】以上、本発明を実施例により説明したが、
本発明は上記実施例に限定されるものではなく、本発明
の範囲内で種々の変形及び改良が可能であることは、言
うまでもない。
【0036】
【発明の効果】本発明によれば、プログラムの実行時の
命令書き換えが容易に行え、制御の横取りのために同時
に非常に多くの箇所で命令を書き換えた場合でも、トレ
ースポイントを短時間で検索して、高速でプログラムト
レースを行うことが可能となる。
【図面の簡単な説明】
【図1】本発明になるプログラムトレース装置の第1実
施例を示す斜視図である。
【図2】コンピュータシステムの本体部内の要部の構成
を説明するブロック図である。
【図3】第1実施例におけるトレースポイント設定処理
を説明するフローチャートである。
【図4】インデックスデータの構成を示す図である。
【図5】トレースポイント情報の構成を示す図である。
【図6】トレースデータ取得処理を説明するフローチャ
ートである。
【図7】第2実施例におけるトレースポイント設定処理
を説明するフローチャートである。
【図8】トレースポイント情報の構成を示す図である。
【図9】トレースポイント最適化処理の一実施例を説明
するフローチャートである。
【図10】図9の処理で判定する命令を説明する図であ
る。
【符号の説明】
100 コンピュータシステム 101 本体部 110 ディスク 201 CPU 202 メモリ部

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 プログラムの命令列を書き換えて実行中
    の制御を横取りし、 元のプログラムの実行状態をトレースするプログラムト
    レース装置であって、 制御を横取りするために書き換える命令が、制御を横取
    りするために上書きする制御転送命令よりも長いか否か
    を判定する判定手段と、 該判定手段が、該制御を横取りするために書き換える命
    令が該制御転送命令よりも長いと判定し、且つ、十分な
    余剰バイトを有する場合には、書き換えた所在を同定す
    るインデックスデータを該余剰バイトに格納してトレー
    スポイントの同定を行う第1の同定手段とを備えた、プ
    ログラムトレース装置。
  2. 【請求項2】 前記判定手段が、前記制御を横取りする
    ために書き換える命令が前記制御転送命令よりも長いと
    判定し、且つ、十分な余剰バイトを有さない場合には、
    トレースポイントを管理する別の制御データを用いてト
    レースポイントの同定を行う第2の同定手段を更に備え
    た、請求項1記載のプログラムトレース装置。
  3. 【請求項3】 前記判定手段が、前記制御を横取りする
    ために書き換える命令が前記制御転送命令の命令長以下
    であると判定すると、後続の何れかの命令に制御の横取
    りアドレスを移しても与えられたアドレスでのトレース
    と実質的に等価なトレースが可能であるか否かを判断す
    る判断手段と、 該判断手段が該実質的に等価なトレースが可能であると
    判断すると、該制御転送命令の命令長より長く、且つ、
    書き換えに適切な命令を検索する検索手段とを更に備
    え、 前記第1の同定手段は、前記制御を横取りするために書
    き換える命令が前記十分な余剰バイトを有さない場合で
    も、該検索手段により検索された命令に基づいてトレー
    スポイントの同定を行う、請求項1又は2記載のプログ
    ラムトレース装置。
  4. 【請求項4】 前記インデックスデータは、各トレース
    ポイントを管理するトレースポイント情報を含み、該ト
    レースポイント情報は、各トレースポイントのアドレス
    に対し、書き換えた元の命令及び復帰処理の実行命令列
    を含む、請求項1〜3のいずれか1項記載のプログラム
    トレース装置。
  5. 【請求項5】 コンピュータに、プログラムの命令列を
    書き換えて実行中の制御を横取りし、元のプログラムの
    実行状態をトレースするプログラムトレースを行わせる
    プログラムを格納したコンピュータ読み取り可能な記憶
    媒体であって、 制御を横取りするために書き換える命令が、制御を横取
    りするために上書きする制御転送命令よりも長いか否か
    を判定する判定手順と、 該判定手順が、該制御を横取りするために書き換える命
    令が該制御転送命令よりも長いと判定し、且つ、十分な
    余剰バイトを有する場合には、書き換えた所在を同定す
    るインデックスデータを該余剰バイトに格納してトレー
    スポイントの同定を行う同定手順とをコンピュータに行
    わせるプログラムを格納した、記憶媒体。
  6. 【請求項6】 前記判定手順が、前記制御を横取りする
    ために書き換える命令が前記制御転送命令の命令長以下
    であると判定すると、後続の何れかの命令に制御の横取
    りアドレスを移しても与えられたアドレスでのトレース
    と実質的に等価なトレースが可能であるか否かを判断す
    る判断手順と、 該判断手順が該実質的に等価なトレースが可能であると
    判断すると、該制御転送命令の命令長より長く、且つ、
    書き換えに適切な命令を検索する検索手順とを更にコン
    ピュータに行わせ、 前記同定手順は、前記制御を横取りするために書き換え
    る命令が前記十分な余剰バイトを有さない場合でも、該
    検索手順により検索された命令に基づいてトレースポイ
    ントの同定をコンピュータに行わせる、請求項5記載の
    記憶媒体。
  7. 【請求項7】 プログラムの命令列を書き換えて実行中
    の制御を横取りし、元のプログラムの実行状態をトレー
    スするプログラムトレース装置であって、 書き換え対象の命令を制御横取りに使用する制御転送命
    令及びトレースポイントを特定するインデックスデータ
    で書き換える手段と、 割り込みで通知されるインデックスデータを用いてトレ
    ースポイントを同定する手段とを備えた、プログラムト
    レース装置。
  8. 【請求項8】 コンピュータに、プログラムの命令列を
    書き換えて実行中の制御を横取りし、元のプログラムの
    実行状態をトレースするプログラムトレースを行わせる
    プログラムを格納したコンピュータ読み取り可能な記憶
    媒体であって、 書き換え対象の命令を制御横取りに使用する制御転送命
    令及びトレースポイントを特定するインデックスデータ
    で書き換える手順と、 割り込みで通知されるインデックスデータを用いてトレ
    ースポイントを同定する手順とをコンピュータに行わせ
    るプログラムを格納した、記憶媒体。
JP32875899A 1999-11-18 1999-11-18 プログラムトレース装置及び記憶媒体 Pending JP2001147837A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP32875899A JP2001147837A (ja) 1999-11-18 1999-11-18 プログラムトレース装置及び記憶媒体
US09/645,530 US6715140B1 (en) 1999-11-18 2000-08-25 Program trace method and apparatus, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP32875899A JP2001147837A (ja) 1999-11-18 1999-11-18 プログラムトレース装置及び記憶媒体

Publications (1)

Publication Number Publication Date
JP2001147837A true JP2001147837A (ja) 2001-05-29

Family

ID=18213832

Family Applications (1)

Application Number Title Priority Date Filing Date
JP32875899A Pending JP2001147837A (ja) 1999-11-18 1999-11-18 プログラムトレース装置及び記憶媒体

Country Status (2)

Country Link
US (1) US6715140B1 (ja)
JP (1) JP2001147837A (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7380239B1 (en) * 2001-05-31 2008-05-27 Oracle International Corporation Method and mechanism for diagnosing computer applications using traces
US7376937B1 (en) * 2001-05-31 2008-05-20 Oracle International Corporation Method and mechanism for using a meta-language to define and analyze traces
US7512954B2 (en) * 2002-07-29 2009-03-31 Oracle International Corporation Method and mechanism for debugging a series of related events within a computer system
US7165190B1 (en) 2002-07-29 2007-01-16 Oracle International Corporation Method and mechanism for managing traces within a computer system
US7200588B1 (en) 2002-07-29 2007-04-03 Oracle International Corporation Method and mechanism for analyzing trace data using a database management system
US7194664B1 (en) * 2003-09-08 2007-03-20 Poon Fung Method for tracing application execution path in a distributed data processing system
DE10352172A1 (de) * 2003-11-05 2005-06-09 Robert Bosch Gmbh Verfahren und Vorrichtung zur Anpassung von Funktionen zur Steuerung von Betriebsabläufen
US20060089984A1 (en) * 2004-10-22 2006-04-27 International Business Machines Corporation Process and implementation for autonomous probe enablement
US7840849B2 (en) * 2006-12-21 2010-11-23 Novell, Inc. Methods and apparatus for debugging software including divisions of an execution history of a debuggee program
US20080209406A1 (en) * 2007-02-27 2008-08-28 Novell, Inc. History-based call stack construction
US20090222646A1 (en) * 2008-02-28 2009-09-03 International Business Machines Corporation Method and apparatus for detecting processor behavior using instruction trace data
GB2481384B (en) * 2010-06-21 2018-10-10 Advanced Risc Mach Ltd Key allocation when tracing data processing systems
US8997057B1 (en) * 2011-11-04 2015-03-31 Google Inc. Using trace matching to identify and analyze application traces
JP6119535B2 (ja) * 2013-09-30 2017-04-26 富士通株式会社 トレース方法、処理プログラム、および情報処理装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3659272A (en) * 1970-05-13 1972-04-25 Burroughs Corp Digital computer with a program-trace facility
GB2197506A (en) * 1986-10-27 1988-05-18 Burr Brown Ltd Providing and handling break points in a software monitor
US5978902A (en) * 1997-04-08 1999-11-02 Advanced Micro Devices, Inc. Debug interface including operating system access of a serial/parallel debug port
US6094729A (en) * 1997-04-08 2000-07-25 Advanced Micro Devices, Inc. Debug interface including a compact trace record storage
US6202199B1 (en) * 1997-07-31 2001-03-13 Mutek Solutions, Ltd. System and method for remotely analyzing the execution of computer programs
US6282701B1 (en) * 1997-07-31 2001-08-28 Mutek Solutions, Ltd. System and method for monitoring and analyzing the execution of computer programs
US6513155B1 (en) * 1997-12-12 2003-01-28 International Business Machines Corporation Method and system for merging event-based data and sampled data into postprocessed trace output
JP3439649B2 (ja) * 1998-03-16 2003-08-25 富士通株式会社 パストレースチェック方法および装置
EP0992906B1 (en) * 1998-10-06 2005-08-03 Texas Instruments Inc. Apparatus and method for software breakpoint in a delay slot

Also Published As

Publication number Publication date
US6715140B1 (en) 2004-03-30

Similar Documents

Publication Publication Date Title
AU724513B2 (en) Computerized system and associated method for optimally controlling storage and transfer of computer programs on a computer network
US7685590B2 (en) Minimum delta generator for program binaries
US8713074B2 (en) Instance management of code in a database
US20030093420A1 (en) Method and system for retrieving sharable information using a hierarchically dependent directory structure
US5854936A (en) Code server
US20050015674A1 (en) Method, apparatus, and program for converting, administering, and maintaining access control lists between differing filesystem types
CN109614165B (zh) 一种com组件的多版本并行运行方法和装置
JP2001147837A (ja) プログラムトレース装置及び記憶媒体
CN102609241B (zh) 热补丁方法及装置
JPH1040087A (ja) ソフトウェア工学で使われるデータモデルの取り扱い方法
CN101681256A (zh) It自动化装置成像系统和方法
US11144292B2 (en) Packaging support system and packaging support method
JP2003519834A (ja) メモリ管理によって参照の局所性を改善するための方法および装置
US20120173575A1 (en) Record Based Code Structure
CN102144230B (zh) 基于记录的代码结构
US5519860A (en) Central processor index sort followed by direct record sort and write by an intelligent control unit
CN107621945A (zh) 一种确定ios设备的标识的方法及装置
WO2023169164A1 (zh) 应用程序的修复方法、装置、计算机设备以及存储介质
JP3489216B2 (ja) ファイルシステム
JPH06243006A (ja) 文字ファイルアクセス方式
JPH0317753A (ja) ファイルアクセス方式
US20070150853A1 (en) Method for processing assembly of data blocks using associated control application
CN114625646A (zh) 一种检测系统内存越界的方法和装置
JPH07146880A (ja) 文書検索装置及び方法
JP2001216319A (ja) 文書管理方法及びその実施装置並びにその処理プログラムを記録した記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040324

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20051128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051206

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060203

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060808