Publication | Closed Access
An API for Runtime Code Patching
580
Citations
13
References
2000
Year
Software MaintenanceEngineeringCompiler TechnologyComputer ArchitectureSoftware EngineeringSource Code AnalysisSoftware AnalysisFormal VerificationRuntime CodeSystem SoftwareParallel ComputingDynamic CompilationCompiler SupportComputer EngineeringC++ Class LibraryComputer ScienceDebuggerStatic Program AnalysisAutomated RepairConditional BreakpointsProgram AnalysisSoftware TestingFormal MethodsProgram Instrumentation
Dyninst is a postcompiler tool that offers a C++ library for program instrumentation, enabling runtime modification and machine‑independent binary instrumentation of applications. The library exposes an interface that the authors illustrate with three example tools: a function‑call counter, an output‑capture utility, and a conditional‑breakpoint implementation. Using the conditional‑breakpoint tool, the authors demonstrate up to a 900‑fold speedup over gdb.
The authors present a postcompiler program manipulation tool called Dyninst, which provides a C++ class library for program instrumentation. Using this library, it is possible to instrument and modify application programs during execution. A unique feature of this library is that it permits machine-independent binary instrumentation programs to be written. The authors describe the interface that a tool sees when using this library. They also discuss three simple tools built using this interface: a utility to count the number of times a function is called, a program to capture the output of an already running program to a file, and an implementation of conditional breakpoints. For the conditional breakpoint example, the authors show that by using their interface compared with gdb, they are able to execute a program with conditional breakpoints up to 900 times faster.
| Year | Citations | |
|---|---|---|
Page 1
Page 1