The Record Replay feature is independant of the charmdebug application. It is a mechanism used to detect bugs that happen only once in a while depending on the order in which messages are processed. The program in consideration is first run in a record mode which produces a trace. When the program is run in replay mode it uses a previous trace gotten from a record run to ensure that messages are processed in the same order as the recorded run. The idea is to make use of a message-sequence number and a theorem says that the serial numbers will be the same if the messages are processed in the same order. [#!rashmithesis!#]
Record Replay tracing is automatically enabled for CHARM++ programs and requires nothing special to be done during compilation (linking with the option ``-tracemode recordreplay'' used to be necessary). At run time, the ``+record'' option is used, which records messages in order in a file for each processor. The same execution order can be replayed using the ``+replay'' runtime option, which can be used at the same time as the other debugging tools in CHARM++.
Note! If your CHARM++ is built with CMK_OPTIMIZE on, all tracing will be disabled. So, use an unoptimized CHARM++ to do your debugging.
February 12, 2012
CharmDebug Homepage
Charm Homepage