No instrumentation is required to use the CHARM++ debugger. Being
CCS based, you can use it to set and step through entry point
breakpoints and examine CHARM++ structures on any CHARM++
application.
Nevertheless, for some features to be present some additional options might
be required at either compile or link time:
In order to provide a symbol conversion of the assembly code executed
by the application, the -g option is needed at compile time. This
conversion is needed to provide function names as well as source file names
and line numbers wherever useful. This is useful also to fully utilize gdb
(or any other serial debugger) on one or more processes.
Optimization options, with their nature of transforming the source code,
can produce a mismatch between the function displayed in the debugger (for
example in a stack trace) and the functions present in the source code. To
produce information coherent with source code, optimization is discouraged.
The link time option -memory charmdebug is needed in
order to gather information regarding the memory of the application. This
includes both the Memory view (see 4.5.1) and the Inspector
framework (see 4.5.2).