aboutsummaryrefslogtreecommitdiff
path: root/gdb/gdbserver/linux-sparc-low.c
diff options
context:
space:
mode:
authorYao Qi <yao.qi@linaro.org>2016-01-18 15:03:18 +0000
committerYao Qi <yao.qi@linaro.org>2016-01-18 15:03:18 +0000
commit6f69e520676f5f434cf43c250865036b3d516429 (patch)
tree97ebabc257ca590604be2b9e3d28b72e61804a84 /gdb/gdbserver/linux-sparc-low.c
parent276d4552dfc2dc3906fa2bd8690ea85b3d8ec055 (diff)
downloadgdb-6f69e520676f5f434cf43c250865036b3d516429.zip
gdb-6f69e520676f5f434cf43c250865036b3d516429.tar.gz
gdb-6f69e520676f5f434cf43c250865036b3d516429.tar.bz2
Replace some $ARCH_{get,set}_pc with linux_{get,set}_pc_64bit
This patch is the follow-up of https://sourceware.org/ml/gdb-patches/2016-01/msg00164.html to provide linux_{get,set}_pc_64bit functions. Rebuild GDBserver with tilegx-linux-gcc. Not tested. I think about pc in Tile-GX a little bit. Looks current Tile-GX supports debugging 32-bit program (multi-arch), but PC is always 64-bit. See this thread https://sourceware.org/ml/gdb-patches/2013-02/msg00113.html and GDBserver reads PC as 64-bit through ptrace. However, if the inferior is 32-bit, the PC in the target description and regcache is 32-bit, so only 32-bit contents are sent back GDB. Anyway, Tile-GX GDBserver may have some problems here, but this patch doesn't change anything. gdb/gdbserver: 2016-01-18 Yao Qi <yao.qi@linaro.org> * linux-low.c (linux_set_pc_64bit): New function. (linux_get_pc_64bit): New function. * linux-low.h (linux_set_pc_64bit, linux_get_pc_64bit): Declare. * linux-sparc-low.c (debug_threads): Remove declaration. (sparc_get_pc): Remove. (the_low_target): Use linux_get_pc_64bit instead of sparc_get_pc. * linux-tile-low.c (tile_get_pc, tile_set_pc): Remove. (the_low_target): Use linux_get_pc_64bit and linux_set_pc_64bit.
Diffstat (limited to 'gdb/gdbserver/linux-sparc-low.c')
-rw-r--r--gdb/gdbserver/linux-sparc-low.c14
1 files changed, 1 insertions, 13 deletions
diff --git a/gdb/gdbserver/linux-sparc-low.c b/gdb/gdbserver/linux-sparc-low.c
index 1e82ec5..70c5c93 100644
--- a/gdb/gdbserver/linux-sparc-low.c
+++ b/gdb/gdbserver/linux-sparc-low.c
@@ -223,18 +223,6 @@ sparc_store_fpregset (struct regcache *regcache, const void *buf)
supply_register (regcache, i, ((char *) buf) + sparc_regmap[i]);
}
-extern int debug_threads;
-
-static CORE_ADDR
-sparc_get_pc (struct regcache *regcache)
-{
- unsigned long pc;
- collect_register_by_name (regcache, "pc", &pc);
- if (debug_threads)
- debug_printf ("stop pc is %08lx\n", pc);
- return pc;
-}
-
static const gdb_byte sparc_breakpoint[INSN_SIZE] = {
0x91, 0xd0, 0x20, 0x01
};
@@ -315,7 +303,7 @@ struct linux_target_ops the_low_target = {
sparc_cannot_fetch_register,
sparc_cannot_store_register,
NULL, /* fetch_register */
- sparc_get_pc,
+ linux_get_pc_64bit,
/* No sparc_set_pc is needed. */
NULL,
NULL, /* breakpoint_kind_from_pc */