Hi everyone, I've been working on a wad started by Eric Schrock a couple years ago to add type information to MDB pipelines. It has blossomed into a fairly big modification of the MDB module API, and I'd like to get some community review before I put this back.
Here's the introduction from the proposed ARC case: ==== 1. Introduction ==== While the Solaris Modular Debugger API has served Solaris well since its introduction, there are a few areas which need enhancement: 1. There is no interaction between CTF types and pipelines, which leads to a lot of duplication of information: > ::walk thread | ::print kthread_t t_procp it should be possible to shorten this to: > ::walk thread | ::print t_procp 2. Both DCMDs and walkers contain a lot of boilerplate argument checking, much of which can easily be eliminated. In doing so, we can increase the accuracy of DCMD usage strings, which makes everyone's life easier. 3. Some misc. MDB modapi changes. 4. Walkers need to support arguments; creating a new walker every time you need a slight variant causes an explosion of walkers. 5. DCMD _help() functions are difficult to write, since there are few facilities to assist the developer. This means that in many cases they are never written. It should be easy to document how a dcmd works. In addition, mdb's builtin dcmds for getting information about dcmds and walkers need a bit of a facelift; it would be nice to be able to get usage strings for all dcmds, for example. The necessary enhancements are described below. This case seeks minor release binding. ==== The diffs to mdb_modapi.h are here: http://cr.opensolaris.org/~jwadams/webrev-mdbprint/usr/src/cmd/mdb/common/mdb/mdb_modapi.h.wdiff.html The proposed arc case materials are here: http://cr.opensolaris.org/~jwadams/webrev-mdbprint/proposed_arc_case And the full codereview is here: http://cr.opensolaris.org/~jwadams/webrev-mdbprint/ The meat of the changes is in usr/src/cmd/mdb/common/mdb. Cheers, - jonathan