Board logo

标题: 有没有DJGPP的编程高手?帮忙看看。  [打印本页]

作者: savling     时间: 2003-6-8 00:00    标题: 有没有DJGPP的编程高手?帮忙看看。 

最近用DJGPP编了一个比较大的图形程序,刚运行时一切正常(包括浮点运算),但运行一段时间后,就会出现无法访问协处理器的异常,出现异常的运行时间不定,但出现异常时IP的值都是一样的,程序终止时显示CS和SS的选择子均为无效。
机子配置:CPU:Cyrix MMX-S 233  
              内存:128M
              硬盘(电子盘):32M
哪位大侠帮忙分析一下是什么问题,我弄了近一个月,没有半点头绪。

3X


[此贴子已经被作者于2003-6-8 17:03:40编辑过]



作者: Dark-Destroy     时间: 2003-6-8 00:00
要不要換Intel的處理器試試~
作者: savling     时间: 2003-6-8 00:00
呵呵,因为产品已经定型,所以换处理器基本上是不可能的。:)

有没有别的办法?
作者: ko20010214     时间: 2003-6-8 00:00
就这样(简短)的信息?别人想帮忙都帮不上。
作者: Wengier     时间: 2003-6-8 00:00
请具体说一下吧。
作者: savling     时间: 2003-6-8 00:00
Coprocessor not available at eip=000011f7
eax=0000030c   ebx=00001000  ecx=f00a90f8  edx=000003cf  esi=00000054
edi=00092b38   ebp=00112a08  esp=0000236e  program=c:\cncsys\cncsys.exe

cs: sel=002b  invalid
ds: sel=00af  base=10000000   limit=ffffffff
es: sel=00af  base=10000000   limit=ffffffff
fs: sel=00bf  base=00000000   limit=0010ffff
gs: sel=00bf  base=00000000   limit=0010ffff
ss: sel=0033  invalid

APP stack:[00112b38..00092b38]   Exceptn stack: [00092a8c..00090b4c]

以上是程序异常退出时在屏幕上显示的全部信息,其中CS和SS的值有点奇怪,在正常运行时按CTRL+BREAK退出时显示的值如下:
cs:sel=00a7   base=10000000   limit=0012ffff
ss:sel=00af    base=10000000   limit=ffffffff

有点不明白的是,我的内存是128M,硬盘也就32M,为什么代码段的基地址能为0x10000000  (即256M)?

每次程序退出时,eip的值都是000011f7

麻烦大侠帮忙看看,万分感谢啊。:)


作者: savling     时间: 2003-6-9 00:00
详细信息在上面,请帮忙看看。

谢谢!
作者: Wengier     时间: 2003-6-9 00:00
有两种可能:

1:程序本身编得可能有点错误;
2:所用的DJGPP的版本太旧,可以更新一下。
作者: savling     时间: 2003-6-9 00:00
1,程序在PII350的机子上运行没有问题,不知道这是不是可以排除程序本身的问题;
2,我用的DJGPP版本是2.01,不知道最新版本是多少?哪儿有下?

作者: Wengier     时间: 2003-6-9 00:00
在这儿下载DJGPP的最新版吧:
http://www.delorie.com/djgpp/
作者: fsblm     时间: 2006-2-18 10:17
可能是你反复调用读图形函数,以至内存溢出。