pmtest7的调试,从dos返回到bochs

转载与看雪学院: http://bbs.pediy.com/showthread.php?t=116110
Xiilin:
我在看于渊的《Orange'S...》这本书,我调试一个程序时却出现了问题,程序做的事情是首先从实模式切换到保护模式,然后在保护模式下读取0x00500000地址的内存,然后显示出来。

我在Bochs虚拟机下的FreeDos系统上用debug32调试的这个程序,可只能调试到这里:

mov eax,cr0
or eax,1
mov cr0,eax ;调试到这一句时,FreeDos会重启


麻烦大家给我指点一下,我要怎么样才能继续调试下去?我想跟到保护模式的代码里。
--------------------------------------------------------------------------------
xiilin:
已解决,感谢天杀老大指点的方法。

在Bochs的配置文件里加上一句magic_break: enabled=1,然后在程序里加上一句xchg bx,bx,运行到这条指令时会断到Bochs调试器里。这样就可以继续调试下去了。

在Bochsrc_sample.txt里有提到过的,我居然没有仔细看。
---------------------------------------------------------------------------------
羽毛飘飘:
xiilin,你好!
我遇到了和你同样的问题,deug32调式有问题。
但是我用你说的方法试了但还是没能返回bochs的调试,下面是我的操作流程,您帮着给看看拿步出问题了。
1.修改bochsrc文件
在文件末尾增加“magic_break: enabled=1”
2.pmtest.asm文件中增加语句chg bx, bx,选了2个地方都没有成功
%include "pm.inc" ; 常量, 宏, 以及一些说明
;xchg bx, bx
org 0100h
;xchg bx, bx
jmp LABEL_BEGIN
3.启动bochs
bochs -f bochsrc
4.选择6
Please choose one: [6]
5.让bochs运行
<bochs:1> c 回车
6.在freedos中进入b盘,运行pmtest2.com
7.dos屏幕上显示处红色的打印字符串
未能成功的停在bochs中。
帮忙看看,我那里操作有问题阿?
------------------------------------------
羽毛飘飘:
谢谢!
谢谢回复!

问题找到了,原来是我没有把新编译生成的com文件拷贝到pm.img中。
比较低级的错误,惭愧。

转载于:https://www.cnblogs.com/wanghj-dz/archive/2011/05/03/2035373.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值