2013-06-19 92 views
1

我想调试一个内核恐慌。 内核日志说,Linux内核恐慌。了解oops消息 - pgd?

[63859.139142] Unable to handle kernel paging request at virtual address c0a0da06 
[63859.139236] pgd = ec040000 
[63859.139289] [c0a0da06] *pgd=00a1941e(bad) 

我有兴趣知道什么是pgd? 谢谢。

回答

2

pgd是“页面全局目录”的缩写,即页面顶层的内核名称。

+0

非常感谢。任何想法一个坏的pgd是什么意思?它是一个内存腐败?我发现PC值本身c0a0da06不能在vmlinux的objdump中定位。在后面的轨迹中,我看到恐慌是由预取中止触发的。任何指针都会有帮助 –

+0

@Manty你为什么要保持背部秘密? –

+1

'c0a0da06'不一定是PC的值,它也可能是代码试图读取或写入的虚拟地址。一个糟糕的pgd条目的确切含义取决于体系结构,但通常意味着它被标记为不存在或不可写。 – caf