カーネルコールトレースに命令アドレスを表示するには?

カーネルコールトレースに命令アドレスを表示するには?

[<XXXXXXXX>]カーネルモジュールでエラーが発生したときにコールトレースにアドレスを表示するには?私はいくつかのカーネル設定オプションを探していましたが、運がありませんでした。

私のdmesg出力

...
[26246.257523] Call Trace:
[26246.257530]  do_one_initcall+0x59/0x240
[26246.257540]  do_init_module+0x5c/0x230
[26246.257545]  load_module+0x2725/0x29e0
[26246.257556]  ? __do_sys_finit_module+0xbb/0x120
[26246.257560]  __do_sys_finit_module+0xbb/0x120
[26246.257567]  do_syscall_64+0x4e/0x150
[26246.257573]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
[26246.257577] RIP: 0033:0x7f3680ff5f8d
...

アドレスを含む他のdmesg出力

...
Call Trace:
 [<c010102d>] ? _stext+0x2d/0x170
 [<c01708e4>] ? __vunmap+0xa4/0xf0
 [<c0170981>] ? vfree+0x21/0x30
 [<c014b698>] ? load_module+0x19b8/0x1a40
 [<c035e965>] ? __mutex_unlock_slowpath+0xd5/0x140
 [<c0140da6>] ? trace_hardirqs_on_caller+0x106/0x150
 [<c014b7aa>] ? sys_init_module+0x8a/0x1b0
 [<c0140da6>] ? trace_hardirqs_on_caller+0x106/0x150
 [<c0240a08>] ? trace_hardirqs_on_thunk+0xc/0x10
 [<c0103407>] ? sysenter_do_call+0x12/0x43
...

編集:カーネルバージョン4.19で動作します。このページによるとhttps://www.kernel.org/doc/html/v4.19/admin-guide/bug-hunting.html、デバッグカーネルに表示する必要があると思いましたが、DEBUG_KERNEL、DEBUG_INFO、KALLSYMS、およびKALLSYMS_ALLがすべてオンになっています。

edit2:dumpstack.cのコードを見ると、古いカーネルでは印刷され、最新のカーネルでは印刷されないようです。

ベストアンサー1

おすすめ記事