# Kconfig - debug configuration options # # Copyright (c) 2015 Wind River Systems, Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # 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 DEBUGGER_OWNS_FATAL_PROG_EXC_HANDLERS bool "Debugger provides handlers for some fatal programmer exceptions" default n depends on X86 && !X86_IAMCU help Give control to a target debugger such as GDB over the divide-by-zero and page fault exceptions. NOTE: Does not currently work with the x86 IAMCU ABI. 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 select DEBUGGER_OWNS_FATAL_PROG_EXC_HANDLERS if !GDB_SERVER_BOOTLOADER 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.