前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记一次艰难的debug经历

记一次艰难的debug经历

作者头像
灯珑LoGin
发布2022-10-31 15:03:14
2150
发布2022-10-31 15:03:14
举报
文章被收录于专栏:龙进的专栏

前几天好不容易写好了dragonOS的内核线程的代码,结果在进程切换的时候总是报page_fault以及general protection。这个bug把我卡住了3天。

将rsp和rbp打印出来,发现它们没有按照预期的动作进行改变。我最开始的时候以为是进程切换的代码搞错了,反复调了半天,还是不行。

然后发现在kernel_thread函数里申请内存会报错,我又怀疑是内存分配出错了,又去反复检查了内存管理模块的代码。反复看了很多遍,都没有发现问题。

最后,在与《一个64位操作系统的设计与实现》随书附赠的代码反复对比之后,发现我的代码有两个叫做init()的函数。然后在stackoverflow中查询知道,c语言是没有namespace这个概念的,因此,在同一个程序的不同代码文件中,不能有相同函数名的函数。于是..把函数名改了,就解决了。这个bug是真的把我给难住了,太难绷了。然后程序就能正常运行了。

转载请注明来源:https://longjin666.cn/?p=1347

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年2月13日2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档