Print this page
9210 remove KMDB branch debugging support
9211 ::crregs could do with cr2/cr3 support
9209 ::ttrace should be able to filter by thread
Reviewed by: Patrick Mooney <patrick.mooney@joyent.com>

@@ -19,10 +19,12 @@
  * CDDL HEADER END
  */
 /*
  * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
+ *
+ * Copyright 2018 Joyent, Inc.
  */
 
 /*
  * MDB Target Layer
  *

@@ -180,12 +182,11 @@
 
 /*
  * Define convenience macro for referencing target flag pending continue bits.
  */
 #define T_CONT_BITS     \
-        (MDB_TGT_F_STEP | MDB_TGT_F_STEP_OUT | MDB_TGT_F_STEP_BRANCH | \
-        MDB_TGT_F_NEXT | MDB_TGT_F_CONT)
+        (MDB_TGT_F_STEP | MDB_TGT_F_STEP_OUT | MDB_TGT_F_NEXT | MDB_TGT_F_CONT)
 
 mdb_tgt_t *
 mdb_tgt_create(mdb_tgt_ctor_f *ctor, int flags, int argc, const char *argv[])
 {
         mdb_module_t *mp;

@@ -1086,12 +1087,10 @@
          */
         if (t->t_flags & MDB_TGT_F_STEP)
                 t_cont = t->t_ops->t_step;
         else if (t->t_flags & MDB_TGT_F_NEXT)
                 t_cont = t->t_ops->t_step;
-        else if (t->t_flags & MDB_TGT_F_STEP_BRANCH)
-                t_cont = t->t_ops->t_cont;
         else if (t->t_flags & MDB_TGT_F_STEP_OUT)
                 t_cont = t->t_ops->t_cont;
 
         /*
          * To handle step-over, we ask the target to find the address past the

@@ -1119,20 +1118,10 @@
                 if (mdb_tgt_add_vbrkpt(t, addr, MDB_TGT_SPEC_HIDDEN |
                     MDB_TGT_SPEC_TEMPORARY, no_se_f, NULL) == 0)
                         return (-1); /* errno is set for us */
         }
 
-        /*
-         * To handle step-branch, we ask the target to enable it for the coming
-         * continue.  Step-branch is incompatible with step, so don't enable it
-         * if we're going to be stepping.
-         */
-        if (t->t_flags & MDB_TGT_F_STEP_BRANCH && t_cont == t->t_ops->t_cont) {
-                if (t->t_ops->t_step_branch(t) == -1)
-                        return (-1); /* errno is set for us */
-        }
-
         (void) mdb_signal_block(SIGHUP);
         (void) mdb_signal_block(SIGTERM);
         mdb_intr_disable();
 
         t->t_flags &= ~T_CONT_BITS;

@@ -1392,17 +1381,10 @@
 mdb_tgt_step_out(mdb_tgt_t *t, mdb_tgt_status_t *tsp)
 {
         t->t_flags |= MDB_TGT_F_STEP_OUT; /* set flag even if tgt not busy */
         return (tgt_request_continue(t, tsp, 0, t->t_ops->t_cont));
 }
-
-int
-mdb_tgt_step_branch(mdb_tgt_t *t, mdb_tgt_status_t *tsp)
-{
-        t->t_flags |= MDB_TGT_F_STEP_BRANCH; /* set flag even if tgt not busy */
-        return (tgt_request_continue(t, tsp, 0, t->t_ops->t_cont));
-}
 
 int
 mdb_tgt_next(mdb_tgt_t *t, mdb_tgt_status_t *tsp)
 {
         t->t_flags |= MDB_TGT_F_NEXT; /* set flag even if tgt not busy */