Tips and Tricks
en

Tips and Tricks

MDB Tips and Tricks

This page will serve as a repository of useful tools, documentation, procedures, or anything else relating to MDB.  If you have a favorite dcmd invocation, a new MDB module, or a script built around MDB, please post the information to the MDB forum and we'll make sure to archive it here.

MDB Cheatsheet

A great quick reference put together by Jonathan Adams.  You can find the PDF version here, and a postscript version here.

Stack Munger

munges is a neat shell script written by Dave Powell to coalesce similar stacks.  See it in action:

    > ::walk thread | ::findstack
    stack pointer for thread fffffffffbc21c40: fffffffffbc44050
    [ fffffffffbc44050 ~_resume~_from~_idle+0xde() ]
      fffffffffbc44080 swtch+0xdf()
      fffffffffbc44120 sched+0x8ef()
      fffffffffbc44170 main+0x478()
      fffffffffbc44180 ~_start+0x95()
    stack pointer for thread fffffe8000005c80: fffffe8000005ae0
      fffffe8000005b30 ~_interrupt+0x190()
      fffffe8000005b70 lock~_set~_spl+0x1d()
      fffffe8000005bc0 restore~_mstate+0xc7()
    ...
    > ::walk thread | ::findstack ! munges
    73      ==================================  tp: fffffe800000bc80
    	swtch+0xdf()
    	cv_wait+0x6a()
    	taskq~_thread+0x1ef()
    	thread~_start+8()
    53      ==================================  tp: fffffe80fded0000
    	swtch+0xdf()
    	cv~_wait~_sig~_swap~_core+0x177()
    	cv~_wait~_sig~_swap+0xb()
    	cv~_waituntil~_sig+0xd7()
    	poll~_common+0x52b()
    	pollsys+0xbe()
    	sys~_syscall32+0x1ff()
    ...

This is incredibly useful when diagnosing system hangs (as threads tend to pile up on the same locks) or eliminating unnecessary output.

Useful Blog Entries

Here's a list of MDB-related blog entries.  This is a combination of manual
searching and Technorati Tags.
To get your blog on this radar for the future, make sure to include a Technorati
MDB tag in your post.  Just click on the 'Date' link below to get to the
associated post.  If you have an old post that should be featured here, email Eric dot Schrock at sun dot com.

Date                                                                Author   Title                                 
7/18/07  John Levon  Solaris Xen Update 
5/20/07  JJMora  Buceando en el Kernel con mdb (III) 
1/10/07  Peter Harvey  pfiles(1), locked files and a pinch of salt 
12/16/06  Chris Gerhard  How to shoot yourself in the foot with MDB 
3/8/06  Eric Lowe  Examining the Anatomy of a Process 
3/6/06  Eric Lowe  Examining the Solaris Kernel 
6/24/05     Fintan Ryan     MDB ::eval     
6/24/05   Eric Schrock     MDB puzzle, take two   
6/23/05     Eric Schrock     MDB puzzle     
6/17/05  Eric Schrock     GDB to MDB migration, part two  
6/17/05    Ashish Mehta      A race erased    
6/15/05   Rich McDougall    Adding your own performance statistics to Solaris 
6/15/05    Alexander Kolbasov  MDB for STREAMS    
6/14/05   Mike Shapiro      Sendmail Died in a Two SIGALRM Fire 
6/14/05      Matt Simmons      KMDB design    
6/14/05  Adam Leventhal    Debugging cross calls on Solaris  
6/14/05   Jonathan Adams    The implementation of ::findleaks          
6/14/05  Will Fiveash  Playing with Solaris memory debuggers 
6/14/05   Jan Parcel     My mdb-writing adventure   
6/14/05  Eric Kustarz  NFSv4 Client's Recovery Messages  
6/14/05    Alok Aggarwal     Debugging on SPARC    
6/14/05  Stephen Hahn  libuutil and designing for debuggability   
6/14/05  Eric Saxe  Debugging Solaris Scheduling Problems 
6/14/05   Bart Smaalders    Doing the jitter bug   
6/8/05    Yu Xiangning     Hellow world in a KMDB module  
5/24/05                  Saurabh Mishra    ::cpupart -v for mdb(1m)                   
5/11/05    Eric Schrock     GDB to MDB migration, part one  
4/1/05  MrBenchmark   Memory page coalescing update and Solaris 10 
2/15/05     Fintan Ryan     mdb core     
2/2/05    Eric Schrock     ::whatthread and MDB modules  
11/19/05  Eric Schrock     Debugging on AMD64 - Part Two  
10/7/04              Jonathan Adams    mdb(1) background, intro, and cheatsheet   
10/3/04    Alan Coopersmith  An idle hack    
9/30/04   comand            Learn mdb in 30 minutes   
9/23/04   Eric Schrock     Debugging hard problems   
9/15/04  Stacey Marshall   mdb: drilling sigsegv; by way of an introduction 
8/19/04  Eric Schrock     Kernel debugging with KMDB   
7/13/04    Adam Leventhal    Number 11 of 20: libumem   
6/23/04   Dave Marquardt    Using MDB to figure out mysterious program behavior 
6/20/04   Eric Schrock     My kingdom for a crash dump  
6/16/04   Alan Hargreaves   Kmdb replaces kadb as of build 61  
Tags:
Created by admin on 2009/10/26 12:08
Last modified by admin on 2009/10/26 12:28

Collectives


XWiki Enterprise 2.7.1.34853 - Documentation