Skip to content

Kernel debugging tips settings

bxatnarf edited this page Dec 6, 2018 · 2 revisions

Kernel build .config

It is helpful to set the following debugging related config variables:

CONFIG_POPCORN_DEBUG=y                                                                                                                                                                
CONFIG_POPCORN_DEBUG_PROCESS_SERVER=y                                                                                                                                                 
CONFIG_POPCORN_DEBUG_PAGE_SERVER=y                                                                                                                                                    
CONFIG_POPCORN_DEBUG_VMA_SERVER=y                                                                                                                                                     
CONFIG_POPCORN_DEBUG_VERBOSE=y                                                                                                                                                                                                                                                                                                    
CONFIG_POPCORN_REMOTE_INFO=y                                                                                                                                                          
CONFIG_POPCORN_STAT=y  
CONFIG_POPCORN_DEBUG_MSG_LAYER=y 
CONFIG_LOCK_DEBUGGING_SUPPORT=y                                                                                                                                                       
CONFIG_PROVE_LOCKING=y                                                                                                                                                                
CONFIG_LOCK_STAT=y                                                                                                                                                                    
CONFIG_DEBUG_RT_MUTEXES=y                                                                                                                                                             
CONFIG_DEBUG_SPINLOCK=y                                                                                                                                                               
CONFIG_DEBUG_MUTEXES=y                                                                                                                                                                
CONFIG_DEBUG_WW_MUTEX_SLOWPATH=y                                                                                                                                                      
CONFIG_DEBUG_RWSEMS=y                                                                                                                                                                 
CONFIG_DEBUG_LOCK_ALLOC=y                                                                                                                                                             
CONFIG_LOCKDEP=y                                                                                                                                                                      
CONFIG_DEBUG_LOCKDEP=y                                                                                                                                                                
CONFIG_DEBUG_ATOMIC_SLEEP=y 

You will then need to rebuild your kernel and the popcorn message layer module. But first you must execute:

make oldconfig

task struct debugging

Linux also provides a python-based gdb plugin that is helpful in retrieving task structs. More information can be found here.