如果你的内核模块崩溃时幸运的话,你会得到一个带有大量信息的日志的 oops,例如寄存器中的值等。其中一个信息是堆栈跟踪(核心转储也是如此,但我最初要求这个内核模块)。举个例子:
[<f97ade02>] ? skink_free_devices+0x32/0xb0 [skin_kernel]
[<f97aba45>] ? cleanup_module+0x1e5/0x550 [skin_kernel]
[<c017d0e7>] ? __stop_machine+0x57/0x70
[<c016dec0>] ? __try_stop_module+0x0/0x30
[<c016f069>] ? sys_delete_module+0x149/0x210
[<c0102f24>] ? sysenter_do_call+0x12/0x16
我的猜测是,+<number1>/<number2>
这与发生错误的函数的偏移量有关。也就是说,通过检查这个数字,也许查看汇编输出,我应该能够找出发生此错误的行(更好的是指令)。那是对的吗?
我的问题是,这两个数字到底是多少?你如何利用它们?