Description |
1 online resource (xi, 67 pages) : illustrations |
Series |
Synthesis lectures on computer architecture, 1935-3243 ; #15 |
|
Synthesis lectures in computer architecture ; #15.
|
Contents |
Acknowledgments -- 1. Dynamic binary modification: overview -- Utility -- Functionality -- System performance -- High-level summary |
|
2. Using a dynamic binary modifier -- Heavyweight vs. lightweight control -- JIT-mode execution -- Probe-mode execution -- Persistent binary modification -- Launching the system -- Complete process control -- Attaching to an existing process -- Programmable instrumentation -- Platform-specific behaviors -- End-user optimizations -- Debugging your plug-in tool |
|
3. Program analysis and debugging -- Program analysis examples -- Parallel program analysis -- Deterministic replay -- Customizable debugging |
|
4. Active program modification -- Fine-grained instruction modification -- Function replacement -- Dynamic optimization -- Sandboxing and security enforcement |
|
5. Architectural exploration -- Simulation -- Trace generation -- Functional cache simulation -- Functional branch prediction simulation -- Timing simulation -- Emulation -- Supporting new instructions -- Masking hardware flaws -- Binary translation -- Design-space exploration |
|
6. Advanced system internals -- Modes of execution -- Modified copy on demand -- Modification in place -- A shared address space -- Acquiring control -- Maintaining control: JIT compilation -- Storing modified code: the code cache -- Forming traces of modified code -- Code cache eviction and replacement -- Code cache introspection -- Handling self-modifying code -- The emulator -- Multithreaded program support -- Thread-shared code caches -- Generational cache replacement -- Windows execution support -- Masking overhead with parallelism -- Remaining challenges |
|
7. Historical perspectives |
|
8. Summary and observations -- Bibliography -- Author's biography |
Summary |
Dynamic binary modification tools form a software layer between a running application and the underlying operating system, providing the powerful opportunity to inspect and potentially modify every user-level guest application instruction that executes. Toolkits built upon this technology have enabled computer architects to build powerful simulators and emulators for design-space exploration, compiler writers to analyze and debug the code generated by their compilers, software developers to fully explore the features, bottlenecks, and performance of their software, and even end-users to extend the functionality of proprietary software running on their computers |
Analysis |
Dynamic binary modification |
|
Instrumentation |
|
Runtime optimization |
|
Binary translation |
|
Profiling |
|
Debugging |
|
Simulation |
|
Security |
|
User-level analysis |
Bibliography |
Includes bibliographical references (pages 59-65) |
Notes |
English |
Subject |
Software maintenance.
|
|
Application software.
|
|
Computer programs -- Execution.
|
|
COMPUTERS -- Programming -- Open Source.
|
|
COMPUTERS -- Software Development & Engineering -- General.
|
|
COMPUTERS -- Software Development & Engineering -- Tools.
|
|
Application software
|
|
Computer programs -- Execution
|
|
Software maintenance
|
Form |
Electronic book
|
ISBN |
9781608454594 |
|
1608454592 |
|
1608454584 |
|
9781608454587 |
|
9783031017322 |
|
3031017323 |
|