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