149 lines
6.7 KiB
Modula-2
149 lines
6.7 KiB
Modula-2
//===--- DebugOptions.def - Debug option database ----------------- C++ -*-===//
|
|
//
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// This file defines debug-specific codegen options. Users of this file
|
|
// must define the CODEGENOPT macro to make use of this information.
|
|
// Optionally, the user may also define DEBUGOPT (for flags), ENUM_DEBUGOPT (for
|
|
// options that have enumeration type), and VALUE_DEBUGOPT (is a debug option
|
|
// that describes a value rather than a flag).
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
#ifndef DEBUGOPT
|
|
#define DEBUGOPT(Name, Bits, Default, Compatibility) \
|
|
CODEGENOPT(Name, Bits, Default, Compatibility)
|
|
#endif
|
|
|
|
#ifndef VALUE_DEBUGOPT
|
|
# define VALUE_DEBUGOPT(Name, Bits, Default, Compatibility) \
|
|
VALUE_CODEGENOPT(Name, Bits, Default, Compatibility)
|
|
#endif
|
|
|
|
#ifndef ENUM_DEBUGOPT
|
|
# define ENUM_DEBUGOPT(Name, Type, Bits, Default, Compatibility) \
|
|
ENUM_CODEGENOPT(Name, Type, Bits, Default, Compatibility)
|
|
#endif
|
|
|
|
ENUM_DEBUGOPT(CompressDebugSections, DebugCompressionType, 2,
|
|
DebugCompressionType::None, Benign)
|
|
DEBUGOPT(Dwarf64, 1, 0, Compatible) ///< -gdwarf64.
|
|
DEBUGOPT(EnableDIPreservationVerify, 1, 0, Benign) ///< Enable di preservation
|
|
///< verify each (it means
|
|
///< check the original debug
|
|
///< info metadata
|
|
///< preservation).
|
|
DEBUGOPT(ForceDwarfFrameSection , 1, 0, Benign) ///< Set when -fforce-dwarf-frame
|
|
///< is enabled.
|
|
|
|
///< Set when -femit-dwarf-unwind is passed.
|
|
ENUM_DEBUGOPT(EmitDwarfUnwind, EmitDwarfUnwindType, 2,
|
|
EmitDwarfUnwindType::Default, Benign)
|
|
|
|
DEBUGOPT(NoDwarfDirectoryAsm , 1, 0, Benign) ///< Set when -fno-dwarf-directory-asm
|
|
///< is enabled.
|
|
|
|
DEBUGOPT(Dwarf2CFIAsm, 1, 0, NotCompatible) ///< Set when -fdwarf2-cfi-asm is enabled.
|
|
|
|
DEBUGOPT(NoInlineLineTables, 1, 0, Benign) ///< Whether debug info should contain
|
|
///< inline line tables.
|
|
|
|
DEBUGOPT(DebugStrictDwarf, 1, 1, Compatible) ///< Whether or not to use strict DWARF info.
|
|
DEBUGOPT(DebugOmitUnreferencedMethods, 1, 0, Compatible) ///< Omit unreferenced member
|
|
///< functions in type debug info.
|
|
|
|
/// Control the Assignment Tracking debug info feature.
|
|
ENUM_DEBUGOPT(AssignmentTrackingMode, AssignmentTrackingOpts, 2,
|
|
AssignmentTrackingOpts::Disabled, Benign)
|
|
|
|
/// Whether or not to use Key Instructions to determine breakpoint locations.
|
|
DEBUGOPT(DebugKeyInstructions, 1, 0, Benign)
|
|
|
|
DEBUGOPT(DebugColumnInfo, 1, 0, Compatible) ///< Whether or not to use column information
|
|
///< in debug info.
|
|
|
|
/// Whether or not to include call site information in debug info.
|
|
DEBUGOPT(DebugCallSiteInfo, 1, 1, Benign)
|
|
|
|
DEBUGOPT(DebugTypeExtRefs, 1, 0, Compatible) ///< Whether or not debug info should contain
|
|
///< external references to a PCH or module.
|
|
|
|
DEBUGOPT(DebugExplicitImport, 1, 0, Compatible) ///< Whether or not debug info should
|
|
///< contain explicit imports for
|
|
///< anonymous namespaces
|
|
|
|
/// Set debug info source file hashing algorithm.
|
|
ENUM_DEBUGOPT(DebugSrcHash, DebugSrcHashKind, 2, DSH_MD5, Compatible)
|
|
|
|
DEBUGOPT(SplitDwarfInlining, 1, 1, Compatible) ///< Whether to include inlining info in the
|
|
///< skeleton CU to allow for symbolication
|
|
///< of inline stack frames without .dwo files.
|
|
DEBUGOPT(DebugFwdTemplateParams, 1, 0, Compatible) ///< Whether to emit complete
|
|
///< template parameter descriptions in
|
|
///< forward declarations (versus just
|
|
///< including them in the name).
|
|
ENUM_DEBUGOPT(DebugSimpleTemplateNames,
|
|
DebugTemplateNamesKind, 2,
|
|
DebugTemplateNamesKind::Full, Compatible)
|
|
///< Whether to emit template parameters in the textual names of
|
|
///< template specializations.
|
|
///< Implies DebugFwdTemplateNames to allow decorated names to be
|
|
///< reconstructed when needed.
|
|
|
|
/// The kind of generated debug info.
|
|
ENUM_DEBUGOPT(DebugInfo, DebugInfoKind, 4,
|
|
DebugInfoKind::NoDebugInfo, Compatible)
|
|
|
|
/// Whether to generate macro debug info.
|
|
DEBUGOPT(MacroDebugInfo, 1, 0, Compatible)
|
|
|
|
/// Whether to use expansion location for debug info.
|
|
/// TODO: #175249: Remove once testing is complete for sample pgo users.
|
|
DEBUGOPT(DebugInfoMacroExpansionLoc, 1, 0, Compatible)
|
|
|
|
/// Tune the debug info for this debugger.
|
|
ENUM_DEBUGOPT(DebuggerTuning, DebuggerKind, 3,
|
|
DebuggerKind::Default, Compatible)
|
|
|
|
/// Dwarf version. Version zero indicates to LLVM that no DWARF should be
|
|
/// emitted.
|
|
VALUE_DEBUGOPT(DwarfVersion, 3, 0, Compatible)
|
|
|
|
/// Whether we should emit CodeView debug information. It's possible to emit
|
|
/// CodeView and DWARF into the same object.
|
|
DEBUGOPT(EmitCodeView, 1, 0, Compatible)
|
|
|
|
/// Whether to emit the .debug$H section containing hashes of CodeView types.
|
|
DEBUGOPT(CodeViewGHash, 1, 0, Compatible)
|
|
|
|
/// Whether to emit the compiler path and command line into the CodeView debug information.
|
|
DEBUGOPT(CodeViewCommandLine, 1, 0, Compatible)
|
|
|
|
/// Whether emit extra debug info for sample pgo profile collection.
|
|
DEBUGOPT(DebugInfoForProfiling, 1, 0, Compatible)
|
|
|
|
/// Whether to emit DW_TAG_template_alias for template aliases.
|
|
DEBUGOPT(DebugTemplateAlias, 1, 0, Compatible)
|
|
|
|
/// Whether to emit .debug_gnu_pubnames section instead of .debug_pubnames.
|
|
DEBUGOPT(DebugNameTable, 2, 0, Compatible)
|
|
|
|
/// Whether to use DWARF base address specifiers in .debug_ranges.
|
|
DEBUGOPT(DebugRangesBaseAddress, 1, 0, Compatible)
|
|
|
|
/// Whether to add linkage names to constructor/destructor declarations.
|
|
/// This is an escape hatch for cases where attaching the additional linkage
|
|
/// names would increase debug-info size (particularly the .debug_str section)
|
|
/// too much.
|
|
DEBUGOPT(DebugStructorDeclLinkageNames, 1, 0, Benign)
|
|
|
|
/// Whether to embed source in DWARF debug line section.
|
|
DEBUGOPT(EmbedSource, 1, 0, Compatible)
|
|
|
|
#undef DEBUGOPT
|
|
#undef ENUM_DEBUGOPT
|
|
#undef VALUE_DEBUGOPT
|