Monitor kernel variable with ddb(4)

Eugene Grosbein eugen at grosbein.net
Sat Aug 12 20:17:02 UTC 2017


13.08.2017 2:42, Farhan Khan пишет:
> Hi all,
> 
> I am trying to figure out where a net80211's vap flags are modified. I see
> that memory is originally allocated here:
> http://src.illumos.org/source/xref/freebsd-head/sys/net/if.c#445. However,
> I cannot figure out where the ifp->if_flags and if->if_drv_flags are ever
> modified in the kernel.
> 
> Someone suggested using ddb(4), so I entered the live debugger using sysctl
> debug.kdb.enter=1
> 
> I then set a breakpoint at if_alloc.
> 
> However, I cannot seem to figure out the next steps to monitor where the
> ifp->if_flags or if->if_drv_flags are updated.
> 
> Full explanation - My kernel module is immediately unloading, but I am not
> certain why. I traced it back in the ieee80211 code to those flags, but not
> sure where they are updated.
> 
> Any ideas? Thank you!

What driver do you use? There are lots of kernel level files
that change ifp->if_flags and if->if_drv_flags:

$ grep -lER '\<if(_drv)?_flags =' /usr/src/sys | wc -l
    148

Perhaps, you need ieee80211_vap_setup() function in the /usr/src/sys/net80211/ieee80211.c
or if_setdrvflagbits() in the /usr/src/sys/net/if.c or one of many driver source files
in /usr/src/sys/dev




More information about the freebsd-hackers mailing list