Debugging Solaris 10 boot I saw something interesting in an exception trace:
143368: Unaligned Memory Access (v=0034)
pc: 00000000f02421f8 npc: 00000000f02421fc
%g0-3: 0000000000000000 0000000000000001 0000000000000000 00000000edd00620
%g4-7: baddcafebaddcafe 0000000000002e7f 0000000000000000 00000000f0243de8
%o0-3: 00000000018d46e0 0000000000000001 00000000ede8e7e1 0000000001213010
And indeed, this is not a random pattern. It's a helping hand from the great, wise Solaris engineers who cared to help the ancestors in finding problems with hardware and kernel modules:
opensolaris/usr/src/uts/common/sys/kmem_impl.h:
#define KMEM_UNINITIALIZED_PATTERN 0xbaddcafebaddcafeULL
Looking at the OpenSolaris sources and Solaris documentation, there are more such helping patterns:
Uninitialized Data: 0xbaddcafe
Redzone: 0xfeedface
Freed Buffer Checking: 0xdeadbeef
They are described in the "Detecting Memory Corruption" chapter of Solaris Modular Debugger Guide, but did actually appear long before mdb.
143368: Unaligned Memory Access (v=0034)
pc: 00000000f02421f8 npc: 00000000f02421fc
%g0-3: 0000000000000000 0000000000000001 0000000000000000 00000000edd00620
%g4-7: baddcafebaddcafe 0000000000002e7f 0000000000000000 00000000f0243de8
%o0-3: 00000000018d46e0 0000000000000001 00000000ede8e7e1 0000000001213010
And indeed, this is not a random pattern. It's a helping hand from the great, wise Solaris engineers who cared to help the ancestors in finding problems with hardware and kernel modules:
opensolaris/usr/src/uts/common/sys/kmem_impl.h:
#define KMEM_UNINITIALIZED_PATTERN 0xbaddcafebaddcafeULL
Looking at the OpenSolaris sources and Solaris documentation, there are more such helping patterns:
Uninitialized Data: 0xbaddcafe
Redzone: 0xfeedface
Freed Buffer Checking: 0xdeadbeef
They are described in the "Detecting Memory Corruption" chapter of Solaris Modular Debugger Guide, but did actually appear long before mdb.
No comments:
Post a Comment