The mdb debugger has some really nifty integration with libumem, as documented in an old [unavailable] technical article, and Adam Leventhal’s famous Top 20 Blog.

I got a request recently asking if dbx had similar features. I think the engineer who asked was already familiar with the memory checking features dbx has (Run Time Checking), but the simplicity and speed of libumem checking have their own advantages.

So anyway, after a bunch of fiddling around in my C.S.T. (copious spare time) I got a ksh script together that I’m not completely embarrassed to share with the world. It has a few basic functions like:

  • Dump the transaction log
  • Show all the transaction log entries for a specific block, along with the stack trace for each log entry
  • Given any address, search the transaction log for any blocks containing that address

The dbx lib umem module has a simple demo script in the documentation and a few tech notes. Please try it out if you’re interested, and let me know how it goes. If you have trouble downloading it because it doesn’t have a .txt extension let me know.

Update:

There is a Solaris bugid asking for libumem to export this information in a stable form. It is bugid:

6297789 libumem could use a libumem_db

In my never ending battle to figure out Technorati, here we go again: