FreeBSD の各種デバッグオプションを有効にし NDIS を観察 ― 2017年01月22日 12時52分06秒
カーネルの設定ファイルは他のものを読み込むことが出来る。
include で GENERIC カーネルの設定を読み込み、DDB/KDB、INVARIANTS と WITNESS を有効にして、buildkernel KERNCONF=DEBUG。
% cat /usr/src/sys/i386/conf/DEBUG
include GENERIC
ident GENERIC-DEBUG
#options DEADLKRES # Enable the deadlock resolver
options INVARIANTS # Enable calls of extra sanity checking
options INVARIANT_SUPPORT # Extra sanity checks of internal structures, required by INVARIANTS
options WITNESS # Enable checks to detect deadlocks and cycles
options WITNESS_SKIPSPIN # Don't run witness on spinlocks for speed
options DDB
options KDB
再起動後に、ndis を試すと、ロックのエラーが表示された。
kernel: panic: mtx_lock() of spin mutex network driver @ /usr/src/sys/modules/if_ndis/../../dev/if_ndis/if_ndis.c:1849
kernel: cpuid = 0
kernel: KDB: stack backtrace:
kernel: #0 0xc0c81d3f at kdb_backtrace+0x4f
kernel: #1 0xc0c3f1d5 at vpanic+0x115
kernel: #2 0xc0c3f0b9 at kassert_panic+0xd9
kernel: #3 0xc0c1e3c3 at __mtx_lock_flags+0x183
kernel: #4 0xc73b4d08 at ndis_start+0x38
kernel: #5 0xc73b1021 at ndis_starttask+0x21
kernel: #6 0xc6ceaea1 at _end+0x4f2afd1
kernel: #7 0xc0bffd6e at fork_exit+0x7e
kernel: #8 0xc119af50 at fork_trampoline+0x8
コメント
トラックバック
このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2017/01/22/8331100/tb
※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※なお、送られたコメントはブログの管理者が確認するまで公開されません。