Implementation of Live Reverse Debugging in LLDB

05/26/2021
by   Anthony Savidis, et al.
0

Debugging is an essential process with a large share of the development effort, being a relentless quest for offensive code through tracing, inspection and iterative running sessions. Probably every developer has been in a situation with a clear wish to rewind time just for a while, only to retry some actions alternatively, instead of restarting the entire session. Well, the genie to fulfill such a wish is known as a reverse debugger. Their inherent technical complexity makes them very hard to implement, while the imposed execution overhead turns them to less preferable for adoption. There are only a few available, most being off-line tools, working on recorded, previously run, sessions. We consider live reverse debuggers both challenging and promising, since they can fit into existing forward debuggers, and we developed the first live reverse debugger on top of LLDB, discussing in detail our implementation approach.

READ FULL TEXT

page 2

page 3

page 11

page 15

page 21

page 22

page 23

page 24

research
11/27/2021

Evading Malware Analysis Using Reverse Execution

Malware is a security threat, and various means are adapted to detect an...
research
10/03/2018

Reverse Greedy is Bad for k-Center

We demonstrate that the reverse greedy algorithm is a Θ(k) approximation...
research
02/01/2019

Babylonian-style Programming: Design and Implementation of an Integration of Live Examples into General-purpose Source Code

When working on a program, developers traditionally have to simulate the...
research
12/27/2012

LNOS - Live Network Operating System

Operating Systems exists since existence of computers, and have been evo...
research
05/03/2018

Reversible Truly Concurrent Process Algebra

We design a reversible version of truly concurrent process algebra CTC w...
research
03/23/2022

Monoidal Reverse Differential Categories

Cartesian reverse differential categories (CRDCs) are a recently defined...
research
08/22/2017

Divide-and-Conquer Checkpointing for Arbitrary Programs with No User Annotation

Classical reverse-mode automatic differentiation (AD) imposes only a sma...

Please sign up or login with your details

Forgot password? Click here to reset