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 ----