mirror of
				https://github.com/espressif/esp-idf.git
				synced 2025-11-03 22:08:28 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			75 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			75 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
menu "Heap memory debugging"
 | 
						|
 | 
						|
    choice HEAP_CORRUPTION_DETECTION
 | 
						|
        prompt "Heap corruption detection"
 | 
						|
        default HEAP_POISONING_DISABLED
 | 
						|
        help
 | 
						|
            Enable heap poisoning features to detect heap corruption caused by out-of-bounds access to heap memory.
 | 
						|
 | 
						|
            See the "Heap Memory Debugging" page of the IDF documentation
 | 
						|
            for a description of each level of heap corruption detection.
 | 
						|
 | 
						|
        config HEAP_POISONING_DISABLED
 | 
						|
            bool "Basic (no poisoning)"
 | 
						|
        config HEAP_POISONING_LIGHT
 | 
						|
            bool "Light impact"
 | 
						|
        config HEAP_POISONING_COMPREHENSIVE
 | 
						|
            bool "Comprehensive"
 | 
						|
    endchoice
 | 
						|
 | 
						|
    choice HEAP_TRACING_DEST
 | 
						|
        bool "Heap tracing"
 | 
						|
        default HEAP_TRACING_OFF
 | 
						|
        help
 | 
						|
            Enables the heap tracing API defined in esp_heap_trace.h.
 | 
						|
 | 
						|
            This function causes a moderate increase in IRAM code side and a minor increase in heap function
 | 
						|
            (malloc/free/realloc) CPU overhead, even when the tracing feature is not used.
 | 
						|
            So it's best to keep it disabled unless tracing is being used.
 | 
						|
 | 
						|
        config HEAP_TRACING_OFF
 | 
						|
            bool "Disabled"
 | 
						|
        config HEAP_TRACING_STANDALONE
 | 
						|
            bool "Standalone"
 | 
						|
            select HEAP_TRACING
 | 
						|
        config HEAP_TRACING_TOHOST
 | 
						|
            bool "Host-based"
 | 
						|
            select HEAP_TRACING
 | 
						|
    endchoice
 | 
						|
 | 
						|
    config HEAP_TRACING
 | 
						|
        bool
 | 
						|
        default F
 | 
						|
        help
 | 
						|
            Enables/disables heap tracing API.
 | 
						|
 | 
						|
    config HEAP_TRACING_STACK_DEPTH
 | 
						|
        int "Heap tracing stack depth"
 | 
						|
        range 0 0 if IDF_TARGET_ARCH_RISCV # Disabled for RISC-V due to `__builtin_return_address` limitation
 | 
						|
        default 0 if IDF_TARGET_ARCH_RISCV
 | 
						|
        range 0 10
 | 
						|
        default 2
 | 
						|
        depends on HEAP_TRACING
 | 
						|
        help
 | 
						|
            Number of stack frames to save when tracing heap operation callers.
 | 
						|
 | 
						|
            More stack frames uses more memory in the heap trace buffer (and slows down allocation), but
 | 
						|
            can provide useful information.
 | 
						|
 | 
						|
    config HEAP_TASK_TRACKING
 | 
						|
        bool "Enable heap task tracking"
 | 
						|
        depends on !HEAP_POISONING_DISABLED
 | 
						|
        help
 | 
						|
            Enables tracking the task responsible for each heap allocation.
 | 
						|
 | 
						|
            This function depends on heap poisoning being enabled and adds four more bytes of overhead for each block
 | 
						|
            allocated.
 | 
						|
 | 
						|
    config HEAP_ABORT_WHEN_ALLOCATION_FAILS
 | 
						|
        bool "Abort if memory allocation fails"
 | 
						|
        default n
 | 
						|
        help
 | 
						|
            When enabled, if a memory allocation operation fails it will cause a system abort.
 | 
						|
 | 
						|
endmenu
 |