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

直接上新问题的描述: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: 0000000080050033
[  133.161008] CR2: 0000000001073808 CR3: 000000010180a002 CR4: 00000000003606f0
[  133.161012] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[  133.161016] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
……
[  133.161094] RIP: do_change_submit+0x1f6/0x370 RSP: ffffad1d422dfe40
[  133.161096] ---[ end trace 0b4702beb2d502fa ]---

其中比较关键的可能就两处:

1、general protection fault

2、do_change_submit+0x1f6/0x370 RSP: ffffad1d422dfe40

dmesg打印出的,标红的信息尤其需要被注意!

这个general protection fault,看上去好像是保护出现异常,这也是我第一次遇到这种问题,也只有通过查阅资料来了解该如何解决,不过感觉应该也是和内存相关的报错。

通过搜索找到一个比较靠谱的解答:

名称:Linux内核报错“General protection fault”原因

地址:http://ilinuxkernel.com/?p=1388

在该博客中,主要可以获取的信息是:在Intel编程手册中指出,General protection fault中断号为13,表示内存访问或保护检查出现异常。

和之前的猜想一致,可能是内存方面的问题,然后再根据报错信息在函数do_change_submit中逐步排查,最终将问题定位为指针在移动的过程中访问了其他的区域。

针对这个问题将指针进行约束,使得General protection fault得到解决。

Linux内核运行时错误:general protection fault相关推荐

  1. linux内核损坏的原因,Linux内核报错“General protection fault”原因

    在Linux系统中,偶尔遇到内核报告"General protection fault"或#GP Fault,然后panic,系统宕机.在Intel编程手册中指出,General ...

  2. general protection fault怎么办_法院离婚调解书我想办补充协议怎么办?-免费法律咨询...

    离婚调解书有什么效力,不服离婚调解协议怎么办 离婚调解2018-05-16 12:10:40更新 在提起离婚诉讼的时候,法院为了化解双方的矛盾,让双方的感情有一个挽回的机会,都会安排调解.调解之后双方 ...

  3. Linux内核深入理解中断和异常(3):异常处理的实现(X86_TRAP_xx)

    Linux内核深入理解中断和异常(3):异常处理的实现(X86_TRAP_xx) rtoax 2021年3月 /*** start_kernel()->setup_arch()->idt_ ...

  4. Linux内核深入理解中断和异常(2):初步中断处理-中断加载

    Linux内核深入理解中断和异常(2):初步中断处理-中断加载 rtoax 2021年3月 1. 总体概览 关于idt_table结构的填充,在5.10.13中流程为: idt_setup_early ...

  5. Linux内核深入理解中断和异常(4):不可屏蔽中断NMI、浮点异常和SIMD

    Linux内核深入理解中断和异常(4):不可屏蔽中断NMI.浮点异常和SIMD rtoax 2021年3月 本文介绍一下几种trap: //* External hardware asserts (外 ...

  6. Linux内存page,【原创】(十四)Linux内存管理之page fault处理

    背景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: Kernel版本: ...

  7. linux内核常用函数或宏

    1. simple_strtoul 用于将字符串转换为无符号长整数,第3个参数10意味着转换方式是10进制. ival = simple_strtoul(buffer, NULL, 10); 2. 大 ...

  8. linux内核那些事之Memory protection keys(硬件原理)

    mprotect/map原理及缺陷 <linux 关于虚拟内存的几个系统调用>,提及到用户程序可以通过mprotect或者map(MAP_FIXED)系统调用可以根据需要再次修改已经申请过 ...

  9. Linux内核深入理解中断和异常(1)

    Linux内核深入理解中断和异常(1) rtoax 2021年3月 1. 中断介绍 内核中第一个子系统是中断(interrupts). 1.1. 什么是中断? 我们已经在这本书的很多地方听到过 中断( ...

最新文章

  1. 给自己的程序添加BugReport
  2. (27) java web的struts2框架的使用-基于表单的多文件上传
  3. c语言注释部分两侧的分界符号分别是,c语言中界定注释的符号分别是什么?
  4. Java中的13个原子操作类
  5. Thinkphp V5.X 远程代码执行漏洞 - POC(精:集群5.0*、5.1*、5.2*)
  6. 蔚来事故启示录:被夸大的和被误导的自动驾驶
  7. 【Http】PKIX(PKIX path building failed) 问题 unable to find valid certification path to requested target
  8. c语言用p1口进行转弯灯实验,P1.0口转弯灯程序 单片机IO口的应用
  9. 一位Erlang程序猿的自白
  10. 深度linux任务栏,Deepin系统的dde-dock任务栏出不来的有效解决方法
  11. java开发工作找不到要放弃吗,这样学习Java,才能找到一份Java开发的工作。不要盲目的学!...
  12. python面向对象实验报告_20192310 实验三《Python程序设计》实验报告
  13. 上周Asp.net源码(11.5-11.10)免费下载列表
  14. 用简单易懂的例子解释隐马尔可夫模型
  15. 支付宝第三方应用,用户登录授权获取信息
  16. 排列组合计算公式简易版
  17. win版石器和linux,石器时代私服架设教程Linux版
  18. detecting android sdk, Select Android SDK directory
  19. undefined reference to 的报错原因记录
  20. 令人恶心的小米和神州优车集团面试之旅

热门文章

  1. 湖北高校毕业生供需见面月首场招聘火爆开锣
  2. 米哈游新游正式公测!还没上线就已经“爆了”!
  3. mysql2ora datacopy,Oracle 11gR2 使用 RMAN duplicate from active database 复制数据库
  4. 图像相似性匹配 快速算法
  5. 改网站不存在cdn服务器,网站添加cdn加速服务器
  6. vscode打断点没反应_来自一个插件的疯狂夸赞,VS Code「彩虹屁」插件问世,网友:我想要郭德纲版...
  7. JAVA获取淮河实时的水质数据
  8. html5弹出层表单,layer弹出层实现表单提交
  9. 第155章 SQL函数 UPPER
  10. 七倍龙珠(sevenbead)