This is the mail archive of the gdb@sourceware.org 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]

Re: Using dlopen and remote debugging


On Mon, Feb 25, 2008 at 03:21:36PM +0100, steve.kreyer@web.de wrote:
> Is there anything else I can do to debug this library using the gdb sh port?

Well, you could try this untested patch...

The sh-linux-tdep.c parts bring it in line with other Linux ports, but
are not specifically important for your problem.  The configure.tgt
parts fix the fact that "sh4-linux-uclibc" was not recognized as a
Linux system.

-- 
Daniel Jacobowitz
CodeSourcery

2008-02-25  Daniel Jacobowitz  <dan@codesourcery.com>

	* configure.tgt (sh-*-linux*): Match sh*.  Add glibc-tdep.o.
	* sh-linux-tdep.c (sh_linux_init_abi): Use glibc_skip_solib_resolver
	and svr4_fetch_objfile_link_map.
	* Makefile.in (sh-linux-tdep.o): Update.

Index: Makefile.in
===================================================================
RCS file: /cvs/src/src/gdb/Makefile.in,v
retrieving revision 1.984
diff -u -p -r1.984 Makefile.in
--- Makefile.in	20 Feb 2008 15:45:20 -0000	1.984
+++ Makefile.in	25 Feb 2008 14:31:23 -0000
@@ -2703,7 +2703,7 @@ shnbsd-tdep.o: shnbsd-tdep.c $(defs_h) $
 	$(shnbsd_tdep_h) $(solib_svr4_h)
 sh-stub.o: sh-stub.c
 sh-linux-tdep.o: sh-linux-tdep.c $(defs_h) $(osabi_h) $(solib_svr4_h) \
-	$(symtab_h)
+	$(symtab_h) $(glibc_tdep_h)
 sh-tdep.o: sh-tdep.c $(defs_h) $(frame_h) $(frame_base_h) $(frame_unwind_h) \
 	$(dwarf2_frame_h) $(symtab_h) $(gdbtypes_h) $(gdbcmd_h) $(gdbcore_h) \
 	$(value_h) $(dis_asm_h) $(inferior_h) $(gdb_string_h) \
Index: configure.tgt
===================================================================
RCS file: /cvs/src/src/gdb/configure.tgt,v
retrieving revision 1.200
diff -u -p -r1.200 configure.tgt
--- configure.tgt	11 Feb 2008 21:58:41 -0000	1.200
+++ configure.tgt	25 Feb 2008 14:31:23 -0000
@@ -367,11 +367,10 @@ score-*-*)
 	gdb_target_obs="score-tdep.o"
 	;;
 
-# FIXME should that be sh*-*-linux*, perhaps?
-sh-*-linux*)
+sh*-*-linux*)
 	# Target: GNU/Linux Super-H
 	gdb_target_obs="sh-tdep.o sh64-tdep.o sh-linux-tdep.o monitor.o \
-			dsrec.o solib.o solib-svr4.o symfile-mem.o"
+			dsrec.o solib.o solib-svr4.o symfile-mem.o glibc-tdep.o"
 	gdb_sim=../sim/sh/libsim.a
 	build_gdbserver=yes
 	;;
Index: sh-linux-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/sh-linux-tdep.c,v
retrieving revision 1.6
diff -u -p -r1.6 sh-linux-tdep.c
--- sh-linux-tdep.c	1 Jan 2008 22:53:12 -0000	1.6
+++ sh-linux-tdep.c	25 Feb 2008 14:31:23 -0000
@@ -23,6 +23,8 @@
 #include "solib-svr4.h"
 #include "symtab.h"
 
+#include "glibc-tdep.h"
+
 static void
 sh_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
 {
@@ -30,6 +32,10 @@ sh_linux_init_abi (struct gdbarch_info i
   set_gdbarch_skip_trampoline_code (gdbarch, find_solib_trampoline_target);
   set_solib_svr4_fetch_link_map_offsets
     (gdbarch, svr4_ilp32_fetch_link_map_offsets);
+  set_gdbarch_skip_solib_resolver (gdbarch, glibc_skip_solib_resolver);
+
+  set_gdbarch_fetch_tls_load_module_address (gdbarch,
+                                             svr4_fetch_objfile_link_map);
 }
 
 /* Provide a prototype to silence -Wmissing-prototypes.  */


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]