2.8 Configuring application rewind for Linux

Application rewind uses a custom debug agent, undodb-server, that records the execution of your application as it runs. Use the options available under Application Debug with Rewind Support in the Debug Configurations dialog to connect to Linux targets.

Note

  • 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. It is not supported on architecture ARMv8 targets.
The connection options are:
  • Connect to already running application.
    This option requires you to load your application and the application rewind server on your target and start the application rewind server manually before attempting a connection between DS-5 and your target.
    undodb-server is the custom debug agent used by application rewind. This option requires you to load your application and the application rewind server on your target manually. When a connection is established, DS-5 starts a new application rewind server session on your target to debug your application.
  • Start undodb-server and debug target-resident application.
    undodb-server is the custom debug agent used by application rewind. This option requires you to load your application and the application rewind server on your target manually. When a connection is established, DS-5 starts a new application rewind server session on your target to debug your application.
  • Download and debug application.
    When a connection is established using this option, DS-5 downloads your application and the application rewind server on to the target system, and starts a new application rewind server session to debug your application.

Note

Application rewind 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 the 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".
    Since the buffer is implemented in the target RAM, increasing the buffer size can also hinder performance by affecting memory usage. For this reason, when increasing the buffer size, set the buffer to a value that also provides maximum performance.
  • 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 circular.
    For example, set debug-agent history-buffer-type "circular".
Non-ConfidentialPDF file icon PDF versionARM DUI0446W
Copyright © 2010-2015 ARM. All rights reserved.