This is the mail archive of the gdb@sources.redhat.com mailing list for the GDB project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
I'm seeing the following internal error:
.../frame.c:591: internal-error: Failed to compute the register number corresponding to 0x296
This is happening because the *addrp value in the following loop (which is in frame_register() in frame.c)...
for (regnum = 0; regnum < NUM_REGS + NUM_PSEUDO_REGS; regnum++) { if (*addrp == register_offset_hack (current_gdbarch, regnum)) { *realnump = regnum; return; } }
...is set using a value obtained from REGISTER_BYTE(). (See sentinel_frame_prev_register in sentinel-frame.c.) But the value obtained from register_offset_hack() was computed by using the register's virtual type.
/* If an old style architecture, fill in the remainder of the register cache descriptor using the register macros. */ if (!gdbarch_pseudo_register_read_p (gdbarch) && !gdbarch_pseudo_register_write_p (gdbarch) && !gdbarch_register_type_p (gdbarch)) { descr->legacy_p = 1; init_legacy_regcache_descr (gdbarch, descr); return descr; }
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |