diff options
author | Keith Seitz <keiths@redhat.com> | 2002-03-01 19:03:17 +0000 |
---|---|---|
committer | Keith Seitz <keiths@redhat.com> | 2002-03-01 19:03:17 +0000 |
commit | a9acf4342def96d78e253a02517516a8b44845fd (patch) | |
tree | ff8bf321cf76680a2753bb6e66197378fd5ea0dd | |
parent | b7eb9d0a54354181bcc37b34da3887d153e1b1da (diff) | |
download | gdb-a9acf4342def96d78e253a02517516a8b44845fd.tar.gz |
* generic/gdbtk-register.c (register_changed_p): Don't use REGISTER_BYTES.
There is no guarantee anymore that REGISTER_BYTES contains
NUM_REGS+NUM_PSEUDO_REGS registers.
(setup_architecture_data): Likewise.
-rw-r--r-- | gdb/gdbtk/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/gdbtk/generic/gdbtk-register.c | 13 |
2 files changed, 14 insertions, 6 deletions
diff --git a/gdb/gdbtk/ChangeLog b/gdb/gdbtk/ChangeLog index bc626aa12d7..213e48cdd85 100644 --- a/gdb/gdbtk/ChangeLog +++ b/gdb/gdbtk/ChangeLog @@ -1,3 +1,10 @@ +2002-03-01 Keith Seitz <keiths@redhat.com> + + * generic/gdbtk-register.c (register_changed_p): Don't use REGISTER_BYTES. + There is no guarantee anymore that REGISTER_BYTES contains + NUM_REGS+NUM_PSEUDO_REGS registers. + (setup_architecture_data): Likewise. + 2002-02-25 Ian Roxborough <irox@redhat.com> * library/srcbar.itcl (SrcBar::create_buttons): Added diff --git a/gdb/gdbtk/generic/gdbtk-register.c b/gdb/gdbtk/generic/gdbtk-register.c index 4236cc8bb22..823284412c3 100644 --- a/gdb/gdbtk/generic/gdbtk-register.c +++ b/gdb/gdbtk/generic/gdbtk-register.c @@ -28,7 +28,9 @@ #include "gdbtk-cmds.h" /* This contains the previous values of the registers, since the last call to - gdb_changed_register_list. */ + gdb_changed_register_list. + + It is an array of (NUM_REGS+NUM_PSEUDO_REGS)*MAX_REGISTER_RAW_SIZE bytes. */ static char *old_regs = NULL; @@ -355,13 +357,13 @@ register_changed_p (int regnum, void *argp) if (read_relative_register_raw_bytes (regnum, raw_buffer)) return; - if (memcmp (&old_regs[REGISTER_BYTE (regnum)], raw_buffer, + if (memcmp (&old_regs[regnum * MAX_REGISTER_RAW_SIZE], raw_buffer, REGISTER_RAW_SIZE (regnum)) == 0) return; /* Found a changed register. Save new value and return its number. */ - memcpy (&old_regs[REGISTER_BYTE (regnum)], raw_buffer, + memcpy (&old_regs[regnum * MAX_REGISTER_RAW_SIZE], raw_buffer, REGISTER_RAW_SIZE (regnum)); Tcl_ListObjAppendElement (NULL, result_ptr->obj_ptr, Tcl_NewIntObj (regnum)); @@ -370,11 +372,10 @@ register_changed_p (int regnum, void *argp) static void setup_architecture_data () { - /* don't trust REGISTER_BYTES to be zero. */ if (old_regs != NULL) xfree (old_regs); - old_regs = xmalloc (REGISTER_BYTES + 1); - memset (old_regs, 0, REGISTER_BYTES + 1); + old_regs = xmalloc ((NUM_REGS + NUM_PSEUDO_REGS) * MAX_REGISTER_RAW_SIZE + 1); + memset (old_regs, 0, sizeof (old_regs)); } |