2

I'm learning linux kernel debugging and dmesg is the tool that output kernel debug log:

...
[    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
...
  • Question 1: IIUC, __warn is kernel function, but what's the meaning of 0x160/0x190?
2

From this Stack Overflow answer:

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

That gives you the faulting instruction pointer, both directly and in symbol+offset form. The part after the slash is the size of the function.

Assuming a similar format, ffffffff80942810 is the address, __warn is the symbol, 0x160 is the offset from that symbol, and 0x190 is the size of the __warn function.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.