mirror of
https://github.com/radareorg/radare2.git
synced 2025-02-22 15:21:18 +00:00
Fix dc derivatives causing unintended seek ##shell
This commit is contained in:
parent
98acbb3c1b
commit
2e7018386d
@ -4776,6 +4776,11 @@ static int cmd_debug_continue(RCore *core, const char *input) {
|
|||||||
r_core_cmd_help (core, help_msg_dc);
|
r_core_cmd_help (core, help_msg_dc);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (strchr (input, '?')) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5340,7 +5345,7 @@ R_VEC_TYPE(RVecDebugTracepoint, RDebugTracepoint);
|
|||||||
static int cmd_debug(void *data, const char *input) {
|
static int cmd_debug(void *data, const char *input) {
|
||||||
RCore *core = (RCore *)data;
|
RCore *core = (RCore *)data;
|
||||||
RDebugTracepoint *t;
|
RDebugTracepoint *t;
|
||||||
int follow = 0;
|
bool do_follow = false;
|
||||||
const char *ptr;
|
const char *ptr;
|
||||||
ut64 addr;
|
ut64 addr;
|
||||||
int min;
|
int min;
|
||||||
@ -5653,7 +5658,7 @@ static int cmd_debug(void *data, const char *input) {
|
|||||||
break;
|
break;
|
||||||
case 's': // "ds"
|
case 's': // "ds"
|
||||||
if (cmd_debug_step (core, input)) {
|
if (cmd_debug_step (core, input)) {
|
||||||
follow = r_config_get_i (core->config, "dbg.follow");
|
do_follow = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'b': // "db"
|
case 'b': // "db"
|
||||||
@ -5664,8 +5669,9 @@ static int cmd_debug(void *data, const char *input) {
|
|||||||
break;
|
break;
|
||||||
case 'c': // "dc"
|
case 'c': // "dc"
|
||||||
r_cons_break_push (static_debug_stop, core->dbg);
|
r_cons_break_push (static_debug_stop, core->dbg);
|
||||||
(void)cmd_debug_continue (core, input);
|
if (cmd_debug_continue (core, input)) {
|
||||||
follow = r_config_get_i (core->config, "dbg.follow");
|
do_follow = true;
|
||||||
|
}
|
||||||
r_cons_break_pop ();
|
r_cons_break_pop ();
|
||||||
break;
|
break;
|
||||||
case 'm': // "dm"
|
case 'm': // "dm"
|
||||||
@ -6126,7 +6132,8 @@ static int cmd_debug(void *data, const char *input) {
|
|||||||
r_core_seek (core, old_seek, false);
|
r_core_seek (core, old_seek, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (follow > 0) {
|
if (do_follow) {
|
||||||
|
int follow = r_config_get_i (core->config, "dbg.follow");
|
||||||
ut64 pc = r_debug_reg_get (core->dbg, "PC");
|
ut64 pc = r_debug_reg_get (core->dbg, "PC");
|
||||||
// Is PC before offset or after the follow cutoff?
|
// Is PC before offset or after the follow cutoff?
|
||||||
if (!R_BETWEEN (core->offset, pc, core->offset + follow)) {
|
if (!R_BETWEEN (core->offset, pc, core->offset + follow)) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user