JP5523872B2 - プログラムの動的分析方法及びその装置 - Google Patents
プログラムの動的分析方法及びその装置 Download PDFInfo
- 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
Links
- 238000004458 analytical method Methods 0.000 title claims description 35
- 238000000034 method Methods 0.000 claims description 24
- 238000007689 inspection Methods 0.000 claims description 23
- 230000007613 environmental effect Effects 0.000 claims description 7
- 230000006870 function Effects 0.000 description 57
- 238000010586 diagram Methods 0.000 description 5
- 238000007726 management method Methods 0.000 description 3
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3644—Software debugging by instrumenting at runtime
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
- G06F9/4484—Executing 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
Claims (8)
- プログラムを構成する関数の最初の命令語実行開始時に例外命令語を挿入して実行することによって、前記関数の実行前の環境値を保存する段階と、
前記関数を構成する最後の命令語が実行された後にリターンアドレスに進行すれば、例外命令語が実行されて、前記関数の実行直後の環境値を保存する段階と、
を含み、前記関数のリターンアドレスは、前記関数を構成する二番目の命令語位置に設定される、ことを特徴とするプログラムの動的分析方法。 - 前記例外命令語が実行されれば、OS領域の例外処理ハンドラーによって点検ハンドラー(probe handler)が実行されて、前記関数の環境値を保存することを特徴とする請求項1に記載のプログラムの動的分析方法。
- 前記関数の実行前の環境値を保存する段階は、
前記関数を構成する命令語を保存した後に例外命令語に置き換える段階と、
前記例外命令語を実行させて前記関数の実行前の環境値を保存する段階と、
前記保存された元の命令語を復旧して実行する段階とを含むことを特徴とする請求項1に記載のプログラムの動的分析方法。 - 前記関数の実行前の環境値を保存する段階は、
前記関数を構成する最初の命令語を保存した後、その位置に前記例外命令語を挿入する段階と、
前記例外命令語が実行されて、前記関数実行前の環境値を保存して前記関数のリターンアドレスを変更した後、前記関数を構成する二番目の命令語を保存した後、その位置に例外命令語を挿入する段階と、
前記関数を構成する最初の命令語が復旧されて実行された後、前記二番目の命令語位置に挿入された例外命令語が実行されれば、前記関数を構成する最初の命令語と三番目の命令語位置に例外命令語を挿入する段階と、
前記二番目の命令語が復旧されて実行された後、前記三番目の命令語位置に挿入された例外命令語が実行されれば、前記二番目の命令語位置に例外命令語を再び挿入して前記三番目の命令語を復旧して実行する段階とを含むことを特徴とする請求項1に記載のプログラムの動的分析方法。 - 前記関数の実行直後の環境値を保存する段階は、
前記関数を構成する最後の命令語が実行されれば、そのリターンアドレスに設定された二番目の命令語位置に実行位置が移動する段階と、
前記二番目の命令語位置に挿入された例外命令語が実行されて、前記関数の実行直後の環境値をOS領域から分かる段階とを含むことを特徴とする請求項1に記載のプログラムの動的分析方法。 - プログラムを構成する関数の命令語を保存し、その位置に例外命令語を前記関数を構成する最初の命令語実行開始時に挿入する命令語操作部と、
前記関数を構成する最後の命令語が実行されれば、リターンアドレスに進行して、前記例外命令語の実行によって前記関数の環境値を保存する点検部と、
を含み、前記関数のリターンアドレスは、前記関数を構成する二番目の命令語位置に設定される、ことを特徴とするプログラムの動的分析装置。 - 前記点検部は、
前記関数を構成する最初の命令語に挿入された例外命令語の実行によって前記関数の実行直前の環境値が分かり、前記関数のリターンアドレスに挿入された例外命令語の実行によって前記関数の実行直後の環境値が分かることを特徴とする請求項6に記載のプログラムの動的分析装置。 - 前記命令語操作部及び前記点検部は、
OS領域の例外処理ハンドラーによって実行される点検ハンドラーによって具現されることを特徴とする請求項6に記載のプログラムの動的分析装置。
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)
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)
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 |
-
2009
- 2009-03-30 KR KR1020090027046A patent/KR101581001B1/ko not_active IP Right Cessation
-
2010
- 2010-03-02 JP JP2010045618A patent/JP5523872B2/ja not_active Expired - Fee Related
- 2010-03-18 US US12/726,705 patent/US8769504B2/en not_active Expired - Fee Related
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 |