dmesgでTraceを理解する方法は?

dmesgでTraceを理解する方法は?

私はLinuxカーネルのデバッグを学んでいます。 dmesg はカーネルのデバッグログを出力するツールです。

...
[    2.988000] Trace:
[    2.988000] [<ffffffff80942810>] __warn+0x160/0x190
[    2.988000] [<ffffffff8111ae9c>] dwc3_probe+0xc1c/0x1e60
[    2.988000] [<ffffffff8111ae9c>] dwc3_probe+0xc1c/0x1e60
[    2.988000] [<ffffffff80fe4434>] platform_drv_probe+0x34/0x90
...
  • Q1:IIUC__warnはカーネル機能とは何ですか0x160/0x190

答え1

~からスタックオーバーフローに対するこの回答:

[10991.880408] EIP: 0060:[<c06969d4>] EFLAGS: 00210246 CPU: 0
[10991.880411] EIP is at iret_exc+0x7d0/0xa59

これにより、誤ったコマンドポインタが直接または符号+オフセットとして提供されます。スラッシュの後ろの部分は関数のサイズです。

同様の形式を仮定すると、はアドレスffffffff80942810__warnは記号、0x160はその記号のオフセット、は0x190関数のサイズです__warn

関連情報