Friday June 01, 2007

New dbx blog! Someone in the dbx group is blogging, yay! Check out Leonard's
^H^H^H^H^H^Hjanitor's quick intro to Runtime Checking ).
Posted by Chris Quenelle
( Jun 01 2007, 05:46:42 PM PDT )
-
Permalink
-
-
Dbx
libumem dbx module update (works on Solaris 9 now)
New version of umem.dbx is here
A kind soul tried my libumem dbx module and ran into some problems. It turns out he was running on Solaris 9, and I hadn't ever tried it on Solaris 9 before (my desktop machine is Solaris Nevada). So I gave it a spin, and ran into the same kind of failure that he did. The short story is I made some bug fixes, and it now works fine and dandy on Solaris 9 and 10. Of course, this is still a "copious spare time" project. So it hasn't been very heavily tested yet.
dbx: warning: unknown language, 'c' assumed dbx: "umem_transaction_log" is not defined in the scope `libc.so.1`_kill`
It turns out that one symbol changed names during the backport of libumem to Solaris 9. umem_max_ncpus is called max_ncpus on Solaris 9. Also, for some reason, dbx is a little schizophrenic about looking up symbols sometimes. On Solaris 9, dbx thinks the global variables are file static I need to use the fully qualified scope, `libumem.so.1`umem.c`umem_transaction_log instead of just umem_transaction_log. Luckily I don't need to hard code the source file name. I can use the dbx which command to find the symbol, but dbx still requires me to use the scoped name to print it.
(dbx) print umem_transaction_log dbx: "umem_transaction_log" is not defined in the scope `a.out`t.c`main` (dbx) whereis umem_transaction_log variable: `libumem.so.1`umem.c`umem_transaction_log (dbx) print `libumem.so.1`umem.c`umem_transaction_log `libumem.so.1`umem.c`umem_transaction_log = 163848
But that only seems to be necessary on Solaris 9.
Thankfully, you don't have to worry about any of that. Just download the latest version and give it a try.
Posted by Chris Quenelle ( May 31 2007, 02:20:35 PM PDT ) - Permalink - - DbxOlder blog entries: