From e3d6e390e00f7e3e82820cfb174f4ccc07dda0cc Mon Sep 17 00:00:00 2001 From: pancake Date: Mon, 24 Aug 2015 11:12:39 +0200 Subject: [PATCH] Fix #3144 - `drt all` and `drt drx 32` and many more! --- libr/core/cmd_debug.c | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/libr/core/cmd_debug.c b/libr/core/cmd_debug.c index edaccaf8a4..4c8bd3719c 100644 --- a/libr/core/cmd_debug.c +++ b/libr/core/cmd_debug.c @@ -1245,19 +1245,24 @@ free (rf); size = atoi (regname); if (size<1) { char *arg = strchr (str+2, ' '); + size = -1; if (arg) { *arg++ = 0; size = atoi (arg); - type = r_reg_type_by_name (str+2); - } - if (size<0) - size = 0; - } - if (type != R_REG_TYPE_LAST) { + type = r_reg_type_by_name (str+2); + if (size < 0) + size = core->dbg->bits * 8; r_debug_reg_sync (core->dbg, type, R_FALSE); - r_debug_reg_list (core->dbg, type, size, (int)(size_t)strchr (str,'*'), use_color); - } else eprintf ("cmd_debug_reg: Unknown type\n"); + r_debug_reg_list (core->dbg, type, size, + strchr (str,'*')? 1: 0, use_color); + } else { + if (type != R_REG_TYPE_LAST) { + r_debug_reg_sync (core->dbg, type, R_FALSE); + r_debug_reg_list (core->dbg, type, size, + strchr (str,'*')?1:0, use_color); + } else eprintf ("cmd_debug_reg: Unknown type\n"); + } } break; default: for (i=0; (name = r_reg_get_type (i)); i++)