summaryrefslogtreecommitdiff
path: root/gdb/monitor.c
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/monitor.c')
-rw-r--r--gdb/monitor.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/gdb/monitor.c b/gdb/monitor.c
index 81340d4be02..559c0a2f372 100644
--- a/gdb/monitor.c
+++ b/gdb/monitor.c
@@ -1174,7 +1174,7 @@ monitor_wait (ptid_t ptid, struct target_waitstatus *status)
static void
monitor_fetch_register (int regno)
{
- char *name;
+ const char *name;
char *zerobuf;
char *regbuf;
int i;
@@ -1183,7 +1183,10 @@ monitor_fetch_register (int regno)
zerobuf = alloca (MAX_REGISTER_RAW_SIZE);
memset (zerobuf, 0, MAX_REGISTER_RAW_SIZE);
- name = current_monitor->regnames[regno];
+ if (current_monitor->regname != NULL)
+ name = current_monitor->regname (regno);
+ else
+ name = current_monitor->regnames[regno];
monitor_debug ("MON fetchreg %d '%s'\n", regno, name ? name : "(null name)");
if (!name || (*name == '\0'))
@@ -1333,10 +1336,14 @@ monitor_fetch_registers (int regno)
static void
monitor_store_register (int regno)
{
- char *name;
+ const char *name;
ULONGEST val;
-
- name = current_monitor->regnames[regno];
+
+ if (current_monitor->regname != NULL)
+ name = current_monitor->regname (regno);
+ else
+ name = current_monitor->regnames[regno];
+
if (!name || (*name == '\0'))
{
monitor_debug ("MON Cannot store unknown register\n");