malloc problem on SPARC stations OS 4.03c

Thomas Roemke tomtom at uni-paderborn.de
Thu May 3 19:57:34 AEST 1990


Do any of you know of a fix for a bug in malloc on SPARC stations running
4.0.3c or is it just a bug in my brain ?

My problem:

If I compile my program on 68K SUN stations running the same OS, the
program works fine.  But unfortunatly, when compiled on a SPARC station,
the program core dumps in malloc!  I've tried to fix the error using an
own MALLOC function which looks like:

	char *MALLOC(size)
	unsigned size;
	{
  		char *new;
    		sum = sum + size; /* sum is global */
      		printf("*** total %ld byte(s)  actual=%d \n",sum,size);
		new = malloc(size);
	  	printf("*** returned pointer is %x \n",new);
	    	mallocmap();
	      	return(new);
	}

The result is:

tomtom at thor: /homes/saturn/tomtom/arb/mod3/src/source4 32> dbx mod3.exe
Reading symbolic information...
Read 11055 symbols
(dbx) run ../m.m3
Running: mod3.exe ../m.m3
*** total 20 byte(s)  actual=20
*** returned pointer is 4e8f0
4e858: 144 bytes: busy
4e8e8: 32 bytes: busy
4e908: 3920 bytes: free
4f858: 8200 bytes: busy
*** total 40 byte(s)  actual=20
*** returned pointer is 4e910
4e858: 144 bytes: busy
4e8e8: 32 bytes: busy
4e908: 32 bytes: busy
4e928: 3888 bytes: free
4f858: 8200 bytes: busy
*** total 56 byte(s)  actual=16
*** returned pointer is 4e930
4e858: 144 bytes: busy
4e8e8: 32 bytes: busy
4e908: 32 bytes: busy
4e928: 24 bytes: busy
4e940: 3864 bytes: free
4f858: 8200 bytes: busy
*** total 64 byte(s)  actual=8
*** returned pointer is 4e948
4e858: 144 bytes: busy
4e8e8: 32 bytes: busy
4e908: 32 bytes: busy
4e928: 24 bytes: busy
4e940: 16 bytes: busy
4e950: 3848 bytes: free
4f858: 8200 bytes: busy
*** total 84 byte(s)  actual=20
malloc_verify: bad block size (3) at 0x0

signal IOT (IOT instruction) in kill at 0xf77794c0
0xf77794c0:     bgeu    0xf77794e8
(dbx) where
kill() at 0xf77794c0
`dmalloc`error() at 0x393c8
malloc_verify() at 0x391a8
free() at 0x38380
fclose() at 0xf7753ab4
_fwalk() at 0xf77539a8
_cleanup() at 0xf7753a28
abort() at 0xf778d2b0
`dmalloc`error() at 0x393c8
malloc_verify() at 0x391a8
malloc() at 0x38180
malloc() at 0x38180
MALLOC(size = 20), line 14 in "ownMALLOC.c"
MAKENODE(prodid = 9), line 28 in "TreeCon.c"
SourceNode(x = 10, gs = 0x49198), line 30 in "SourceNode.c"
StrukturAnknuepfung(PR = 86), line 1880 in "parse.c"
Zerteiler(), line 2491 in "parse.c"
ScanPars(argc = 2, argv = 0xf7fffb9c), line 63 in "LRIntf.c"
main(argc = 2, argv = 0xf7fffb9c), line 4632 in "attr.c"
(dbx)

Please reply via Net mail.
Thank you.

Thomas


(*     tomtom%hanna at pbinfo.uucp		
       tomtom at hanna.uni-paderborn.de
       ..!mcsun!unido!pbinfo!hanna!tomtom
*)



More information about the Comp.sys.sun mailing list