FreeBSD の各種デバッグオプションを有効にし NDIS を観察2017年01月22日 12時52分06秒

NDIS が 11.0-RELEASE になって動かないが、あまり有効な手段を見付けられないので、取り敢えず FreeBSD の各種デバッグオプションを有効にして、カーネルを作ることにした。何らかのヒントが出てくれれば良いのだが。

カーネルの設定ファイルは他のものを読み込むことが出来る。

% 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
include で GENERIC カーネルの設定を読み込み、DDB/KDB、INVARIANTS と WITNESS を有効にして、buildkernel KERNCONF=DEBUG。

再起動後に、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の入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2017/01/22/8331100/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。