diff options
author | John Baldwin <jhb@FreeBSD.org> | 2022-04-01 13:16:46 -0700 |
---|---|---|
committer | John Baldwin <jhb@FreeBSD.org> | 2022-04-01 13:16:46 -0700 |
commit | c13566fdd5725d4c337a2741be02c12c4f430022 (patch) | |
tree | 03bd83c8128e7af550f12afc6a476684efd00f3c /gdb | |
parent | f3215e1526d762f005fdf86abac81da514c74e50 (diff) | |
download | gdb-c13566fdd5725d4c337a2741be02c12c4f430022.zip gdb-c13566fdd5725d4c337a2741be02c12c4f430022.tar.gz gdb-c13566fdd5725d4c337a2741be02c12c4f430022.tar.bz2 |
Use I386_GSBASE_REGNUM in i386fbsd_get_thread_local_address.
32-bit x86 arches always the I386_*BASE_REGNUM values. Only code that
needs to support both 64-bit and 32-bit arches needs to use
tdep->fsbase_regnum to compute a segment base register number.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/i386-fbsd-tdep.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/gdb/i386-fbsd-tdep.c b/gdb/i386-fbsd-tdep.c index fad091f..d50f357 100644 --- a/gdb/i386-fbsd-tdep.c +++ b/gdb/i386-fbsd-tdep.c @@ -350,16 +350,13 @@ i386fbsd_get_thread_local_address (struct gdbarch *gdbarch, ptid_t ptid, i386_gdbarch_tdep *tdep = (i386_gdbarch_tdep *) gdbarch_tdep (gdbarch); struct regcache *regcache; - if (tdep->fsbase_regnum == -1) - error (_("Unable to fetch %%gsbase")); - regcache = get_thread_arch_regcache (current_inferior ()->process_target (), ptid, gdbarch); - target_fetch_registers (regcache, tdep->fsbase_regnum + 1); + target_fetch_registers (regcache, I386_GSBASE_REGNUM); ULONGEST gsbase; - if (regcache->cooked_read (tdep->fsbase_regnum + 1, &gsbase) != REG_VALID) + if (regcache->cooked_read (I386_GSBASE_REGNUM, &gsbase) != REG_VALID) error (_("Unable to fetch %%gsbase")); CORE_ADDR dtv_addr = gsbase + gdbarch_ptr_bit (gdbarch) / 8; |