堆栈在oops消息中的含义是什么?
我正在学习Linux设备驱动程序 有一章是关于OOPS消息的,其中有一个堆栈部分 我不理解堆叠区域中的数字;我在谷歌上搜索,没有找到答案 有人能解释一下吗堆栈在oops消息中的含义是什么?,oop,kernel,Oop,Kernel,我正在学习Linux设备驱动程序 有一章是关于OOPS消息的,其中有一个堆栈部分 我不理解堆叠区域中的数字;我在谷歌上搜索,没有找到答案 有人能解释一下吗 EIP: 0010:[<00000000>] Unable to handle kernel paging request at virtual address ffffffff printing eip: ffffffff Oops: 0000 [#5] SMP CPU: 0 EIP: 0060:[<ffffffff&g
EIP: 0010:[<00000000>]
Unable to handle kernel paging request at virtual address ffffffff
printing eip:
ffffffff
Oops: 0000 [#5]
SMP
CPU: 0
EIP: 0060:[<ffffffff>] Not tainted
EFLAGS: 00010296 (2.6.6)
EIP is at 0xffffffff
eax: 0000000c ebx: ffffffff ecx: 00000000 edx: bfffda7c
esi: cf434f00 edi: ffffffff ebp: 00002000 esp: c27fff78
ds: 007b es: 007b ss: 0068
Process head (pid: 2331, threadinfo=c27fe000 task=c3226150)
Stack: ffffffff bfffda70 00002000 cf434f20 00000001 00000286 cf434f00 fffffff7
bfffda70 c27fe000 c0150612 cf434f00 bfffda70 00002000 cf434f20 00000000
00000003 00002000 c0103f8f 00000003 bfffda70 00002000 00002000 bfffda70
Call Trace:
[<c0150612>] sys_read+0x42/0x70
[<c0103f8f>] syscall_call+0x7/0xb
Code: Bad EIP value.
EIP:0010:[]
无法在虚拟地址FFFFFF处处理内核分页请求
打印eip:
ffffffff
Oops:0000[5]
开关电源
中央处理器:0
EIP:0060:[]未受污染
EFLAGS:00010296(2.6.6)
EIP位于0xffffffff
eax:0000000 C ebx:ffffffff ecx:00000000 edx:bfffda7c
esi:cf434f00 edi:ffffffff ebp:00002000 esp:c27fff78
ds:007b es:007b ss:0068
进程头(pid:2331,threadinfo=c27fe000任务=c3226150)
堆栈:ffffffff bfffda70 000020000 cf434f20 00000001 00000286 cf434f00 FFFFFFF 7
bfffda70 c27fe000 c0150612 cf434f00 bfffda70 000020000 cf434f20 00000000
0000000 3 000020000 c0103f8f 0000000 3 bfffda70 000020000 000020000 bfffda70
呼叫跟踪:
[]系统读取+0x42/0x70
[]系统调用\u调用+0x7/0xb
代码:错误的EIP值。
谢谢Tsyvarev,
他说堆栈后的内容:是ESP指向的内容
这应该是堆栈帧,通过查看它们,特别是地址模式,我们可以得到当EIP无效时oops发生在哪里的线索。在
stack:
下面,您可以看到从堆栈指针开始的第一个内存字节的内容(esp
)。每个数字一次代表几个字节(在x86-4字节上)。我明白了,ESP的内容!非常感谢。