On 9/27/06, Darren J Moffat <[EMAIL PROTECTED]> wrote:
Gaurav Dhiman wrote: > Can someone let me know if OpenSolaris do support some in-built > functionality for dumping and analysing the kernel crash, something > like LKCD in Linux. If not then is some community working on that ?Sorry but I burst out laughing when I saw this. It is a really good question and I'm not laughing at you, but if you have the Solaris context you would know why it is so funny :-) SunOS has been doing crash dumps from before the very first bit of Linux code ever hit the internet! The only reason LKCD exists is because lots of people who were used to real post mortem dump from SunOS and IRIX and other UNIX or other OS systems want the same on Linux too (and rightly so!) OpenSolaris has IMO some of the best postmortem analysis tools available. In the past we had adb and crash but those got a bit long in the tooth. mdb and its use of CTF data in the objects and crash files is just plain brilliant. I just love being able do do stuff like this: banking:pts/1# mdb unix.0 vmcore.0 Loading modules: [ unix krtld genunix specfs dtrace cpu.AuthenticAMD.15 uppc pcplusmp scsi_vhci ufs ip sctp arp usba nca lofs cpc random zfs logindmux ptm sppp nfs ] > ::stack vpanic() assfail3+0xb9(fffffffff092b5c0, 0, fffffffff092b5b8, 0, fffffffff092b598, 5f3) dbuf_hold_impl+0x329(ffffffffb8aaea08, 0, 0, 0, fffffffff0922181, fffffe8000d067e8) dbuf_hold+0x2b(ffffffffb8aaea08, 0, fffffffff0922181) dnode_hold_impl+0xbd(ffffffffb8a03a00, 1, 1, fffffffff0921363, fffffe8000d06918 ) dnode_hold+0x2b(ffffffffb8a03a00, 1, fffffffff0921363, fffffe8000d06918) dmu_buf_hold+0x45(ffffffffb8a03a28, 1, 0, 0, fffffe8000d06990) zap_lockdir+0x58(ffffffffb8a03a28, 1, 0, 1, 1, fffffe8000d06a68) zap_lookup+0x4d(ffffffffb8a03a28, 1, fffffffff0937290, 8, 1, ffffffffbc612020) dsl_pool_open+0x94(ffffffff988611c0, a, ffffffff98861278) spa_load+0x566(ffffffff988611c0, ffffffffb970bc98, 3, 1) spa_tryimport+0x90(ffffffffb970bc98) zfs_ioc_pool_tryimport+0x31(fffffe80c80ec000) zfsdev_ioctl+0x115(b600000000, 5a06, 8042ce4, 100003, fffffe80c4bfde30, fffffe8000d06e8c) cdev_ioctl+0x48(b600000000, 5a06, 8042ce4, 100003, fffffe80c4bfde30, fffffe8000d06e8c) spec_ioctl+0x86(ffffffffbd970a00, 5a06, 8042ce4, 100003, fffffe80c4bfde30, fffffe8000d06e8c) fop_ioctl+0x37(ffffffffbd970a00, 5a06, 8042ce4, 100003, fffffe80c4bfde30, fffffe8000d06e8c) ioctl+0x16b(3, 5a06, 8042ce4) sys_syscall32+0x1ff() > ffffffffb8a03a00::print dnode_t { dn_struct_rwlock = { _opaque = [ 0 ] } dn_link = { list_next = 0xffffffff988611c0 list_prev = 0xfffffe80c7fc0c00 } dn_objset = 0xffffffffb8aaea08 .... and so on all without need to build with '-g' or need special tools. -- Darren J Moffat
Thanks alot to all of you for giving me enough pointers to to dig into and get more information. Actually I am new to OpenSolaris kernel, I have worked in linux kernel, so dont know much about whats there in opensolaris and whats not. Anyway thanks once again. I will keep on posting my more queries ..... regards, Gaurav _______________________________________________ opensolaris-code mailing list [email protected] http://mail.opensolaris.org/mailman/listinfo/opensolaris-code
