diff options
-rw-r--r-- | gdb/ChangeLog | 17 | ||||
-rw-r--r-- | gdb/Makefile.in | 2 | ||||
-rw-r--r-- | gdb/config/alpha/alpha-linux.mh | 2 | ||||
-rw-r--r-- | gdb/config/arm/linux.mh | 2 | ||||
-rw-r--r-- | gdb/config/i386/linux.mh | 4 | ||||
-rw-r--r-- | gdb/config/i386/x86-64linux.mh | 2 | ||||
-rw-r--r-- | gdb/config/ia64/linux.mh | 2 | ||||
-rw-r--r-- | gdb/config/m68k/linux.mh | 4 | ||||
-rw-r--r-- | gdb/config/mips/linux.mh | 2 | ||||
-rw-r--r-- | gdb/config/nm-linux.h | 5 | ||||
-rw-r--r-- | gdb/config/powerpc/linux.mh | 2 | ||||
-rw-r--r-- | gdb/config/sparc/linux.mh | 2 | ||||
-rw-r--r-- | gdb/linux-proc.c | 32 |
13 files changed, 67 insertions, 11 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 5f7936b..87b2ea6 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,20 @@ +2002-01-07 Michael Snyder <msnyder@redhat.com> + + * linux-proc.c: New file. Implement child_pid_to_exec_file, + so that attaching to a pid will automatically read the process's + symbol file and shlibs. + * Makefile.in: Add rule for linux-proc.o. + * config/nm-linux.h: Define CHILD_PID_TO_EXEC_FILE. + * config/alpha/alpha-linux.mh: Add linux-proc.o to NATDEPFILES. + * config/arm/linux.mh: Ditto. + * config/i386/linux.mh: Ditto. + * config/i386/x86-64linux.mh: Ditto. + * config/ia64/linux.mh: Ditto. + * config/m68k/linux.mh: Ditto. + * config/mips/linux.mh: Ditto. + * config/powerpc/linux.mh: Ditto. + * config/sparc/linux.mh: Ditto. + 2002-01-06 Pierre Muller <muller@ics.u-strasbg.fr> * win32-nat.c: Add i386-tdep.h dependency. diff --git a/gdb/Makefile.in b/gdb/Makefile.in index 9110a80..d9b79a7 100644 --- a/gdb/Makefile.in +++ b/gdb/Makefile.in @@ -1848,6 +1848,8 @@ proc-why.o: proc-why.c $(defs_h) proc-utils.h sol-thread.o: sol-thread.c $(defs_h) $(gdbthread_h) $(target_h) $(inferior_h) \ $(gdbcmd_h) $(regcache_h) +linux-proc.o: linux-proc.c $(defs_h) + linux-thread.o: linux-thread.c $(breakpoint_h) $(gdbcmd_h) gdb_wait.h \ $(gdbthread_h) $(gdbcore_h) $(inferior_h) $(target_h) $(defs_h) diff --git a/gdb/config/alpha/alpha-linux.mh b/gdb/config/alpha/alpha-linux.mh index f698341..0fe3c48 100644 --- a/gdb/config/alpha/alpha-linux.mh +++ b/gdb/config/alpha/alpha-linux.mh @@ -2,7 +2,7 @@ XDEPFILES= XM_FILE= xm-alphalinux.h NAT_FILE= nm-linux.h -NATDEPFILES= infptrace.o inftarg.o corelow.o alpha-nat.o \ +NATDEPFILES= infptrace.o inftarg.o corelow.o alpha-nat.o linux-proc.o \ fork-child.o proc-service.o thread-db.o lin-lwp.o LOADLIBES = -ldl -rdynamic diff --git a/gdb/config/arm/linux.mh b/gdb/config/arm/linux.mh index c9e9b64..8b386fb 100644 --- a/gdb/config/arm/linux.mh +++ b/gdb/config/arm/linux.mh @@ -5,7 +5,7 @@ XDEPFILES= NAT_FILE= nm-linux.h NATDEPFILES= infptrace.o inftarg.o fork-child.o corelow.o \ - core-regset.o arm-linux-nat.o \ + core-regset.o arm-linux-nat.o linux-proc.o \ proc-service.o thread-db.o lin-lwp.o LOADLIBES= -ldl -rdynamic diff --git a/gdb/config/i386/linux.mh b/gdb/config/i386/linux.mh index 25b88b4..50d2445 100644 --- a/gdb/config/i386/linux.mh +++ b/gdb/config/i386/linux.mh @@ -4,9 +4,9 @@ XM_FILE= xm-i386.h XDEPFILES= NAT_FILE= nm-linux.h -NATDEPFILES= infptrace.o inftarg.o fork-child.o corelow.o \ +NATDEPFILES= infptrace.o inftarg.o fork-child.o corelow.o linux-proc.o \ core-aout.o i386-nat.o i386-linux-nat.o i387-nat.o \ - proc-service.o thread-db.o lin-lwp.o + proc-service.o thread-db.o lin-lwp.o linux-proc.o # The dynamically loaded libthread_db needs access to symbols in the # gdb executable. diff --git a/gdb/config/i386/x86-64linux.mh b/gdb/config/i386/x86-64linux.mh index 0bf1092..f9f31fc 100644 --- a/gdb/config/i386/x86-64linux.mh +++ b/gdb/config/i386/x86-64linux.mh @@ -6,6 +6,6 @@ XDEPFILES= NAT_FILE= nm-x86-64.h NATDEPFILES= infptrace.o inftarg.o fork-child.o corelow.o \ core-aout.o i386-nat.o x86-64-nat.o x86-64-linux-nat.o \ - i387-nat.o proc-service.o thread-db.o lin-lwp.o + i387-nat.o proc-service.o thread-db.o lin-lwp.o linux-proc.o LOADLIBES = -ldl -rdynamic diff --git a/gdb/config/ia64/linux.mh b/gdb/config/ia64/linux.mh index 00119e6..48268d7 100644 --- a/gdb/config/ia64/linux.mh +++ b/gdb/config/ia64/linux.mh @@ -5,7 +5,7 @@ XDEPFILES= NAT_FILE= nm-linux.h NATDEPFILES= infptrace.o inftarg.o fork-child.o corelow.o \ - core-aout.o core-regset.o ia64-linux-nat.o \ + core-aout.o core-regset.o ia64-linux-nat.o linux-proc.o \ proc-service.o thread-db.o lin-lwp.o LOADLIBES = -ldl -rdynamic diff --git a/gdb/config/m68k/linux.mh b/gdb/config/m68k/linux.mh index f3d40dd..aa5121b 100644 --- a/gdb/config/m68k/linux.mh +++ b/gdb/config/m68k/linux.mh @@ -5,8 +5,8 @@ XDEPFILES= NAT_FILE= nm-linux.h NATDEPFILES= infptrace.o inftarg.o fork-child.o \ - corelow.o core-aout.o m68klinux-nat.o \ - proc-service.o thread-db.o lin-lwp.o + corelow.o core-aout.o m68klinux-nat.o linux-proc.o \ + proc-service.o thread-db.o lin-lwp.o # The dynamically loaded libthread_db needs access to symbols in the # gdb executable. diff --git a/gdb/config/mips/linux.mh b/gdb/config/mips/linux.mh index 1a4b45f..47ad1ee 100644 --- a/gdb/config/mips/linux.mh +++ b/gdb/config/mips/linux.mh @@ -3,6 +3,6 @@ XDEPFILES= XM_FILE= xm-linux.h NAT_FILE= nm-linux.h NATDEPFILES= infptrace.o inftarg.o fork-child.o mips-linux-nat.o \ - thread-db.o lin-lwp.o proc-service.o + thread-db.o lin-lwp.o proc-service.o linux-proc.o LOADLIBES = -ldl -rdynamic diff --git a/gdb/config/nm-linux.h b/gdb/config/nm-linux.h index 59e5acb..84448d6 100644 --- a/gdb/config/nm-linux.h +++ b/gdb/config/nm-linux.h @@ -67,3 +67,8 @@ extern void lin_thread_get_thread_signals (sigset_t *mask); #define GDB_GREGSET_T elf_gregset_t #define GDB_FPREGSET_T elf_fpregset_t + +/* Override child_pid_to_exec_file in 'inftarg.c'. */ +#define CHILD_PID_TO_EXEC_FILE + + diff --git a/gdb/config/powerpc/linux.mh b/gdb/config/powerpc/linux.mh index 07f83bd..7f04a48 100644 --- a/gdb/config/powerpc/linux.mh +++ b/gdb/config/powerpc/linux.mh @@ -5,7 +5,7 @@ XDEPFILES= XM_CLIBS= NAT_FILE= nm-linux.h -NATDEPFILES= infptrace.o inftarg.o fork-child.o corelow.o \ +NATDEPFILES= infptrace.o inftarg.o fork-child.o corelow.o linux-proc.o \ core-regset.o ppc-linux-nat.o proc-service.o thread-db.o lin-lwp.o LOADLIBES = -ldl -rdynamic diff --git a/gdb/config/sparc/linux.mh b/gdb/config/sparc/linux.mh index 3479ecb..e63b2e6 100644 --- a/gdb/config/sparc/linux.mh +++ b/gdb/config/sparc/linux.mh @@ -5,7 +5,7 @@ XDEPFILES= NAT_FILE= nm-linux.h NATDEPFILES= fork-child.o infptrace.o inftarg.o corelow.o sparc-nat.o \ - proc-service.o thread-db.o lin-lwp.o sparc-linux-nat.o + proc-service.o thread-db.o lin-lwp.o sparc-linux-nat.o linux-proc.o # The dynamically loaded libthread_db needs access to symbols in the # gdb executable. diff --git a/gdb/linux-proc.c b/gdb/linux-proc.c new file mode 100644 index 0000000..4e25923 --- /dev/null +++ b/gdb/linux-proc.c @@ -0,0 +1,32 @@ +/* Generate a core file for the inferior process -- Linux version. + Copyright 2001 Free Software Foundation, Inc. + + This file is part of GDB. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#include "defs.h" +#include <sys/param.h> /* for MAXPATHLEN */ + +char * +child_pid_to_exec_file (int pid) +{ + static char fname[MAXPATHLEN]; + + sprintf (fname, "/proc/%d/exe", pid); + /* FIXME use readlink to get the real name. */ + return fname; +} |