debug (Linux*)
Enables or disables generation of
debugging information.
This content is specific to C++; it does not apply to
DPC++
.Syntax
Linux:
-debug
[
keyword
]
Windows:
None
Arguments
- keyword
- Is the type of debugging information to be generated. Possible values are:
- none
- Disables generation of debugging information.
- fullorall
- Generates complete debugging information.
- minimal
- Generates line number information for debugging.
- [no]emit_column
- Determines whether the compiler generates column number information for debugging.
- [no]expr-source-pos
- Determines whether the compiler generates source position information at the expression level of granularity.
- [no]inline-debug-info
- Determines whether the compiler generates enhanced debug information for inlined code.
- [no]pubnames
- Determines whether the compiler generates a DWARF debug_pubnames section.
- [no]semantic-stepping
- Determines whether the compiler generates enhanced debug information useful for breakpoints and stepping.
- [no]variable-locations
- Determines whether the compiler generates enhanced debug information useful in finding scalar local variables.
- extended
- Generates complete debugging information and also sets keyword valuessemantic-steppingandvariable-locations.
- [no]parallel(Linux only)
- Determines whether the compiler generates parallel debug code instrumentations useful for thread data sharing and reentrant call detection.
For information on the non-default settings for these
keywords, see the Description section.
Default
- varies
- Normally, the default is-debug noneand no debugging information is generated. However, on Linux*, the-debug inline-debug-infooption will be enabled by default if you compile with optimizations (option-O2or higher) and debugging is enabled (option-g).
Description
This option enables or disables generation of debugging
information.
By default, enabling debugging, will disable
optimization. To enable both debugging and optimization use the
-debug
option together
with one of the optimization level options (-O3
,
-O2
or
-O3
).
Keywords
semantic-stepping
,
inline-debug-info
,
variable-locations
, and
extended
can be used in
combination with each other. If conflicting keywords are used in combination,
the last one specified on the command line has precedence.
Option
| Description
|
---|---|
-debug none | Disables generation of debugging information.
|
-debug full or
-debug all | Generates complete debugging information. It is
the same as specifying
-debug with no
keyword.
|
-debug minimal | Generates line number information for
debugging.
|
-debug emit_column | Generates column number information for
debugging.
|
-debug expr-source-pos | Generates source position information at the
statement level of granularity.
|
-debug inline-debug-info | Generates enhanced debug information for
inlined code.
On inlined functions, symbols are (by default) associated with the
caller. This option causes symbols for inlined functions to be associated with
the source of the called function.
|
-debug pubnames | The compiler generates a DWARF debug_pubnames
section. This provides a means to list the names of global objects and
functions in a compilation unit.
|
-debug semantic-stepping | Generates enhanced debug information useful for
breakpoints and stepping. It tells the debugger to stop only at machine
instructions that achieve the final effect of a source statement.
For example, in the case of an assignment
statement, this might be a store instruction that assigns a value to a program
variable; for a function call, it might be the machine instruction that
executes the call. Other instructions generated for those source statements are
not displayed during stepping.
This option has no impact unless optimizations
have also been enabled.
|
-debug variable-locations | Generates enhanced debug information useful in
finding scalar local variables. It uses a feature of the Dwarf object module
known as "location lists".
This feature allows the run-time locations of
local scalar variables to be specified more accurately; that is, whether, at a
given position in the code, a variable value is found in memory or a machine
register.
|
-debug extended | Sets keyword values
semantic-stepping and
variable-locations . It
also tells the compiler to include column numbers in the line information.
Generates complete debugging information and
also sets keyword values
semantic-stepping and
variable-locations .
This is a more powerful setting than
-debug full or
-debug all .
|
-debug parallel | Generates parallel debug code instrumentations
needed for the thread data sharing and reentrant call detection.
This content is specific to C++; it does not apply to
DPC++ .For shared data and reentrancy
detection, option
-qopenmp must be set. |
On Linux* systems, debuggers read debug information from
executable images. As a result, information is written to object files and then
added to the executable by the linker.
IDE Equivalent
Visual Studio:
None
Eclipse:
Advanced Debugging >
Enable Parallel Debug Checks
(-debug parallel
)
Debug > Enable Expanded Line Number Information
(-debug expr-source-pos
)
Alternate Options
- For-debug full,-debug all, or-debug
- Linux:-gWindows:/debug:full,/debug:all, or/debug