The C++ option is assumed by default when invoking dbXtra and dbxtra. The proper C++ compiler flags must be used to compile the program. The following describes the debugger's behavior when -C++ is used along with other C++ compiler flags.
If the -dbxC flag was used to compile the C++ program, the compiler also generates the C source that is derived from the C++ program. This enables the debugger to display both C and C++ source (see ``The dbXtra and dbxtra cc command''), and to display comprehensive information about C++ constructs. Commands that take expressions are also able to recognize both C++ identifiers and the resulting C identifiers. These capabilities allow debuging both C and C++ source. This flag, however, does result in additional files being created and, therefore, requires more hard disk space.
If the -dbx flag was used, the compiler does not produce C source. Hence, C source cannot be displayed. Commands, however, can recognize both C++ identifiers and their C derivatives, called "mangled" names. C++ information produced by dbXtra or dbxtra when this flag is used is as good as when the -dbxC flag is used. Although additional files are created, their number is less than the number created when -dbxC is used. This flag is useful when C++ source alone is to be debugged.
Like -dbx, the compiler does not
produce C source with the -g flag.
The debugger cannot display C source,
although C++ identifiers and
their C derivatives are recognized by
very limited amount of C++ debugging
information produced prevents dbXtra and dbxtra
from displaying much about C++ constructs.
Hence, among the three flags, -g is
the most restrictive in terms of allowing
the debugger to debug C++ programs.