Mail Archives: djgpp/1993/03/27/02:29:50
Hi, netters:
I wrote (more exactly, modified) a C program. It has been compiled
and run perfectly by Turbo C++. It gives the right result. Then I tried
to compile it using djgpp (both version 1.08 and 1.09 on two different
machines). It compiles and links perfectly, no error or warning message.
Then I use go32.exe to run the program. It stops abnormally, giving a
message:
Exception 33 (0x21) at eip=66b7 (this number is different on two machines)
Then I use debug32 to see what's going on (I only know a little about
assembler). The program stops in the function _sbrk() (within malloc()),
at the instruction:
0000066b5:cd21 int 0x21
(lots of register values omitted)
exception 33 (0x21) occured.
Now the problem is: I can't find any problem in the source code.
It seems to me that the problem lies in malloc() or sbrk(). However,
I am not sure and if yes, I don't know how to fix it. Has anyone
out there encountered similar problem? Is there any way to fix such
problem? Any help will be greatly appreciated. Thank you all.
Have a nice weekend.
Guangxi Wu | wuxi AT unixg DOT ubc DOT ca
Dept. of Bio-Resources Eng. | guangxi_wu AT mtsg DOT ubc DOT ca
Univ. of British Columbia |
Vancouver, B. C. | (604)-822-4507 (Office)
Canada V6T 1Z4 | (604)-228-0434 (Home)
- Raw text -