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>
Reviewed by: Yuri Pankov <yuripv@yuripv.net>

*** 19,28 **** --- 19,30 ---- * 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,191 **** /* * 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_t * mdb_tgt_create(mdb_tgt_ctor_f *ctor, int flags, int argc, const char *argv[]) { mdb_module_t *mp; --- 182,192 ---- /* * 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_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,1097 **** */ 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 --- 1087,1096 ----
*** 1119,1138 **** 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; --- 1118,1127 ----
*** 1392,1408 **** 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 */ --- 1381,1390 ----