zhang@zgdvda.zgdvda.uucp (Ning Zhang) (08/08/90)
Sorry if this message is duplicated. I'm trying to port a graphics package to a DN10000 running DomainOS SR10.2+ BSD4.3. I'm working in the 4.3 BSD environment. No problem with compiling the package. But I got "Floating Exception" after trying to run it just for a test. After digging deeply inside the program, I found that the problem is with the malloc(3) function calls. After issuing the command inlib /usr/apollo/lib/libmalloc.dbg the error message I got is Malloc assertion violated: *(u_short *)((caddr_t)(op + 1) + op->ov_size) == RMAGIC on block 0x0016e140 Memory allocation statistics at failure 2**sz: 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 free: 0 236 114 33 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 used: 0 20 14 31 257 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Total in use: 39744, total free: 13504 The output of the tb(1) command is Process 2749 (parent 2608, group 2749) Time 90/08/08.15:39(MESZ) Program /sys/node_data/tmp/rad/rad Status 09010006: IOT instruction fault (UNIX/signal) In routine "kill" line 84 Called from "abort" line 47 Called from "botch" line 129 Called from "free" line 295 ... Called from "main" line 150 Called from "unix_$main" line 114 Called from "_start" line 51 Called from "pm_$call_and_switch_stack" line 749 Called from "pgm_$load_run" line 894 Proc2 Uid 4C13B1DD.200254FC Parent Process 2608 (4C13A789.900254FC) Process Group 2749 (4C13B1DD.200254FC) Fault Status 09010006: IOT instruction fault (UNIX/signal) User Fault PC A040F16C User Fault NPC A040F170 User Fault IPSW 041040C1 R0-R3: 5D220244 041C0501 E0066932 000003F7 R4-R7: 00000001 00000019 00000006 00000000 R8-R11: 00000000 E01565B0 A00239F8 A00238F8 R12-R15: A0023910 00000006 00000000 00000002 R16-R19: A010D478 00085450 00104660 00000001 R20-R22,SF: 00178700 9FC7C2E8 A040F16C 9FEFE9C0 The program does a lot of calloc/free calls. But the machine has 64MB memory and 128MB swap space, I don't think the problem was caused by the physical limitations of the machine. Also I don't think it was caused by the limits of system resource, as I've already used the limit command in c-shell or the ulimit command in b-shell to get rid of them. As a matter of factor, the program runs very well on many platforms, including VAXs, SUNs, HPs, SGI. I have no idea why the program fails on the DN10000 when using the malloc(3) calls. I also tried to test the package on a DN580, and the problem is the same. If you have any suggestion on this problem, please send me EMAIL. Thanks in advance, Ning Zhang <zhang@agd.fhg.de> <unido!zgdvda!zhang>