On Sun, Apr 03, 2022 at 02:18:04PM +0200, Michael Straube wrote: > On 4/3/22 14:10, Fabio M. De Francesco wrote: > > For a list of all the paths to a given function you may use Smatch: > > > > ./smatch/smatch_data/db/smdb.py ips_leave > > > > or > > > > ./smatch/smatch_data/db/smdb.py call_tree ips_leave > > > > But perhaps you already know how to do it. > > Yes, but thank you anyway. :) > My email (gmail account) has been so weird recently. I don't know why I'm not getting Fabio's emails... Presumably they will show up in a few days. The other command to use is: $ ./smatch/smatch_data/db/smdb.py preempt ips_leave rtw_set_802_11_disassociate() <- disables preempt -> _rtw_pwr_wakeup() -> LeaveAllPowerSaveMode() -> ips_leave() I save that to a file, open it with with vim and run a vim function `hall` (for highlight all) from my .vimrc file. " Use :hall to highlight all the words in a file (for debugging sleeping bugs) function HLall() let a=[] %s/\w\+/\=add(a, submatch(0))/gn let @/ = join(a, "\\|") endfunction cnoreabbrev hall call HLall() <CR>:set hls<CR> That highlights all the functions is the call tree, then I use cscope to jump to rtw_set_802_11_disassociate and follow the highlighted functions to ips_leave(). regards, dan carpenter