I had a horrible memory corruption bug in our IMS code the other day and had to track the little guy down. First thing I noticed on solaris is that the default core setup doesn’t name the core file with a pid for example. This means that whenever a process in a multiprocess app cores, it will overwrite the core file. So you will only have the last core file (the last process to crash) available to work with.
The first thing you want to do is configure the core file naming rule, for example:
coreadm -i core.%f.%p
will set the core file for a kamailio process crash: core.kamailio.12345. You will therefore have a core file per process that crashes
From here you can use conventional GDB tools to analyze and track down your bug.
One thing I found very useful was analysing the memory using:
x/64hw 0x1234abcd (this will print 64 bytes of mem using hex words from the address 0x1234abcd).
Happy Debugging