1
2menu "Debugging Options"
3
4config DEBUG
5	bool "Developer Checks"
6	default n
7	---help---
8	  If you say Y here this will enable developer checks such as asserts
9	  and extra printks. This option is intended for development purposes
10	  only, and not for production use.
11
12	  You probably want to say 'N' here.
13
14if DEBUG || EXPERT
15
16config CRASH_DEBUG
17	bool "Crash Debugging Support"
18	depends on X86
19	---help---
20	  If you want to attach gdb to Xen to debug Xen if it crashes
21	  then say Y.
22
23config GDBSX
24	bool "Guest debugging with gdbsx"
25	depends on X86
26	default y
27	---help---
28	  If you want to enable support for debugging guests from dom0 via
29	  gdbsx then say Y.
30
31config DEBUG_INFO
32	bool "Compile Xen with debug info"
33	default y
34	---help---
35	  If you say Y here the resulting Xen will include debugging info
36	  resulting in a larger binary image.
37
38config FRAME_POINTER
39	bool "Compile Xen with frame pointers"
40	default DEBUG
41	---help---
42	  If you say Y here the resulting Xen will be slightly larger and
43	  maybe slower, but it gives very useful debugging information
44	  in case of any Xen bugs.
45
46config COVERAGE
47	bool "Code coverage support"
48	depends on !LIVEPATCH
49	select SUPPRESS_DUPLICATE_SYMBOL_WARNINGS if !ENFORCE_UNIQUE_SYMBOLS
50	---help---
51	  Enable code coverage support.
52
53	  If unsure, say N here.
54
55config DEBUG_LOCK_PROFILE
56	bool "Lock Profiling"
57	select DEBUG_LOCKS
58	---help---
59	  Lock profiling allows you to see how often locks are taken and blocked.
60	  You can use serial console to print (and reset) using 'l' and 'L'
61	  respectively, or the 'xenlockprof' tool.
62
63config DEBUG_LOCKS
64	bool "Lock debugging"
65	default DEBUG
66	---help---
67	  Enable debugging features of lock handling.  Some additional
68	  checks will be performed when acquiring and releasing locks.
69
70config PERF_COUNTERS
71	bool "Performance Counters"
72	---help---
73	  Enables software performance counters that allows you to analyze
74	  bottlenecks in the system.  To access this data you can use serial
75	  console to print (and reset) using 'p' and 'P' respectively, or
76	  the 'xenperf' tool.
77
78config PERF_ARRAYS
79	bool "Performance Counter Array Histograms"
80	depends on PERF_COUNTERS
81	---help---
82	  Enables software performance counter array histograms.
83
84
85config VERBOSE_DEBUG
86	bool "Verbose debug messages"
87	default DEBUG
88	---help---
89	  Guest output from HYPERVISOR_console_io and hypervisor parsing
90	  ELF images (dom0) will be logged in the Xen ring buffer.
91
92config DEVICE_TREE_DEBUG
93	bool "Device tree debug messages"
94	depends on HAS_DEVICE_TREE
95	---help---
96	  Device tree parsing and DOM0 device tree building messages are
97	  logged in the Xen ring buffer.
98	  If unsure, say N here.
99
100config SCRUB_DEBUG
101	bool "Page scrubbing test"
102	default DEBUG
103	---help---
104	  Verify that pages that need to be scrubbed before being allocated to
105	  a guest are indeed scrubbed.
106
107config UBSAN
108	bool "Undefined behaviour sanitizer"
109	depends on HAS_UBSAN
110	---help---
111	  Enable undefined behaviour sanitizer. It uses compiler to insert code
112	  snippets so that undefined behaviours in C are detected during runtime.
113	  This requires a UBSAN capable compiler and it is a debug only feature.
114
115	  If unsure, say N here.
116
117config DEBUG_TRACE
118	bool "Debug trace support"
119	---help---
120	  Debug trace enables to record debug trace messages which are printed
121	  either directly to the console or are printed to console in case of
122	  a system crash.
123
124config XMEM_POOL_POISON
125	bool "Poison free xenpool blocks"
126	default DEBUG
127	---help---
128	  Poison free blocks with 0xAA bytes and verify them when a block is
129	  allocated in order to spot use-after-free issues.
130
131source "arch/$(SRCARCH)/Kconfig.debug"
132
133endif # DEBUG || EXPERT
134
135endmenu
136