MacsBug on Quadra, Heap Corruption

jmacz

Well-known member
I was poking around MacsBug yesterday on my Quadra 800 and noticed the following when I execute a heap check:

IMG_8062.PNG

Looks like an issue with heap zone #2. This was using MacsBug 6.6.3 on a Quadra 800 running System 7.5.5. I tried a few other disk images I had (another System 7.5.5, a System 7.1.1, etc) and all report the same thing. MacsBug 6.5.4 also reports the same thing. Happens with / without extensions enabled. The same disk images run on a IIci does not show the heap zone issue.

Since the same disk images work fine in the IIci, I thought perhaps this was a hardware issue with my Quadra 800 (extended MacTest Pro memory checks are all good) and the machine is fully functional with no issues aside from this weird message in MacsBug.

I then decided to check all my machines. My two IIcis, my SE/30, my IIfx, all report no issues with the same disk images.

BUT my Quadra 700 and my PowerBook 540c report the same heap zone issue with heap zone #2. The memory address on my Quadra 800 and 700 are identical (0x000021d0). The memory address on my PowerBook 540c is slightly higher (0x00002800). But in all three cases it's the same message regarding heap zone #2 which is "The heap at xxxxxxxx is bad. Nonrelocatable block: Pointer to zone is bad".

The commonality is obviously my 68040 machines are showing this. My 68030 machines are not.

Is this a known quirk with MacsBug or is there something wrong here that is plaguing three of my machines (my 040's) but not my others (030's)? I thought I'd ask to rule out a simple explanation before digging further.
 

cgp

Well-known member
I haven't tried 6.6.3, but 6.5.3 is fine with System 7.6 on my Quadra 700, Quadra 650 and Quadra 800 emulation under QEMU. System 7.5.5 is also fine with 6.5.3 under emulation. Perhaps it's a MacsBug 6.6.3 issue?
 

jmacz

Well-known member
Just want to confirm that you tried only under emulation? Not on the physical hardware?

I have tried MacsBug 6.2.2/6.5.3/6.6.0/6.6.3 under fresh installs of System 7.1.1 and System 7.5.5 (no third party extensions/control panels) and same heap zone #2 issue on my Quadra 800, Quadra 700, and PowerBook 540c (all of them are 68040s). Tried those MacsBug versions on both of my IIcis, IIfx, SE/30, no issues. My 68040s are stable so I assume it's a MacsBug issue but curious why. I need to poke around the memory to see what is using this heap zone.
 

cgp

Well-known member
Just want to confirm that you tried only under emulation? Not on the physical hardware?
No - Q700 and Q650 are real machines. In fact, only Q800 is supported under emulation.
I have tried MacsBug 6.2.2/6.5.3/6.6.0/6.6.3 under fresh installs of System 7.1.1 and System 7.5.5 (no third party extensions/control panels) and same heap zone #2 issue on my Quadra 800, Quadra 700, and PowerBook 540c (all of them are 68040s). Tried those MacsBug versions on both of my IIcis, IIfx, SE/30, no issues. My 68040s are stable so I assume it's a MacsBug issue but curious why. I need to poke around the memory to see what is using this heap zone.
I'm running a moderate set of extensions/control panels (listing attached). But I'm not seeing the second heap zone at all when doing an HC.
 

Attachments

  • exts.txt
    4.2 KB · Views: 1

jmacz

Well-known member
Ok I see. If it's not too much trouble, on your Q700, what do you see for the first four heap zones when you run 'hz' in MacsBug?

I'm seeing:

Code:
Heap zones
 #1  32  2213K 00002000 to 0022B6AF SysZone
 #2  32     1K 000021D0 to 00002873 !
 #3  32     9K 00077970 to 0007A163
 #4  32   185K 001D2700 to 00200E03

where #2 is the bad one (display has a '!' next to it) and if I set that heap as the target via hx 21d0 and then do a hd the output says the heap is corrupted and an hc shows the same error message "Pointer to zone is bad".
 

jmacz

Well-known member
BTW, my Quadra 700 has a ZuluSCSI and extra memory, but no cards or anything like that and no other changes from stock.
 

jmacz

Well-known member
What you're seeing with your Q650 is what I'm seeing with my Q700, Q800, PB540c. Weird. BTW, my Q700 is also 68MB of memory, no cards, and ZuluSCSI. Are both of your machines running the exact same System version? That heap zone with the error is an embedded one within the system heap.
 

cgp

Well-known member
What you're seeing with your Q650 is what I'm seeing with my Q700, Q800, PB540c. Weird. BTW, my Q700 is also 68MB of memory, no cards, and ZuluSCSI. Are both of your machines running the exact same System version? That heap zone with the error is an embedded one within the system heap.
Both machines are on 7.6.1 but their volume images are different (i.e. diverged from a common 2GB origin). I could probably boot both from an external ZuluSCSI to run exactly the same image.
 

jmacz

Well-known member
Mine shows the same thing.

IMG_8072.JPG

But the MacsBug manual says that ! character in the "Master Pointer" column means:

  • An exclamation point (!) is placed in the Mastr Ptr column for a non relocatable block if the part of the block header containing the pointer to the heap zone has been damaged.

Which shows in both of ours for heap block #2 in heap zone #2, but mines complaining about heap corruption whereas yours is not. I am however running System 7.5.5 whereas you're running 7.6.1. Maybe I need to try 7.6.1 on my Quadra 700 and see if I see any difference.
 

cgp

Well-known member
Mine shows the same thing.
...
Which shows in both of ours for heap block #2 in heap zone #2, but mines complaining about heap corruption whereas yours is not. I am however running System 7.5.5 whereas you're running 7.6.1. Maybe I need to try 7.6.1 on my Quadra 700 and see if I see any difference.
D'oh!

I'll boot 7.5.5 on mine and see.
 

jmacz

Well-known member
I installed a vanilla/default installation of 7.6.1 onto my Q700 and also installed MacsBug 6.5.3 (same as yours). And now I get the same exact result as you on your Q700. There's a ! indicator but MacsBug 6.5.3 doesn't report heap corruption. If I use MacsBug 6.6.3, it does report the corruption, even under 7.6.1.

It's strange that that second heap block inside the second heap zone at 0x000021d0 is marked as a non-relocatable heap block but in that case it's supposed to have a pointer back to the block's zone but that seems to be missing by MacsBug? I'm going to take a look at the memory to see if that's really the case.

Anyhow, doesn't seem like this is specific to my machines so it's probably some type of quirk with the OS or MacsBug.
 

volvo242gt

Well-known member
I'll hook up the 950 this weekend and see what I get. That machine is running 7.5, though. So, a bit older.
 

cgp

Well-known member
Anyhow, doesn't seem like this is specific to my machines so it's probably some type of quirk with the OS or MacsBug.
Yeah, It does seem like a bogus error or inconsequential data corruption that has a software-induced cause.

I've verified it's not an 040 caching issue by using the Cache Switch extension on my Q650 to disable caches. No difference (except slowness).
 

jmacz

Well-known member
Ok, well unless we're both using a set of faulty OS install images and/or have the exact same hardware issue across our machines, then this sounds like a common issue and benign. I'll stop worrying about it :) but I'm still curious why.
 
Top