从零开始搭建环境编写操作系统 AT&T GCC (七)GDB调试和-monitor

本文介绍了如何使用GDB和QEMU的-monitor调试功能来排查操作系统的问题。通过删除历史遗留代码,调整系统文件,使用objdump反汇编,设置断点等步骤,详细展示了调试过程,最终成功解决了中断和显存显示的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  一直有个小教程没有写给大家,那就是使用GDB调试和-monitor调试,借这次代码整理,跟大家说一下怎么用。这里我使用到了objdump工具,gdb调试工具,这些工具都可以直接apt-get获得。当然我还用到了qemu的自带调试功能-monitor
  这一节就是把system文件夹下lds文件的. = 0x8200;删掉,这是个历史遗留问题哈哈,刚开始写的时候加上了这行代码,导致了后来写程序众多不便,于是决定删掉他,这一节不感兴趣的可以直接跳过了。
一、修改system文件夹
  1、打开lds文件,删掉 . = 0x8200; 这个历史遗留问题
  2、打开system.s 进行如下修改,我们看看程序还能不能正常运行。

########################################start 32
############set GDT
    movl    gdt_base+0x8200,    %eax################修改

############0# empty GDT
    movl    $0x00000000,   0(%eax)
    movl    $0x00000000,   4(%eax)
############1# code GDT
    movl    $0x8200ffff,   8(%eax)
    movl    $0x00409a00,   12(%eax)
############2# data GDT
    movl    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值