summaryrefslogtreecommitdiff
path: root/zephyr/Kconfig.debug_assert
blob: c05dceae025f3c52b547a309573a391e69e29625 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# Copyright 2021 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

if PLATFORM_EC_DEBUG_ASSERT

choice PLATFORM_EC_DEBUG_ASSERT_MODE
	prompt "Select behaviour on assertion failure"
	help
	  This selects the action taken when the board hits an assertion
	  failure in the code. This should not happen in normal operation,
	  but can appear during development when the code is not yet fully
	  tested.

config PLATFORM_EC_DEBUG_ASSERT_REBOOTS
	bool "Reboot"
	help
	  Prints a message and reboot if an assert() macro fails at runtime.
	  If PLATFORM_EC_SOFTWARE_PANIC is enabled then the information is
	  written to the panic log before rebooting.

config PLATFORM_EC_DEBUG_ASSERT_BREAKPOINT
	bool "Generate a breakpoint"
	help
	  Immediately hits a breakpoint instruction (without printing a message)
	  so that a connected JTAG debugger can be used to debug the problem
	  from there. If there is no debugger connected then the breakpoint
	  instruction will cause the board to reboot immediately.

endchoice # PLATFORM_EC_DEBUG_ASSERT_MODE

config PLATFORM_EC_DEBUG_ASSERT_BRIEF
	bool "Use brief assertion-failure messages"
	depends on PLATFORM_EC_DEBUG_ASSERT_REBOOTS
	help
	  Normally the assertion-failure messages include the expression that
	  failed and the function name where the failure occurred. These are
	  both stored as strings and can add a lot to the size of the image,
	  since they are generated for every call to assert(). Use this option
	  to drop them so that only the file and line number are shown.

	  This option is of course not available with
	  PLATFORM_EC_DEBUG_ASSERT_BREAKPOINT, since that does not print a
	  message at all.

endif # PLATFORM_EC_DEBUG_ASSERT