mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 10:11:27 +01:00
Introduce the CONFIG_UBSAN_FATAL option to cater to scenarios where prompt attention to undefined behavior issues, notably during CI test runs, is essential. When enabled, this option causes Xen to panic upon detecting UBSAN failure (as the last step in ubsan_epilogue()). Signed-off-by: Michal Orzel <michal.orzel@amd.com> Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
151 lines
4.3 KiB
Plaintext
151 lines
4.3 KiB
Plaintext
|
|
menu "Debugging Options"
|
|
|
|
config DEBUG
|
|
bool "Developer Checks"
|
|
default y
|
|
---help---
|
|
If you say Y here this will enable developer checks such as asserts
|
|
and extra printks. This option is intended for development purposes
|
|
only, and not for production use.
|
|
|
|
You probably want to say 'N' here.
|
|
|
|
if DEBUG || EXPERT
|
|
|
|
config CRASH_DEBUG
|
|
bool "Crash Debugging Support"
|
|
depends on X86
|
|
---help---
|
|
If you want to attach gdb to Xen to debug Xen if it crashes
|
|
then say Y.
|
|
|
|
config GDBSX
|
|
bool "Guest debugging with gdbsx"
|
|
depends on X86
|
|
default y
|
|
---help---
|
|
If you want to enable support for debugging guests from dom0 via
|
|
gdbsx then say Y.
|
|
|
|
config FRAME_POINTER
|
|
bool "Compile Xen with frame pointers"
|
|
default DEBUG
|
|
---help---
|
|
If you say Y here the resulting Xen will be slightly larger and
|
|
maybe slower, but it gives very useful debugging information
|
|
in case of any Xen bugs.
|
|
|
|
config COVERAGE
|
|
bool "Code coverage support"
|
|
depends on !LIVEPATCH
|
|
select SUPPRESS_DUPLICATE_SYMBOL_WARNINGS if !ENFORCE_UNIQUE_SYMBOLS
|
|
---help---
|
|
Enable code coverage support.
|
|
|
|
If unsure, say N here.
|
|
|
|
config DEBUG_LOCK_PROFILE
|
|
bool "Lock Profiling"
|
|
select DEBUG_LOCKS
|
|
---help---
|
|
Lock profiling allows you to see how often locks are taken and blocked.
|
|
You can use serial console to print (and reset) using 'l' and 'L'
|
|
respectively, or the 'xenlockprof' tool.
|
|
|
|
config DEBUG_LOCKS
|
|
bool "Lock debugging"
|
|
default DEBUG
|
|
---help---
|
|
Enable debugging features of lock handling. Some additional
|
|
checks will be performed when acquiring and releasing locks.
|
|
|
|
config PERF_COUNTERS
|
|
bool "Performance Counters"
|
|
---help---
|
|
Enables software performance counters that allows you to analyze
|
|
bottlenecks in the system. To access this data you can use serial
|
|
console to print (and reset) using 'p' and 'P' respectively, or
|
|
the 'xenperf' tool.
|
|
|
|
config PERF_ARRAYS
|
|
bool "Performance Counter Array Histograms"
|
|
depends on PERF_COUNTERS
|
|
---help---
|
|
Enables software performance counter array histograms.
|
|
|
|
|
|
config VERBOSE_DEBUG
|
|
bool "Verbose debug messages"
|
|
default DEBUG
|
|
---help---
|
|
Guest output from HYPERVISOR_console_io and hypervisor parsing
|
|
ELF images (dom0) will be logged in the Xen ring buffer.
|
|
|
|
config DEVICE_TREE_DEBUG
|
|
bool "Device tree debug messages"
|
|
depends on HAS_DEVICE_TREE
|
|
---help---
|
|
Device tree parsing and DOM0 device tree building messages are
|
|
logged in the Xen ring buffer.
|
|
If unsure, say N here.
|
|
|
|
config SCRUB_DEBUG
|
|
bool "Page scrubbing test"
|
|
default DEBUG
|
|
---help---
|
|
Verify that pages that need to be scrubbed before being allocated to
|
|
a guest are indeed scrubbed.
|
|
|
|
config UBSAN
|
|
bool "Undefined behaviour sanitizer"
|
|
depends on HAS_UBSAN
|
|
---help---
|
|
Enable undefined behaviour sanitizer. It uses compiler to insert code
|
|
snippets so that undefined behaviours in C are detected during runtime.
|
|
This requires a UBSAN capable compiler and it is a debug only feature.
|
|
|
|
If unsure, say N here.
|
|
|
|
config UBSAN_FATAL
|
|
bool "Panic on UBSAN failure"
|
|
depends on UBSAN
|
|
help
|
|
Enabling this option will cause Xen to panic when an undefined behavior
|
|
is detected by UBSAN. If unsure, say N here.
|
|
|
|
config DEBUG_TRACE
|
|
bool "Debug trace support"
|
|
---help---
|
|
Debug trace enables to record debug trace messages which are printed
|
|
either directly to the console or are printed to console in case of
|
|
a system crash.
|
|
|
|
config XMEM_POOL_POISON
|
|
bool "Poison free xenpool blocks"
|
|
default DEBUG
|
|
---help---
|
|
Poison free blocks with 0xAA bytes and verify them when a block is
|
|
allocated in order to spot use-after-free issues.
|
|
|
|
source "arch/$(SRCARCH)/Kconfig.debug"
|
|
|
|
endif # DEBUG || EXPERT
|
|
|
|
config DEBUG_INFO
|
|
bool "Compile Xen with debug info"
|
|
default DEBUG
|
|
help
|
|
Say Y here if you want to build Xen with debug information. This
|
|
information is needed e.g. for doing crash dump analysis of the
|
|
hypervisor via the "crash" tool.
|
|
Saying Y will increase the size of the xen-syms and xen.efi
|
|
binaries. In case the space on the EFI boot partition is rather
|
|
limited, you may want to install a stripped variant of xen.efi in
|
|
the EFI boot partition (look for "INSTALL_EFI_STRIP" in
|
|
docs/misc/efi.pandoc for more information - when not using
|
|
"make install-xen" for installing xen.efi, stripping needs to be
|
|
done outside the Xen build environment).
|
|
|
|
endmenu
|