In order for OpenOCD to have a high-level view of an RTOS, it uses the GDB protocol to obtain symbols from the system. The GDB protocol, however, does not allow obtaining fields from structures directly, and hardcoding offsets is not only brittle (due to possibly different architectures or changes in the code), it's also infeasible considering Zephyr is highly-configurable and parts of key structs can be compiled in or out. Export an array with offsets for these key structs. Also add a version element in that array to allow changes in those structs. Change-Id: I83bcfa0a7bd57d85582e5ec6efe70e1cceb1fc51 Signed-off-by: Leandro Pereira <leandro.pereira@intel.com>
132 lines
3.3 KiB
Plaintext
132 lines
3.3 KiB
Plaintext
# Kconfig - debug configuration options
|
|
|
|
#
|
|
# Copyright (c) 2015 Wind River Systems, Inc.
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
#
|
|
|
|
|
|
menu "Safe memory access"
|
|
|
|
config MEM_SAFE
|
|
bool
|
|
prompt "Enable safe memory access"
|
|
default n
|
|
help
|
|
Add the routines available in mem_safe.h to the system. This is added
|
|
as a kconfig option instead of simply linking against the library
|
|
because some implementations might require initialization.
|
|
|
|
choice
|
|
prompt "Safe memory access implementation"
|
|
depends on MEM_SAFE
|
|
default MEM_SAFE_CHECK_BOUNDARIES
|
|
|
|
config MEM_SAFE_CHECK_BOUNDARIES
|
|
bool
|
|
prompt "Software validation of memory access within memory regions"
|
|
help
|
|
This implementation checks the application image's text/rodata
|
|
boundaries for its read-only region and the data/bss/noinit boundaries
|
|
for its read-write region, in software.
|
|
|
|
Other regions can be added as needed by using the
|
|
sys_mem_safe_region_add() API. The number of regions that can be added
|
|
is controlled via the MEM_SAFE_NUM_REGIONS kconfig option.
|
|
|
|
This implementation requires initialization and thus consumes some boot
|
|
time.
|
|
|
|
endchoice
|
|
|
|
config MEM_SAFE_NUM_EXTRA_REGIONS
|
|
int
|
|
prompt "Number of safe memory access regions to be added at runtime"
|
|
depends on MEM_SAFE_CHECK_BOUNDARIES
|
|
default 0
|
|
help
|
|
The functions available in mem_safe.h check if memory is within
|
|
read-only or read-write regions before accessing it instead of crashing.
|
|
The kernel image is added as a valid region automatically, but other
|
|
regions can be added if the application makes access to additional
|
|
memory outside of the image's boundaries.
|
|
|
|
endmenu
|
|
|
|
#
|
|
# Generic Debugging Options
|
|
#
|
|
config DEBUG_INFO
|
|
bool "Enable system debugging information"
|
|
default n
|
|
depends on X86 && !X86_IAMCU
|
|
help
|
|
This option enables the addition of various information that can be used
|
|
by debuggers in debugging the system.
|
|
|
|
NOTE: Does not currently work with the x86 IAMCU ABI.
|
|
|
|
#
|
|
# GDB Server options
|
|
#
|
|
|
|
config GDB_SERVER
|
|
bool
|
|
prompt "Enable GDB Server [EXPERIMENTAL]"
|
|
default n
|
|
select CACHE_FLUSHING
|
|
select REBOOT
|
|
select MEM_SAFE
|
|
select DEBUG_INFO
|
|
select UART_CONSOLE_DEBUG_SERVER_HOOKS
|
|
help
|
|
This option enables the GDB Server support.
|
|
|
|
config GDB_SERVER_MAX_SW_BP
|
|
int "Maximum number of GDB Server Software breakpoints"
|
|
default 100
|
|
depends on GDB_SERVER
|
|
help
|
|
This option specifies the maximum number of Software breakpoints
|
|
|
|
config GDB_SERVER_INTERRUPT_DRIVEN
|
|
bool
|
|
prompt "Enable GDB interrupt mode"
|
|
default y
|
|
depends on GDB_SERVER
|
|
select CONSOLE_HANDLER
|
|
help
|
|
This option enables interrupt support for GDB Server.
|
|
|
|
config GDB_REMOTE_SERIAL_EXT_NOTIF_PREFIX_STR
|
|
string
|
|
prompt "Trigger string for remote serial ext. via notifi. packets"
|
|
default "WrCons"
|
|
depends on GDB_SERVER
|
|
help
|
|
The value of this option depends on the string the GDB client use to
|
|
prefix the notification packets.
|
|
|
|
config GDB_SERVER_BOOTLOADER
|
|
bool
|
|
prompt "Enable the bootloader mode"
|
|
default n
|
|
depends on GDB_SERVER
|
|
help
|
|
This option enables the bootloader mode of the GDB Server.
|
|
|
|
#
|
|
# Miscellaneous debugging options
|
|
#
|
|
|
|
config OPENOCD_SUPPORT
|
|
bool
|
|
prompt "OpenOCD support [EXPERIMENTAL]"
|
|
default n
|
|
select THREAD_MONITOR
|
|
help
|
|
This option exports an array of offsets to kernel structs, used by
|
|
OpenOCD to determine the state of running threads. (This option
|
|
selects CONFIG_THREAD_MONITOR, so all of its caveats are implied.)
|