scispace - formally typeset
Journal ArticleDOI

An API for Runtime Code Patching

Reads0
Chats0
TLDR
The authors present a postcompiler program manipulation tool called Dyninst, which provides a C++ class library for program instrumentation that permits machine-independent binary instrumentation programs to be written.
Abstract: 
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.

read more

Content maybe subject to copyright    Report

Citations
More filters
Proceedings ArticleDOI

Coping with API Evolution for Running, Mission-Critical Applications Using Virtual Execution Environment

TL;DR: An online updating framework based on virtual execution environment (VEE) such as Java virtual machine is developed to take the API change log, which records changes to API components, and seamlessly apply proper updates to the running system without human intervention and without shutting down the system.
ReportDOI

Performance Technology for Tera-Class Parallel Computers: Evolution of the TAU Performance System

TL;DR: This project proposed to create new technology for performance observation and analysis of large-scale tera-class parallel computer systems and applications in this project.
Proceedings ArticleDOI

Towards a service-based middleware layer for runtime environments

TL;DR: This paper presents a service-based view of an expanded run-time environment in which the current dynamic linker is only a core service, and other middleware-type services are available to the application and its components (shared libraries).

PerfExpert: An Automated HPC Performance Measurement and Analysis Tool with Optimization Recommendations

TL;DR: PerfExpert is a tool that combines a simple user interface with a sophisticated engine to automatically detect probable core, socket, and node-level performance bottlenecks in each important procedure and loop and suggests steps that can be taken to improve performance.

Architectural support for software debugging

TL;DR: The Intelligent Watcher (iWatcher) is proposed, a novel architectural scheme to monitor dynamic execution automatically, flexibly and with minimal overhead, and an incremental checking framework, called iChecker, that leverages iWatcher to provide an i checker library for efficient, incremental, run-time consistency checks of mutable data structures in C programs.
References
More filters
Proceedings ArticleDOI

ATOM: a system for building customized program analysis tools

TL;DR: ATOM as mentioned in this paper is a single framework for building a wide range of customized program analysis tools, including block counting, profiling, dynamic memory recording, instruction and data cache simulation, pipeline simulation, evaluating branch prediction, and instruction scheduling.
Journal ArticleDOI

The Paradyn parallel performance measurement tool

TL;DR: Dynamic instrumentation lets us defer insertion until the moment it is needed (and remove it when it is no longer needed); Paradyn's Performance Consultant decides when and where to insert instrumentation.
Proceedings ArticleDOI

EEL: machine-independent executable editing

TL;DR: EEL supports a machine- and system-independent editing model that enables tool builders to modify an executable without being aware of the details of the underlying architecture or operating system or being concerned with the consequences of deleting instructions or adding foreign code.
Proceedings Article

Instrumentation and optimization of Win32/intel executables using Etch

TL;DR: Etch is a general-purpose tool for rewriting arbitrary Win32/x86 binaries without requiring source code and some of the tools that are built using it are described, including a hierarchical call graph profiler and an instruction layout optimization tool.
Proceedings ArticleDOI

Dynamic program instrumentation for scalable performance tools

TL;DR: This work presents a new technique called 'dynamic instrumentation' that provides efficient, scalable, yet detailed data collection for large-scale parallel applications and includes recommendations to operating system designers, compiler writers, and computer architects about the features necessary to permit efficient monitoring of large- scale parallel systems.
Related Papers (5)