Linux内核运行时错误:general protection fault

本文记录了一次在Linux内核实验中遇到的'general protection fault'错误排查过程。通过dmesg日志,确定关键信息并分析,认为该错误可能与内存相关。查阅资料后,了解到这通常是内存访问异常导致。进一步在函数do_change_submit中定位问题,发现指针错误地访问了其他区域。通过对指针的限制,成功解决了该问题。

最近帮师兄做内核实验,错误不断,由于是修改的内核代码,所以经常遇到错误排查起来都比较麻烦,刚解决了一个问题下一个问题就又出现了。

直接上新问题的描述:general protection fault

这是通过dmesg打印出的保存信息,具体报错内容如下:

[  133.160958] general protection fault: 0000 [#1] SMP PTI
……
[  133.160992] Hardware name: Dell Inc. OptiPlex 5050/0DW5KY, BIOS 1.5.2 06/19/2017
[  133.160995] RIP: 0010:do_change_submit+0x1f6/0x370
[  133.160996] RSP: 0018:ffffad1d422dfe40 EFLAGS: 00010246
[  133.160997] RAX: ffffad1d60001000 RBX: ffff925837fdbf40 RCX: 0000000002e2c43b
[  133.160998] RDX: 0000000000000000 RSI: ffffad1d422dfe80 RDI: ffff925842e5a770
[  133.160999] RBP: ffffad1d422dfec8 R08: 0000000000000001 R09: 000000000000152d
[  133.161000] R10: ffff9257ff004000 R11: 000000000000152d R12: ffff925842e5a770
[  133.161001] R13: ffffad1d424a3000 R14: fffe4960dff6fd00 R15: 0000000002e2c43b
[  133.161002] FS:  0000000000000000(0000) GS:ffff92585dc00000(0000) knlGS:0000000000000000
[  133.161005] CS:  0010 DS: 0000 ES: 0000 CR0: 0000
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值