NoteThe application rewind feature in DS-5 Debugger is license
managed. Contact your support representative for details about this feature.
Debugging backwards is useful to help track down how an application
reached a particular state, without having to repeatedly rerun your application from the
beginning. Using this feature, you can both run and step, including hitting breakpoints
and watchpoints. You can also view the contents of recorded memory, registers, and
variables at any point in your application's execution.
- Application rewind does not follow forked processes.
- When debugging backwards, you can only view the contents of
recorded memory, registers, or variables. You cannot edit or change them.
- Application rewind supports architecture ARMv5TE targets and
later, except for the 64-bit ARMv8 architecture.
Application rewind uses a custom debug agent that records the execution
of your application as it runs. This custom debug agent implements a buffer on the
target to store history for recorded executions. The default is a straight buffer, which
records events until the buffer limit is reached, and then stops the execution. At this
point, you can either increase the size of the buffer or change the buffer to be
circular. When using a circular buffer, once the limit of a circular buffer is reached,
instead of stopping execution, the data wraps around and overwrites old content. A
circular buffer ensures that execution does not stop when the buffer limit is reached,
but you lose the execution history beyond the point where data wrapped around.
- To change buffer limits, use the command set debug-agent history-buffer-size "size"
Where size specifies the
amount of memory. You can specify the value in kilobytes (K), megabytes (M), or gigabytes (G).
For example, set debug-agent
history-buffer-size "256.00 M"
- To change buffer type, use the command set
debug-agent history-buffer-type "type"
Where type specifies the type
of buffer, which is either straight or
example, set debug-agent history-buffer-type
NoteDebugging your application using application rewind results in
increased memory consumption on your target and might slow down your application. The
exact impact is dependent on the behavior of your application. Applications that perform
large amounts of I/O are likely to experience increased memory consumption during the