Kernel Dump on SMP

I have been having this happen occasionally, but I just recently
discovered how to cause a kernel dump repeatably (no interrupt
handlers, nothing fancy just a plain old user level program being
debugged).

I can cause this kernel dump repeatably by setting a watch on
the contents of an address in gdb. I believe that the kernel
dumps when the contents of the watched address changes (the
only reason I think this, is that the crash happens exactly
when I expect the watch to trigger - based on my experience
with the temporal characteristics of the bug in my code).

Anyway, I have attached the dump.

For those of you who may be curious about this, this is known
behavior.

You cannot set a watch on a variable in a shared library with the
SMP kernel (this is documented in the release notes I’m told).
The moral of the story: Debug libraries static under SMP.

I’ll look into this. FWIW, it appears that you can, but you must put
the magical ‘*’ (that indicates an address, not a symbol) in front of
the address…

watch *

Rennie Allen <rgallen@attbi.com> wrote:

This is a multi-part message in MIME format.
--------------060008000009060100010002
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit

I have been having this happen occasionally, but I just recently
discovered how to cause a kernel dump repeatably (no interrupt
handlers, nothing fancy just a plain old user level program being
debugged).

I can cause this kernel dump repeatably by setting a watch on
the contents of an address in gdb. I believe that the kernel
dumps when the contents of the watched address changes (the
only reason I think this, is that the crash happens exactly
when I expect the watch to trigger - based on my experience
with the temporal characteristics of the bug in my code).

Anyway, I have attached the dump.



--------------060008000009060100010002
Content-Type: text/plain;
name=“kerneldump”
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename=“kerneldump”

Shutdown[1,1] S/C/F=5/2/4 C/D=ff81237a /ff845c88 state (1000c00) = now lock
[0]PID-TID=1-1? P/T FL=00019001/08000000 “daily/x86/boot/sys/procnto-smp”
[1]PID-TID=1-5? P/T FL=00019001/04020000 “daily/x86/boot/sys/procnto-smp”
[1]ASPACE PID=765973 PF=00000000 “/bin/cp”
x86 context[efffd7cc]:
0000:080519d4 eefdcb28 effd1e94 efffd7ec 01000003 ff80e9ca 00000d8b 00000000
0020:ff8151d3 0000001d 00001206 effd1e44 00000099
instruction[ff8151d3]:
f3 ab e9 a4 01 00 00 83 7d dc 00 0f 84 9a 01 00 00 c7 45 c4 1c 50 84 ff 83 7d
stack[effd1e44]:
00: ff844ed4 00000000 00000000 eefdcbb0 effcaba8 ff8250e3 effcaba8 00000000
20: 00000000 00000000 08048000 00004000 00000000 eec0bb38 eefdca68 00000000
40: eec0b8b8 00000000 08051000 00004000 effd1f18 eefdcb28 efff00ac effd00ac
60: ff8184d0 eefdcb28 00000000 00004000 00000300 00000003 00000000 00000000

#/** PhEDIT attribute block
#-11:16777215
#0:839:cour9:-3:-3:0
#** PhEDIT attribute block ends (-0000110)**/

--------------060008000009060100010002–


cburgess@qnx.com