Movatterモバイル変換


[0]ホーム

URL:


US20140325193A1 - Dynamic instrumentation - Google Patents

Dynamic instrumentation
Download PDF

Info

Publication number
US20140325193A1
US20140325193A1US14/324,073US201414324073AUS2014325193A1US 20140325193 A1US20140325193 A1US 20140325193A1US 201414324073 AUS201414324073 AUS 201414324073AUS 2014325193 A1US2014325193 A1US 2014325193A1
Authority
US
United States
Prior art keywords
instruction
breakpoint
trampoline
original instruction
original
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
Application number
US14/324,073
Other versions
US9336001B2 (en
Inventor
Balbir Singh
Maneesh Soni
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.)
Lenovo International Ltd
Original Assignee
Lenovo Enterprise Solutions Singapore Pte 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 Lenovo Enterprise Solutions Singapore Pte LtdfiledCriticalLenovo Enterprise Solutions Singapore Pte Ltd
Priority to US14/324,073priorityCriticalpatent/US9336001B2/en
Assigned to INTERNATIONAL BUSINESS MACHINES CORPORATIONreassignmentINTERNATIONAL BUSINESS MACHINES CORPORATIONASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS).Assignors: SONI, MANEESH, SINGH, BALBIR
Publication of US20140325193A1publicationCriticalpatent/US20140325193A1/en
Assigned to LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE. LTD.reassignmentLENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE. LTD.ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS).Assignors: INTERNATIONAL BUSINESS MACHINES CORPORATION
Application grantedgrantedCritical
Publication of US9336001B2publicationCriticalpatent/US9336001B2/en
Assigned to LENOVO INTERNATIONAL LIMITEDreassignmentLENOVO INTERNATIONAL LIMITEDASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS).Assignors: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE. LTD.
Assigned to LENOVO INTERNATIONAL LIMITEDreassignmentLENOVO INTERNATIONAL LIMITEDASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS).Assignors: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE LTD.
Activelegal-statusCriticalCurrent
Adjusted expirationlegal-statusCritical

Links

Images

Classifications

Definitions

Landscapes

Abstract

Techniques for dynamic instrumentation are provided. A method for instrumentation preparation may include obtaining address data of an original instruction in an original instruction stream, obtaining kernel mode data comprising a kernel breakpoint handler, obtaining user mode data comprising a user breakpoint handler, allocating a page of a process address space, creating a trampoline, associating the trampoline with a breakpoint instruction, and replacing the original instruction with the breakpoint instruction. A method for instrumentation may include detecting the breakpoint instruction, calling the kernel breakpoint handler, modifying an instruction pointer via the kernel breakpoint handler such that the instruction pointer points to the trampoline, and executing the trampoline. The system for instrumentation may include a breakpoint setup module and a breakpoint execution module for respectively setting up and completing instrumentation involving the trampoline.

Description

Claims (23)

11. A system comprising:
a breakpoint setup module configured to allocate memory of a process address space, configure instrumentation data associated with an original instruction in an original instruction stream, store the instrumentation data in the allocated memory of the process address space, and associate the instrumentation data with a breakpoint instruction, wherein the instrumentation data includes a trampoline comprising a copy of the original instruction, a set of instructions for saving register states and stack data of the original instruction, and a set of instructions for restoring the register states and the stack data of the original instruction; and
a breakpoint execution module configured to execute a kernel breakpoint handler that modifies an instruction pointer such that the instruction pointer points to the trampoline and further configured to execute the trampoline, wherein the breakpoint execution module includes one or more processors, and wherein executing the trampoline comprises executing the original instruction.
23. A computer program product including a non-transitory computer readable medium having program code instructions embodied therewith, the program code instructions executable by a computing device to perform an operation comprising:
creating a trampoline associated with a breakpoint instruction, the trampoline comprising a copy of an original instruction in an original instruction stream, a set of instructions for saving register states and stack data of the original instruction, and a set of instructions for restoring the register states and the stack data of the original instruction;
detecting the breakpoint instruction;
calling a kernel breakpoint handler;
modifying an instruction pointer via the kernel breakpoint handler such that the instruction pointer points to the trampoline; and
executing the trampoline by operation of one or more processors, wherein executing the trampoline comprises executing the original instruction.
US14/324,0732009-12-212014-07-03Dynamic instrumentationActive2030-03-13US9336001B2 (en)

Priority Applications (1)

Application NumberPriority DateFiling DateTitle
US14/324,073US9336001B2 (en)2009-12-212014-07-03Dynamic instrumentation

Applications Claiming Priority (2)

Application NumberPriority DateFiling DateTitle
US12/642,973US8832666B2 (en)2009-12-212009-12-21Dynamic instrumentation
US14/324,073US9336001B2 (en)2009-12-212014-07-03Dynamic instrumentation

Related Parent Applications (1)

Application NumberTitlePriority DateFiling Date
US12/642,973ContinuationUS8832666B2 (en)2009-12-212009-12-21Dynamic instrumentation

Publications (2)

Publication NumberPublication Date
US20140325193A1true US20140325193A1 (en)2014-10-30
US9336001B2 US9336001B2 (en)2016-05-10

Family

ID=44152982

Family Applications (2)

Application NumberTitlePriority DateFiling Date
US12/642,973Expired - Fee RelatedUS8832666B2 (en)2009-12-212009-12-21Dynamic instrumentation
US14/324,073Active2030-03-13US9336001B2 (en)2009-12-212014-07-03Dynamic instrumentation

Family Applications Before (1)

Application NumberTitlePriority DateFiling Date
US12/642,973Expired - Fee RelatedUS8832666B2 (en)2009-12-212009-12-21Dynamic instrumentation

Country Status (1)

CountryLink
US (2)US8832666B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US20150106602A1 (en)*2013-10-152015-04-16Advanced Micro Devices, Inc.Randomly branching using hardware watchpoints
CN109445685A (en)*2018-09-262019-03-08华中科技大学A kind of User space file system processing method
US10747510B1 (en)*2019-06-042020-08-18Apptimize LlcApplication runtime modification

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
WO2012069872A1 (en)2010-11-222012-05-31Freescale Semiconductor, Inc.Method for setting breakpoints, and an integrated circuit and debug tool therefor
US10089126B2 (en)*2013-03-212018-10-02Vmware, Inc.Function exit instrumentation for tail-call optimized code
US9678816B2 (en)2012-06-292017-06-13Vmware, Inc.System and method for injecting faults into code for testing thereof
US9146758B2 (en)2012-06-292015-09-29Vmware, Inc.Simultaneous probing of multiple software modules of a computer system
US9921979B2 (en)*2015-01-142018-03-20Red Hat Israel, Ltd.Position dependent code in virtual machine functions
US9189630B1 (en)*2015-01-212015-11-17AO Kaspersky LabSystems and methods for active operating system kernel protection
US9619368B2 (en)2015-01-292017-04-11Nxp Usa, Inc.Method of testing software
US20160371166A1 (en)*2015-06-192016-12-22International Business Machines CorporationStream-based breakpoint for too many tuple creations
CN105224454B (en)*2015-09-252018-06-05华为技术有限公司A kind of adjustment method, polycaryon processor and commissioning device
WO2018191879A1 (en)2017-04-192018-10-25Ebay Inc.Consistency mitigation techniques for real-time streams
CN107273750B (en)*2017-05-312021-03-16上海交通大学 Patching system and method for Android device kernel vulnerability
US10691485B2 (en)2018-02-132020-06-23Ebay Inc.Availability oriented durability technique for distributed server systems
CN108959085B (en)*2018-06-252020-09-01清华大学Method and system for detecting sleep error of kernel module in atomic context

Citations (3)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US20040168157A1 (en)*2003-02-182004-08-26Robert HundtSystem and method for creating a process invocation tree
US20060095895A1 (en)*2004-08-262006-05-04Hewlett-Packard Development Company, L.P.Method and apparatus for inserting code
US8745596B2 (en)*2009-02-052014-06-03Microsoft CorporationProgram debugging with dynamically inserted instrumentation

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US6499137B1 (en)*1998-10-022002-12-24Microsoft CorporationReversible load-time dynamic linking
US20040205720A1 (en)*2001-04-302004-10-14Robert HundtAugmenting debuggers
US6898785B2 (en)2001-08-162005-05-24Hewlett-Packard Development Company, L.P.Handling calls from relocated instrumented functions to functions that expect a return pointer value in an original address space
US6931632B2 (en)2001-11-082005-08-16Hewlett-Packard Development Company, L.P.Instrumentation of code having predicated branch-call and shadow instructions
US7536682B2 (en)*2003-04-222009-05-19International Business Machines CorporationMethod and apparatus for performing interpreter optimizations during program code conversion
US20050108562A1 (en)*2003-06-182005-05-19Khazan Roger I.Technique for detecting executable malicious code using a combination of static and dynamic analyses
US20070168979A1 (en)2005-12-302007-07-19Intel CorporationTransparent debugging of programs in dynamic translation systems
US7950001B2 (en)2006-09-082011-05-24International Business Machines CorporationMethod and apparatus for instrumentation in a multiprocessing environment
US7523446B2 (en)*2006-11-302009-04-21International Business Machines CorporationUser-space return probes
US8286139B2 (en)*2008-03-192012-10-09International Businesss Machines CorporationCall stack sampling for threads having latencies exceeding a threshold
US20100095281A1 (en)*2008-10-142010-04-15Riverside Research InstituteInternal Function Debugger
US20120216015A1 (en)*2011-02-222012-08-23Mitra Sumanranjan SSystem and method to concurrently execute a plurality of object oriented platform independent programs by utilizing memory accessible by both a processor and a co-processor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US20040168157A1 (en)*2003-02-182004-08-26Robert HundtSystem and method for creating a process invocation tree
US20060095895A1 (en)*2004-08-262006-05-04Hewlett-Packard Development Company, L.P.Method and apparatus for inserting code
US8745596B2 (en)*2009-02-052014-06-03Microsoft CorporationProgram debugging with dynamically inserted instrumentation

Cited By (4)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US20150106602A1 (en)*2013-10-152015-04-16Advanced Micro Devices, Inc.Randomly branching using hardware watchpoints
US9483379B2 (en)*2013-10-152016-11-01Advanced Micro Devices, Inc.Randomly branching using hardware watchpoints
CN109445685A (en)*2018-09-262019-03-08华中科技大学A kind of User space file system processing method
US10747510B1 (en)*2019-06-042020-08-18Apptimize LlcApplication runtime modification

Also Published As

Publication numberPublication date
US8832666B2 (en)2014-09-09
US20110154297A1 (en)2011-06-23
US9336001B2 (en)2016-05-10

Similar Documents

PublicationPublication DateTitle
US9336001B2 (en)Dynamic instrumentation
US9430254B2 (en)Register mapping techniques
US9201698B2 (en)System and method to reduce memory usage by optimally placing VMS in a virtualized data center
KR102313021B1 (en) Facility to extend the exclusive hold of a cache line in a dedicated cache
CN110865898B (en)Method, device, medium and equipment for converging crash call stack
CN111208933B (en)Method, device, equipment and storage medium for data access
US9063760B2 (en)Employing native routines instead of emulated routines in an application being emulated
CN107404418B (en)Internet product testing method, device, equipment and storage medium
US9575722B2 (en)Software interface for a specialized hardward device
CN109951553B (en)Data processing method, system, electronic device and computer readable storage medium
CN110502357A (en)A kind of stack retrogressive method, device, medium and equipment
US10740067B2 (en)Selective updating of floating point controls
US11016886B2 (en)Multi-ring shared, traversable, and dynamic advanced database
CN111026493A (en)Interface rendering processing method and device
EP3872630A2 (en)Request processing method and apparatus, electronic device, and computer storage medium
US9064042B2 (en)Instrumenting computer program code by merging template and target code methods
CN112364268A (en)Resource acquisition method and device, electronic equipment and storage medium
CN106502707B (en)Code generation method and device
CN111639936A (en)Transaction information acquisition method and device, electronic equipment and readable storage medium
US9189299B2 (en)Framework for system communication for handling data
CN107636624B (en)Garbage collection without using special instructions
CN115297169B (en)Data processing method, device, electronic equipment and medium
US20240103820A1 (en)Dependency analysis through class file manipulation
CN112214220A (en) Method, apparatus and apparatus for integrated system
CN110414945A (en)Recruitment associated data processing method and its device on block chain

Legal Events

DateCodeTitleDescription
ASAssignment

Owner name:INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y

Free format text:ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SINGH, BALBIR;SONI, MANEESH;SIGNING DATES FROM 20140625 TO 20140701;REEL/FRAME:033278/0424

ASAssignment

Owner name:LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE. LTD., SINGAPORE

Free format text:ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:INTERNATIONAL BUSINESS MACHINES CORPORATION;REEL/FRAME:034194/0111

Effective date:20140926

Owner name:LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE. LTD.,

Free format text:ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:INTERNATIONAL BUSINESS MACHINES CORPORATION;REEL/FRAME:034194/0111

Effective date:20140926

FEPPFee payment procedure

Free format text:PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCFInformation on status: patent grant

Free format text:PATENTED CASE

ASAssignment

Owner name:LENOVO INTERNATIONAL LIMITED, HONG KONG

Free format text:ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE. LTD.;REEL/FRAME:039872/0136

Effective date:20160830

ASAssignment

Owner name:LENOVO INTERNATIONAL LIMITED, HONG KONG

Free format text:ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE LTD.;REEL/FRAME:050301/0494

Effective date:20160701

MAFPMaintenance fee payment

Free format text:PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment:4

MAFPMaintenance fee payment

Free format text:PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment:8


[8]ページ先頭

©2009-2025 Movatter.jp