JP5523872B2 - プログラムの動的分析方法及びその装置 - Google Patents

プログラムの動的分析方法及びその装置 Download PDF

Info

Publication number
JP5523872B2
JP5523872B2 JP2010045618A JP2010045618A JP5523872B2 JP 5523872 B2 JP5523872 B2 JP 5523872B2 JP 2010045618 A JP2010045618 A JP 2010045618A JP 2010045618 A JP2010045618 A JP 2010045618A JP 5523872 B2 JP5523872 B2 JP 5523872B2
Authority
JP
Japan
Prior art keywords
instruction word
function
exception
executed
execution
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
JP2010045618A
Other languages
English (en)
Other versions
JP2010238228A (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics 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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2010238228A publication Critical patent/JP2010238228A/ja
Application granted granted Critical
Publication of JP5523872B2 publication Critical patent/JP5523872B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • 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/3644Software debugging by instrumenting at runtime
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms

Landscapes

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

Description

本発明は、プログラムの実行追跡及び分析に係り、より詳細には、動作中であるプログラムに影響を与えずにプログラムを動的に追跡して分析する方法及びその装置に関する。
応用プログラムを開発する過程で、プログラムやシステムのエラーを探し出すためのさまざまな方法が存在する。例えば、分析対象プログラムを構成する命令語(instruction)のいくつかの位置に例外命令語(Break instruction)を挿入して例外処理状況(Exception)を発生させ、それによって作られるハードウェア信号をオペレーティングシステム(Operation System)が感知して追跡プログラムを駆動することで問題点を探し出すことができる。このような方法の例として、SSIL(Single−Stepping In Line)、SSOL(Single−Stepping Out of Line)などがある。
この過程で、分析対象プログラム自体の実行追跡だけではなく、このプログラムの実行を支援するOS(Operating System)の動作もともに追跡されなければならない。このために、相異なる領域、すなわち、分析対象プログラムが実行されるアプリケーション領域とOS領域とで生成されて処理されるデータを一貫した方法で管理しなければならない。
しかし、この過程で適切ではない領域で分析対象プログラムが実行されることもあり、分析対象プログラムのアドレスを場合によって変更しなければならないなど、メモリ管理やアドレス管理が複雑になりうる。
本発明は、動作中である分析対象プログラムに影響を及ぼさずに分析対象プログラムの実行を追跡してデバギングするか、プロファイリングすることができるプログラムの動的分析方法及びその装置を提供することを目的とする。
本発明の一態様によるプログラムの動的分析方法は、分析対象プログラムを構成する関数の最初の命令語実行開始と最後の命令語実行直後に例外命令語を挿入、実行することによって、関数の実行前後の環境値が分かる。
一態様によって、プログラムを構成する関数の最初の命令語実行開始時に例外命令語を挿入して実行することによって、関数の実行前の環境値を保存し、関数を構成する最後の命令語が実行された後にリターンアドレスに進行すれば、例外命令語が実行されて、関数の実行直後の環境値を保存する。
この際、関数を構成する命令語を保存した後に例外命令語に代替し、例外命令語を実行させた後には、保存された元の命令語を復旧して実行することによって、関数の実行に影響を及ぼさないようにできる。
また、本発明の他の態様によるプログラムの動的分析装置は、プログラムを構成する関数の命令語を保存、その位置に例外命令語を挿入する命令語操作部と、例外命令語の実行によって関数の環境値を保存する点検部と、を含む。
本発明の一実施形態による動的分析方法での例外処理を説明するための参照図である。 本発明の一実施形態による動的分析手続きを詳しく説明する図である。 本発明の一実施形態による動的分析手続きを詳しく説明する図である。 本発明の一実施形態による動的分析手続きを詳しく説明する図である。 本発明の一実施形態による動的分析手続きを詳しく説明する図である。 本発明の一実施形態による動的分析手続きを詳しく説明する図である。 本発明の一実施形態による動的分析手続きを詳しく説明する図である。 本発明の一実施形態による動的分析手続きを詳しく説明する図である。 本発明の一実施形態による動的分析方法のフローチャートである。 本発明の一実施形態による動的分析装置の構成図である。
以下、添付した図面を参照して、本発明の望ましい実施形態を詳しく説明する。本発明を説明するに当って、関連した公知機能または構成についての具体的な説明が、本発明の要旨を不明にする恐れがあると判断される場合には、その詳細な説明を省略する。また、後述する用語は、本発明での機能を考慮して定義された用語であって、これは、ユーザ、運用者の意図または慣例などによって変わりうる。したがって、その定義は、本明細書全般に亘った内容に基づいて下されなければならない。
図1は、本発明の一実施形態による動的分析方法での例外処理を説明するための参照図である。図1に示されたように、応用プログラムには、そのプログラムの遂行に必要なさまざまな関数(function)が含まれうる。そのうち、分析しようとする関数110があれば、この関数110は、さまざまな命令語で構成されている。そして、関数110の実行時に、これら命令語を一定数ずつ束ねたページ112、114単位でシステムメモリにローディングされて関数110が実行される。すなわち、関数110を実行するため、関数を構成するあらゆる命令語を一回にシステムメモリにローディングした後に実行するものではなく、まず、第1ページ112をシステムメモリにローディングして実行した後、次のページである第2ページ114をシステムメモリにローディングして実行する。
一方、関数110の実行過程で、アプリケーション領域10だけではなく、OS領域20で動作するさまざまなシステムコール(system call)、ハンドラー(handler)などが実行可能である。関数110の実行時において、アプリケーション領域10からOS領域20への進入は、例外処理状況によってなされ、例外処理状況が発生すれば、例外処理ハンドラー(exception handler)120が呼び出されて点検ハンドラー(probe handler)130が実行される。
点検ハンドラー130は、例外処理情報保存部140に保存されている例外命令語と点検ポイントアドレス情報とを有し、例外処理と関連した手続きを遂行する。例外処理と関連した詳細な手続きは、以下、図2Aないし図2Gを参照して詳しく説明する。
図2Aないし図2Gは、本発明の一実施形態による動的分析手続きを詳しく説明する図である。
まず、図2Aに示されたように、関数を実行するためには、その関数を構成する第1命令語(1st instruction)211を実行させなければならない。ところで、この第1命令語211が含まれたページ210がまだシステムメモリにローディングされていない場合、ページエラー(page fault)が発生する。ページエラーが発生すれば、ページエラーハンドラー(page fault handler)220が実行されて当該ページをシステムメモリにローディングする。
そして、ページエラーリターンハンドラー(page fault return handler)230を実行させて第1命令語211を例外命令語に置き換え、第1命令語211は別途に保存する。一方、例外処理情報保存部240は、例外命令語、点検する位置についてのアドレス情報などを保存している。
図2Aに示されたように、当該ページがシステムメモリにローディングされれば、当該ページの第1命令語211が実行される。ところで、ページエラーリターンハンドラー230によって第1命令語211が例外命令語212に置き換えられたので、図2Bに示されたように、ページ210の最初の位置にある例外命令語212が実行される。
次いで、図2Cに示されたように、例外命令語212が実行されれば、例外状況(exception)が発生して例外処理ハンドラー250が呼び出される。例外処理ハンドラー250は、点検ハンドラー260を実行する。点検ハンドラー260は、まず、環境値を測定して(instrumentation)保存する。環境値は、分析対象プログラムのエラーを探し出すために、ユーザが知ろうとするさまざまな値であって、レジスタの値、特定変数の値、スタックの位置など、あらゆるものになりうる。そして、点検ハンドラー260は、この関数のリターンアドレスを二番目の命令語の位置値に変更する。また、二番目の命令語を保存した後、この位置の命令語を例外命令語に代替する。そして、最初の命令語である第1命令語211を呼び出して元の位置に復旧する。
そうすると、図2Dに示されたように、復旧された第1命令語211が実行され、次の命令語の実行位置である二番目の命令語にプログラム実行位置が移動する。二番目の命令語は、図2Cに示されたように、点検ハンドラー260によって例外命令語213に置き換えられたので、その実行によって例外状況が発生して例外処理ハンドラー250が再び呼び出され、例外処理ハンドラー250は、点検ハンドラー260を実行する。
点検ハンドラー260は、最初の命令語と三番目の命令語とを例外命令語に代替して二番目の命令語を復旧する。一方、最初の命令語と三番目の命令語は、別途に保存される。
次いで、図2Eに示されたように、復旧された二番目の命令語214を実行した後、次の実行位置である三番目の命令語に移動する。三番目の命令語は、図2Dに示されたように、点検ハンドラー260によって例外命令語215に置き換えられたので、その実行によって例外状況が発生して例外処理ハンドラー350が再び呼び出され、例外処理ハンドラー250は、点検ハンドラー260を実行する。
点検ハンドラー260は、二番目の命令語を再び例外命令語に代替して三番目の命令語を復旧する。そうすると、図2Fに示されたように、二番目の命令語は、例外命令語213に取り替えられ、三番目の命令語である第3命令語216が実行される。以後、続いて次の命令語が実行されて関数の最後まで実行される。
関数が最後まで実行されれば、図2Gに示されたように、リターン命令217が示す位置である二番目の命令語位置に移動し、二番目の命令語は、図2Fに示されたように、例外命令語213に置き換えられたので、その実行によって例外状況が発生して、例外処理ハンドラー250が呼び出され、例外処理ハンドラー250は、点検ハンドラー260を実行する。点検ハンドラー260は、まず、環境値を測定して保存する。環境値は、分析対象プログラムのエラーを探し出すために、ユーザが知ろうとするさまざまな値であって、レジスタの値、特定変数の値、スタックの位置など、あらゆるものになりうる。このようにして、関数の実行直前と実行直後との環境値が分かる。
図3は、本発明の一実施形態による動的分析方法のフローチャートである。
まず、分析しようとするプログラムを構成する関数の命令語が入れられたページをメモリにローディングする(S310)。これは、図2Aを参照して、前述したように、ページエラーハンドラー220によって実行可能である。
そして、プログラムを構成する関数の最初の命令語実行開始時に例外命令語を挿入して実行することによって、関数の実行前の環境値を保存する。これを詳細に説明すれば、例外命令語及び検査ポイント関連データを参照して、例外命令語を挿入するか、元の命令語を復旧する点検ハンドラーを実行する(S320)。例外命令語が実行されれば、OS領域の例外処理ハンドラー250によって点検ハンドラー260が実行されて、この関数の開始前環境値を保存する(S330)。環境値は、分析対象プログラムのエラーを探し出すために、ユーザが知ろうとするさまざまな値であって、レジスタの値、特定変数の値、スタックの位置など、あらゆるものになりうる。
この際、関数を構成する命令語は、例外命令語に取り替えられる前にあらかじめ保存されて、例外命令語が実行された後には、保存された元の命令語を復旧して実行することによって、関数の実行に影響を及ぼさないようにする。
例外命令語の挿入と操作とについてより詳細に説明すれば、まず、関数を構成する最初の命令語を保存した後、その位置に例外命令語を挿入する。そして、例外命令語が実行されて、関数実行前の環境値を保存し、その関数を構成する二番目の命令語を保存した後、その位置に例外命令語を挿入する。一方、関数のリターンアドレスを二番目の命令語の位置に変更する。次いで、関数を構成する最初の命令語が復旧されて実行された後、二番目の命令語位置に挿入された例外命令語が実行されれば、関数を構成する最初の命令語と三番目の命令語位置に例外命令語を挿入する。二番目の命令語が復旧されて実行された後、三番目の命令語位置に挿入された例外命令語が実行されれば、二番目の命令語位置に例外命令語を再び挿入して三番目の命令語を復旧して実行する。以後は、関数の元の命令語を順に遂行する。
前述したように、関数を構成する命令語が実行し続けながら、点検ハンドラー260の操作によって例外命令語が元の命令語に代替されうる。その詳細な過程は、図2Cないし図2Fを参照して、詳述した通りである。このようにして、例外命令語の操作による例外処理を実行するか、元の命令語が関数の最後まで実行される(S340)。
関数の最後の命令語まで実行されたか否かを判断し(S350)、最後まで実行されれば、リターンアドレスが指示する位置に戻って例外命令語を実行して、関数実行直後の環境値を保存する(S360)。このような過程を通じて関数を構成する最後の命令語が実行された後にリターンアドレスに進行すれば、例外命令語が実行されて、関数の実行直後の環境値を保存する。すなわち、関数を構成する最後の命令語が実行されれば、そのリターンアドレスに設定された二番目の命令語位置に実行位置が移動し、その位置に挿入された例外命令語が実行されて関数の実行直後の環境値をOS領域から分かる。
図4は、本発明の一実施形態による動的分析装置の構成図である。
本発明の一実施形態による動的分析装置は、命令語操作部420、点検部410及びデータベース430を含む。命令語操作部420は、プログラムを構成する関数の命令語を保存、その位置に例外命令語を挿入する。すなわち、関数を構成する最初の命令語実行開始時に例外命令語を挿入して実行し、関数を構成する最後の命令語が実行されれば、リターンアドレスに進行して例外命令語が実行されるように命令語を管理する。例外命令語の挿入手続きとその管理は、図2Aないし図2Gを参照して前述した通りである。

点検部410は、例外命令語の実行によって関数の環境値を保存する。すなわち、点検部410は、関数を構成する最初の命令語に挿入された例外命令語の実行によって関数の実行直前の環境値が分かり、関数のリターンアドレスに挿入された例外命令語の実行によって関数の実行直後の環境値が分かる。データベース430は、例外命令語と、点検する位置のアドレス情報などを保存している。
一方、命令語操作部420及び点検部410は、OS領域の例外処理ハンドラーによって実行される点検ハンドラーによって具現可能である。
本発明の一実施形態によれば、分析対象プログラムを構成する関数を動的に追跡するに当たって、その具体的な追跡結果を保存するための処理プログラムをOS領域で実行することができる。そして、分析対象の元のプログラムの実行に影響を及ぼさずにプログラムの遂行を追跡することができる。
一方、本発明の一実施形態による方法は、コンピュータで読み取り可能な記録媒体にコンピュータで読み取り可能なコードとして具現しうる。コンピュータで読み取り可能な記録媒体は、コンピュータシステムによって読み取れるデータが保存されるあらゆる種類の記録装置を含む。
コンピュータで読み取り可能な記録媒体の例としては、ROM、RAM、CD−ROM、磁気テープ、フロッピー(登録商標)ディスク、光データ保存装置などがあり、また、キャリアウェーブ(例えば、インターネットを通じる伝送)の形態で具現することを含む。また、コンピュータで読み取り可能な記録媒体は、ネットワークで連結されたコンピュータシステムに分散されて、分散方式でコンピュータで読み取り可能なコードとして保存されて実行可能である。そして、本発明を具現するための機能的な(functional)プログラム、コード及びコードセグメントは、本発明が属する技術分野のプログラマーによって容易に推論されうる。
以上、本発明の望ましい実施形態を中心に説明した。当業者ならば、本発明が、本発明の本質的な特性から外れない範囲で変形された形態として具現可能であることを理解できるであろう。したがって、開示された実施形態は限定的な観点ではなく、説明的な観点で考慮されなければならない。本発明の範囲は、特許請求の範囲に示されており、それと同等な範囲内にあるあらゆる差異点は、本発明に含まれたものと解析されなければならない。
本発明は、プログラムの動的分析方法及びその装置関連の技術分野に適用可能である。

Claims (8)

  1. プログラムを構成する関数の最初の命令語実行開始時に例外命令語を挿入して実行することによって、前記関数の実行前の環境値を保存する段階と、
    前記関数を構成する最後の命令語が実行された後にリターンアドレスに進行すれば、例外命令語が実行されて、前記関数の実行直後の環境値を保存する段階と
    を含み、前記関数のリターンアドレスは、前記関数を構成する二番目の命令語位置に設定される、ことを特徴とするプログラムの動的分析方法。
  2. 前記例外命令語が実行されれば、OS領域の例外処理ハンドラーによって点検ハンドラー(probe handler)が実行されて、前記関数の環境値を保存することを特徴とする請求項1に記載のプログラムの動的分析方法。
  3. 前記関数の実行前の環境値を保存する段階は、
    前記関数を構成する命令語を保存した後に例外命令語に置き換える段階と、
    前記例外命令語を実行させて前記関数の実行前の環境値を保存する段階と、
    前記保存された元の命令語を復旧して実行する段階とを含むことを特徴とする請求項1に記載のプログラムの動的分析方法。
  4. 前記関数の実行前の環境値を保存する段階は、
    前記関数を構成する最初の命令語を保存した後、その位置に前記例外命令語を挿入する段階と、
    前記例外命令語が実行されて、前記関数実行前の環境値を保存して前記関数のリターンアドレスを変更した後、前記関数を構成する二番目の命令語を保存した後、その位置に例外命令語を挿入する段階と、
    前記関数を構成する最初の命令語が復旧されて実行された後、前記二番目の命令語位置に挿入された例外命令語が実行されれば、前記関数を構成する最初の命令語と三番目の命令語位置に例外命令語を挿入する段階と、
    前記二番目の命令語が復旧されて実行された後、前記三番目の命令語位置に挿入された例外命令語が実行されれば、前記二番目の命令語位置に例外命令語を再び挿入して前記三番目の命令語を復旧して実行する段階とを含むことを特徴とする請求項1に記載のプログラムの動的分析方法。
  5. 前記関数の実行直後の環境値を保存する段階は、
    前記関数を構成する最後の命令語が実行されれば、そのリターンアドレスに設定された二番目の命令語位置に実行位置が移動する段階と、
    前記二番目の命令語位置に挿入された例外命令語が実行されて、前記関数の実行直後の環境値をOS領域から分かる段階とを含むことを特徴とする請求項1に記載のプログラムの動的分析方法。
  6. プログラムを構成する関数の命令語を保存、その位置に例外命令語を前記関数を構成する最初の命令語実行開始時に挿入する命令語操作部と、
    前記関数を構成する最後の命令語が実行されれば、リターンアドレスに進行して、前記例外命令語の実行によって前記関数の環境値を保存する点検部と
    を含み、前記関数のリターンアドレスは、前記関数を構成する二番目の命令語位置に設定される、ことを特徴とするプログラムの動的分析装置。
  7. 前記点検部は、
    前記関数を構成する最初の命令語に挿入された例外命令語の実行によって前記関数の実行直前の環境値が分かり、前記関数のリターンアドレスに挿入された例外命令語の実行によって前記関数の実行直後の環境値が分かることを特徴とする請求項に記載のプログラムの動的分析装置。
  8. 前記命令語操作部及び前記点検部は、
    OS領域の例外処理ハンドラーによって実行される点検ハンドラーによって具現されることを特徴とする請求項に記載のプログラムの動的分析装置。
JP2010045618A 2009-03-30 2010-03-02 プログラムの動的分析方法及びその装置 Expired - Fee Related JP5523872B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2009-0027046 2009-03-30
KR1020090027046A KR101581001B1 (ko) 2009-03-30 2009-03-30 프로그램의 동적 분석 방법 및 그 장치

Publications (2)

Publication Number Publication Date
JP2010238228A JP2010238228A (ja) 2010-10-21
JP5523872B2 true JP5523872B2 (ja) 2014-06-18

Family

ID=42785915

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010045618A Expired - Fee Related JP5523872B2 (ja) 2009-03-30 2010-03-02 プログラムの動的分析方法及びその装置

Country Status (3)

Country Link
US (1) US8769504B2 (ja)
JP (1) JP5523872B2 (ja)
KR (1) KR101581001B1 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102567206B (zh) * 2012-01-06 2014-10-29 华中科技大学 一种剖析cuda程序行为的方法
KR102028663B1 (ko) 2012-07-24 2019-10-04 삼성전자주식회사 에러 검출 방법 및 장치
US9436474B2 (en) * 2012-07-27 2016-09-06 Microsoft Technology Licensing, Llc Lock free streaming of executable code data
US8954546B2 (en) 2013-01-25 2015-02-10 Concurix Corporation Tracing with a workload distributor
US8997063B2 (en) 2013-02-12 2015-03-31 Concurix Corporation Periodicity optimization in an automated tracing system
US8924941B2 (en) * 2013-02-12 2014-12-30 Concurix Corporation Optimization analysis using similar frequencies
US20130283281A1 (en) 2013-02-12 2013-10-24 Concurix Corporation Deploying Trace Objectives using Cost Analyses
US8843901B2 (en) * 2013-02-12 2014-09-23 Concurix Corporation Cost analysis for selecting trace objectives
KR101416762B1 (ko) * 2013-02-14 2014-07-08 주식회사 엔씨소프트 온라인 게임의 봇 탐지 시스템 및 방법
US20130219372A1 (en) 2013-03-15 2013-08-22 Concurix Corporation Runtime Settings Derived from Relationships Identified in Tracer Data
US9575874B2 (en) 2013-04-20 2017-02-21 Microsoft Technology Licensing, Llc Error list and bug report analysis for configuring an application tracer
US9195555B2 (en) * 2013-05-24 2015-11-24 International Business Machines Corporation Error injection into the leaf functions of call graphs
US9292415B2 (en) 2013-09-04 2016-03-22 Microsoft Technology Licensing, Llc Module specific tracing in a shared module environment
JP6119535B2 (ja) 2013-09-30 2017-04-26 富士通株式会社 トレース方法、処理プログラム、および情報処理装置
EP3069241B1 (en) 2013-11-13 2018-08-15 Microsoft Technology Licensing, LLC Application execution path tracing with configurable origin definition
CN109992968A (zh) * 2019-03-25 2019-07-09 北京理工大学 基于二进制动态插桩的Android恶意行为动态检测方法
JP6827244B1 (ja) * 2020-09-15 2021-02-10 株式会社Attc 監査装置、監査方法、監査プログラムおよび監査システム

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4819234A (en) * 1987-05-01 1989-04-04 Prime Computer, Inc. Operating system debugger
JPH03268034A (ja) * 1990-03-19 1991-11-28 Hitachi Ltd プログラム実行監視方法
US5774724A (en) * 1995-11-20 1998-06-30 International Business Machines Coporation System and method for acquiring high granularity performance data in a computer system
US6480818B1 (en) * 1998-11-13 2002-11-12 Cray Inc. Debugging techniques in a multithreaded environment
US7000225B2 (en) * 2000-12-07 2006-02-14 International Business Machines Corporation Method for inserting global breakpoints
US6957421B2 (en) * 2001-01-26 2005-10-18 Hewlett-Packard Development Company, L.P. Providing debugging capability for program instrumented code
US6918110B2 (en) * 2001-04-11 2005-07-12 Hewlett-Packard Development Company, L.P. Dynamic instrumentation of an executable program by means of causing a breakpoint at the entry point of a function and providing instrumentation code
US7047521B2 (en) * 2001-06-07 2006-05-16 Lynoxworks, Inc. Dynamic instrumentation event trace system and methods
US6898785B2 (en) * 2001-08-16 2005-05-24 Hewlett-Packard Development Company, L.P. Handling calls from relocated instrumented functions to functions that expect a return pointer value in an original address space
KR20030041612A (ko) 2001-11-20 2003-05-27 (주)유니트시스템즈 서버 병목을 실시간으로 분석하는 방법
US7313734B2 (en) * 2002-01-14 2007-12-25 International Business Machines Corporation Method and system for instruction tracing with enhanced interrupt avoidance
US7114150B2 (en) * 2003-02-13 2006-09-26 International Business Machines Corporation Apparatus and method for dynamic instrumenting of code to minimize system perturbation
US7487502B2 (en) * 2003-02-19 2009-02-03 Intel Corporation Programmable event driven yield mechanism which may activate other threads
US7260815B1 (en) * 2003-06-30 2007-08-21 Vmware, Inc. Method and apparatus for managing registers in a binary translator
US7543186B2 (en) * 2004-09-13 2009-06-02 Sigmatel, Inc. System and method for implementing software breakpoints
JP4388518B2 (ja) * 2005-11-01 2009-12-24 株式会社ソニー・コンピュータエンタテインメント スレッドデバッグ装置、スレッドデバッグ方法及びプログラム
JP2007133536A (ja) 2005-11-09 2007-05-31 Nec Computertechno Ltd 故障検出プログラム作成装置、プリプロセッサ、故障検出プログラム作成方法、及びプログラム
JP2007133590A (ja) 2005-11-09 2007-05-31 Fuji Xerox Co Ltd エラー処理テスト方法
US20070226702A1 (en) * 2006-03-22 2007-09-27 Rolf Segger Method for operating a microcontroller in a test environment
US8090996B2 (en) * 2006-03-31 2012-01-03 Intel Corporation Detecting soft errors via selective re-execution
JP2008123438A (ja) * 2006-11-15 2008-05-29 Fujitsu Ltd コンピュータシステム、プログラム情報収集方法、およびコンピュータプログラム
US20100095281A1 (en) * 2008-10-14 2010-04-15 Riverside Research Institute Internal Function Debugger

Also Published As

Publication number Publication date
KR20100108816A (ko) 2010-10-08
US8769504B2 (en) 2014-07-01
JP2010238228A (ja) 2010-10-21
US20100251220A1 (en) 2010-09-30
KR101581001B1 (ko) 2015-12-30

Similar Documents

Publication Publication Date Title
JP5523872B2 (ja) プログラムの動的分析方法及びその装置
US8261242B2 (en) Assisting debug memory tracing using an instruction array that tracks the addresses of instructions modifying user specified objects
US9274923B2 (en) System and method for stack crawl testing and caching
US5987250A (en) Transparent instrumentation for computer program behavior analysis
US7788535B2 (en) Means and method for debugging
US7698690B2 (en) Identifying code that wastes time performing redundant computation
US20080127117A1 (en) Method and apparatus for instrumentation in a multiprocessing environment
US20080148238A1 (en) Runtime Analysis of a Computer Program to Identify Improper Memory Accesses that Cause Further Problems
US10241894B2 (en) Data-scoped dynamic data race detection
KR101979329B1 (ko) 바이너리의 취약점을 유발하는 입력데이터 위치 추적 방법 및 그 장치
US20090217104A1 (en) Method and apparatus for diagnostic recording using transactional memory
EP3602307B1 (en) Enabling breakpoints on entire data structures
US20080162776A1 (en) Identifying Race Conditions Involving Asynchronous Memory Updates
CN113778838B (zh) 二进制程序动态污点分析方法及装置
US8966455B2 (en) Flow analysis in program execution
CN111931191A (zh) Linux平台二进制软件堆溢漏洞动态检测方法及系统
US8806448B2 (en) Dynamic instrumentation method and apparatus for tracing and analyzing a program
CN114780409A (zh) 基于程序运行进程的断点设置方法、电子设备和存储介质
US8839207B2 (en) Debugging extensible markup language
KR101225577B1 (ko) 어셈블리 언어 코드의 분석 장치 및 방법
CN117435495A (zh) 函数测试方法、装置、计算机可读存储介质及电子设备
CN115202857A (zh) 内存使用分析方法、存储介质及电子设备
JP5421735B2 (ja) コアファイル取得装置、コアファイル取得方法及びコアファイル取得プログラム
JP5278901B2 (ja) 頻繁に発生するイベントを推定する方法
CN112433945A (zh) 一种用于程序动态跟踪的方法、装置及电子设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130225

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131120

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140219

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140311

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140409

R150 Certificate of patent or registration of utility model

Ref document number: 5523872

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees