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


Reply via email to