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 = "y"
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 FRAME_POINTER
24	bool "Compile Xen with frame pointers"
25	default DEBUG
26	---help---
27	  If you say Y here the resulting Xen will be slightly larger and
28	  maybe slower, but it gives very useful debugging information
29	  in case of any Xen bugs.
30
31config GCOV
32	bool "Gcov Support"
33	depends on !LIVEPATCH
34	select SUPPRESS_DUPLICATE_SYMBOL_WARNINGS
35	---help---
36	  Enable gcov (a test coverage program in GCC) support.
37
38	  If unsure, say N here.
39
40choice
41	prompt "Specify Gcov format"
42	depends on GCOV
43	default GCOV_FORMAT_AUTODETECT
44	---help---
45	  The gcov format is determined by gcc version.
46
47	  If unsure, choose "Autodetect".
48
49config GCOV_FORMAT_AUTODETECT
50	bool "Autodetect"
51	---help---
52	  Automatically select gcov format based on gcc version.
53
54config GCOV_FORMAT_7
55	bool "GCC 7 format"
56	---help---
57	  Select this option to use the format specified in GCC 7.
58	  Works in gcc version range [7, ...).
59
60config GCOV_FORMAT_5
61	bool "GCC 5 format"
62	---help---
63	  Select this option to use the format specified in GCC 5.
64	  Works in gcc version range [5, 7).
65
66config GCOV_FORMAT_4_9
67	bool "GCC 4.9 format"
68	---help---
69	  Select this option to use the format specified in GCC 4.9.
70	  Works in gcc version range [4.9, 5).
71
72config GCOV_FORMAT_4_7
73	bool "GCC 4.7 format"
74	---help---
75	  Select this option to use the format specified in GCC 4.7.
76	  Works in gcc version range [4.7, 4.9).
77
78config GCOV_FORMAT_3_4
79	bool "GCC 3.4 format"
80	---help---
81	  Select this option to use the format specified in GCC 3.4.
82	  Works in gcc version range [3.4, 4.7).
83
84endchoice
85
86config LOCK_PROFILE
87	bool "Lock Profiling"
88	---help---
89	  Lock profiling allows you to see how often locks are taken and blocked.
90	  You can use serial console to print (and reset) using 'l' and 'L'
91	  respectively, or the 'xenlockprof' tool.
92
93config PERF_COUNTERS
94	bool "Performance Counters"
95	---help---
96	  Enables software performance counters that allows you to analyze
97	  bottlenecks in the system.  To access this data you can use serial
98	  console to print (and reset) using 'p' and 'P' respectively, or
99	  the 'xenperf' tool.
100
101config PERF_ARRAYS
102	bool "Performance Counter Array Histograms"
103	depends on PERF_COUNTERS
104	---help---
105	  Enables software performance counter array histograms.
106
107
108config VERBOSE_DEBUG
109	bool "Verbose debug messages"
110	default DEBUG
111	---help---
112	  Guest output from HYPERVISOR_console_io and hypervisor parsing
113	  ELF images (dom0) will be logged in the Xen ring buffer.
114
115config DEVICE_TREE_DEBUG
116	bool "Device tree debug messages"
117	depends on HAS_DEVICE_TREE
118	---help---
119	  Device tree parsing and DOM0 device tree building messages are
120	  logged in the Xen ring buffer.
121	  If unsure, say N here.
122
123config SCRUB_DEBUG
124	bool "Page scrubbing test"
125	default DEBUG
126	---help---
127	  Verify that pages that need to be scrubbed before being allocated to
128	  a guest are indeed scrubbed.
129
130config UBSAN
131	bool "Undefined behaviour sanitizer"
132	depends on HAS_UBSAN
133	---help---
134	  Enable undefined behaviour sanitizer. It uses compiler to insert code
135	  snippets so that undefined behaviours in C are detected during runtime.
136	  This requires a UBSAN capable compiler and it is a debug only feature.
137
138	  If unsure, say N here.
139
140endif # DEBUG || EXPERT
141
142endmenu
143