码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 使用QEMU+GDB调试操作系统代码


    最近在写一个玩具操作系统,在编写过程中,经常需要进行代码调试。平常我们在Windows或者Linux下编写应用程序时,可以使用像VS,GDB等等这些调试工具进行调试,但是现在要调试的不是应用程序,而是操作系统本身。前文使用Bochs调试操作系统代码介绍了如何使用Bochs模拟器来调试操作系统代码,本文接着介绍如何使用QEMU+GDB来调试操作系统代码。

    使用QEMU+GDB的方式,不用像Bochs那样,需要自己重新编译源码,QEMU本身是带gdb stub的,所以只需要直接连接Qemu的GDB端口即可,相对来说要简单很多。

    在笔者的实际开发中,Qemu与Bochs的定位不同,在调试Boot以及Loader这种16位代码时,使用Bochs进行汇编级调试;而一旦进入内核后,就使用Qemu+GDB来调试了,因为Qemu在速度上比Bochs快很多。

    下面的命令是使用软盘镜像文件os.img来启动自制的操作系统并启用gdb调试端口1234:

    qemu-system-i386.exe -drive format=raw,index=0,if=floppy,file=os.img -s -S
    
    • 1
    • -s相当于是-gdb tcp::1234,即启用GDB调试端口1234
    • -S在启动后中断CPU执行,需要使用c命令继续执行

    执行命令后,QEMU会如下图所示暂停执行,等待GDB连接:
    在这里插入图片描述

    本文链接:https://blog.csdn.net/witton/article/details/126414742?spm=1001.2014.3001.5501

    我们可以像前文使用Bochs调试操作系统代码中介绍的一样,在Visual Studio 2022中使用GDB来可视化调试操作系统的内核:
    在这里插入图片描述

    与前文使用Bochs调试操作系统代码一样,希望此文能帮助到喜欢研究、编写操作系统的读者,更希望有朝一日看到国人能够写出完全自主的操作系统并流行起来!哈哈!

  • 相关阅读:
    MindFusion.WPF Pack 2022.R1
    docker 更新升级 nginx
    c#手动签字实现
    线上故障突突突?如何紧急诊断、排查与恢复
    问题:在 main 方法中使用 httpclient 时,idea 控制台会疯狂打印 DEBUG org.apache.http.wire 的日志
    如何巧妙应对iOS键盘难题?
    macOS 安装brew和ffmpeg
    【SpringCloud】08 分布式事务 seata
    操作系统 、人、 宇宙
    【JDK 8-函数式编程】4.4 Supplier
  • 原文地址:https://blog.csdn.net/witton/article/details/126414742
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号