It turns out that the problem was that the default Solaris setting for core dumps wasn't giving all information. Running "coreadm -G all -I all" caused the system to start generating core dumps with readable call stacks.