| Kernel debug configuration option | Description |
|---|---|
| CONFIG_DEBUG_LIST | Turns on checks for performing standard linked list manipulations with the list.h header file. If the pointers don’t match, the system prints a warning, followed by a BUG_ON crash. |
| CONFIG_PAGE_POISONING | Fills the pages with the poison pattern (PAGE_POISON 0xaa), after calling free_pages(). |
| CONFIG_DEBUG_PAGEALLOC | Verifies the patterns before calling alloc_pages(). |
| CONFIG_DEBUG_USER | Prints a message when the system kills a user-space process due to a segmentation fault (segfault) or an invalid instruction, such as user_debug=31 in the arch/arm/Kconfig.debug file. Add the Kernel boot parameter to the BoardConfig.mk file. |
| CONFIG_DEBUG_SPINLOCK | Identifies missing spinlock initialization and common spinlock errors, such as: |
- Waiting for more than one second on a spinlock
- Freeing an already freed lock
- Reinitializing a lock that was already used
| CONFIG_DEBUG_MUTEXES | Detects Mutex semantic violations. |
|---|---|
| DEBUG_LOCK_ALLOC | Detects wrong freeing of live locks. |
| CONFIG_SLUB CONFIG_SLUB_DEBUG | Performs extra checks to detect the corruption of internal kernel memory allocation structures by adding poison for use-after-free (0x6b) and buffer-overflow-padding (0xbb). |
| Kernel debug configuration options for extra debugging that can be verbose and can make the system slow. | |
| CONFIG_DEBUG_ATOMIC_SLEEP | Causes routines that may sleep to become noisy when they’re called within the atomic sections. |
| DEBUG_SPINLOCK_SLEEP | Causes routines that may sleep to become noisy when they’re called with a spinlock held. |
| CONFIG_DEBUG_VM, CONFIG_DEBUG_HIGHMEM | Provides an extra debugging support for virtual memory management corruption issues. |
| CONFIG_DEBUG_OBJECTS | Tracks the lifetime of various objects and validates the operations on those objects. |
List corruption issues
To identify the following crash signatures that indicate list corruption issues, enable theCONFIG_DEBUG_LIST option.
Sample crash signature 1
Identify spinlock corruption issues
To identify crash signatures that indicate spinlock corruption issues, enable theCONFIG_DEBUG_SPINLOCK and CONFIG_DEBUG_MUTEXES kernel configuration options.
Sample crash signature 1
Identify slub poisoning issues
To identify crash signatures that indicate slub poisoning issues, enable theCONFIG_SLUB and CONFIG_SLUB_DEBUG kernel configuration options.
Identify page poisoning issues
To identify a crash signature that indicates page poisoning issues, enable theCONFIG_DEBUG_PAGEALLOC and CONFIG_PAGE_POISONING kernel configuration options.

