- Upgrade to GDB 6.7. Drop redundant patches, forward-port remaining ones.
- Fix rereading of the main executable on its change.
This commit is contained in:
parent
cc171577b7
commit
eb9d945afa
55 changed files with 1702 additions and 7915 deletions
|
|
@ -21,11 +21,15 @@
|
|||
* remote.h: Ditto.
|
||||
* dcache.h: Ditto.
|
||||
|
||||
Index: gdb-6.6/gdb/symfile-mem.c
|
||||
2007-10-15 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
Port to GDB-6.7.
|
||||
|
||||
Index: gdb-6.7/gdb/symfile-mem.c
|
||||
===================================================================
|
||||
--- gdb-6.6.orig/gdb/symfile-mem.c 2007-01-20 16:09:05.000000000 +0100
|
||||
+++ gdb-6.6/gdb/symfile-mem.c 2007-01-20 16:09:17.000000000 +0100
|
||||
@@ -58,6 +58,14 @@
|
||||
--- gdb-6.7.orig/gdb/symfile-mem.c 2007-10-13 05:29:58.000000000 +0200
|
||||
+++ gdb-6.7/gdb/symfile-mem.c 2007-10-15 21:37:54.000000000 +0200
|
||||
@@ -56,6 +56,14 @@
|
||||
#include "elf/common.h"
|
||||
|
||||
|
||||
|
|
@ -40,7 +44,7 @@ Index: gdb-6.6/gdb/symfile-mem.c
|
|||
/* Read inferior memory at ADDR to find the header of a loaded object file
|
||||
and read its in-core symbols out of inferior memory. TEMPL is a bfd
|
||||
representing the target's format. NAME is the name to use for this
|
||||
@@ -78,7 +86,7 @@ symbol_file_add_from_memory (struct bfd
|
||||
@@ -76,7 +84,7 @@ symbol_file_add_from_memory (struct bfd
|
||||
error (_("add-symbol-file-from-memory not supported for this target"));
|
||||
|
||||
nbfd = bfd_elf_bfd_from_remote_memory (templ, addr, &loadbase,
|
||||
|
|
@ -49,11 +53,11 @@ Index: gdb-6.6/gdb/symfile-mem.c
|
|||
if (nbfd == NULL)
|
||||
error (_("Failed to read a valid object file image from memory."));
|
||||
|
||||
Index: gdb-6.6/gdb/target.c
|
||||
Index: gdb-6.7/gdb/target.c
|
||||
===================================================================
|
||||
--- gdb-6.6.orig/gdb/target.c 2007-01-20 16:09:12.000000000 +0100
|
||||
+++ gdb-6.6/gdb/target.c 2007-01-20 16:09:17.000000000 +0100
|
||||
@@ -56,7 +56,7 @@ static int nosymbol (char *, CORE_ADDR *
|
||||
--- gdb-6.7.orig/gdb/target.c 2007-10-14 23:42:39.000000000 +0200
|
||||
+++ gdb-6.7/gdb/target.c 2007-10-15 21:37:54.000000000 +0200
|
||||
@@ -55,7 +55,7 @@ static int nosymbol (char *, CORE_ADDR *
|
||||
|
||||
static void tcomplain (void) ATTR_NORETURN;
|
||||
|
||||
|
|
@ -62,7 +66,7 @@ Index: gdb-6.6/gdb/target.c
|
|||
|
||||
static int return_zero (void);
|
||||
|
||||
@@ -284,7 +284,7 @@ target_mourn_inferior (void)
|
||||
@@ -283,7 +283,7 @@ target_mourn_inferior (void)
|
||||
observer_notify_mourn_inferior (¤t_target);
|
||||
}
|
||||
|
||||
|
|
@ -71,8 +75,8 @@ Index: gdb-6.6/gdb/target.c
|
|||
nomemory (CORE_ADDR memaddr, char *myaddr, int len, int write,
|
||||
struct target_ops *t)
|
||||
{
|
||||
@@ -517,7 +517,7 @@ update_current_target (void)
|
||||
(void (*) (void))
|
||||
@@ -518,7 +518,7 @@ update_current_target (void)
|
||||
(void (*) (struct regcache *))
|
||||
noprocess);
|
||||
de_fault (deprecated_xfer_memory,
|
||||
- (int (*) (CORE_ADDR, gdb_byte *, int, int, struct mem_attrib *, struct target_ops *))
|
||||
|
|
@ -80,7 +84,7 @@ Index: gdb-6.6/gdb/target.c
|
|||
nomemory);
|
||||
de_fault (to_files_info,
|
||||
(void (*) (struct target_ops *))
|
||||
@@ -1178,7 +1178,7 @@ target_xfer_partial (struct target_ops *
|
||||
@@ -1195,7 +1195,7 @@ target_xfer_partial (struct target_ops *
|
||||
it makes no progress, and then return how much was transferred). */
|
||||
|
||||
int
|
||||
|
|
@ -89,7 +93,7 @@ Index: gdb-6.6/gdb/target.c
|
|||
{
|
||||
if (target_read (¤t_target, TARGET_OBJECT_MEMORY, NULL,
|
||||
myaddr, memaddr, len) == len)
|
||||
@@ -1188,7 +1188,7 @@ target_read_memory (CORE_ADDR memaddr, g
|
||||
@@ -1205,7 +1205,7 @@ target_read_memory (CORE_ADDR memaddr, g
|
||||
}
|
||||
|
||||
int
|
||||
|
|
@ -98,7 +102,7 @@ Index: gdb-6.6/gdb/target.c
|
|||
{
|
||||
if (target_write (¤t_target, TARGET_OBJECT_MEMORY, NULL,
|
||||
myaddr, memaddr, len) == len)
|
||||
@@ -2186,8 +2186,8 @@ debug_to_prepare_to_store (void)
|
||||
@@ -2228,8 +2228,8 @@ debug_to_prepare_to_store (struct regcac
|
||||
fprintf_unfiltered (gdb_stdlog, "target_prepare_to_store ()\n");
|
||||
}
|
||||
|
||||
|
|
@ -109,7 +113,7 @@ Index: gdb-6.6/gdb/target.c
|
|||
int write, struct mem_attrib *attrib,
|
||||
struct target_ops *target)
|
||||
{
|
||||
@@ -2197,9 +2197,9 @@ deprecated_debug_xfer_memory (CORE_ADDR
|
||||
@@ -2239,9 +2239,9 @@ deprecated_debug_xfer_memory (CORE_ADDR
|
||||
attrib, target);
|
||||
|
||||
fprintf_unfiltered (gdb_stdlog,
|
||||
|
|
@ -121,11 +125,11 @@ Index: gdb-6.6/gdb/target.c
|
|||
|
||||
if (retval > 0)
|
||||
{
|
||||
Index: gdb-6.6/gdb/target.h
|
||||
Index: gdb-6.7/gdb/target.h
|
||||
===================================================================
|
||||
--- gdb-6.6.orig/gdb/target.h 2007-01-20 16:09:10.000000000 +0100
|
||||
+++ gdb-6.6/gdb/target.h 2007-01-20 16:09:17.000000000 +0100
|
||||
@@ -347,10 +347,10 @@ struct target_ops
|
||||
--- gdb-6.7.orig/gdb/target.h 2007-10-14 23:24:52.000000000 +0200
|
||||
+++ gdb-6.7/gdb/target.h 2007-10-15 21:39:20.000000000 +0200
|
||||
@@ -351,10 +351,10 @@ struct target_ops
|
||||
NOTE: cagney/2004-10-01: This has been entirely superseeded by
|
||||
to_xfer_partial and inferior inheritance. */
|
||||
|
||||
|
|
@ -140,7 +144,7 @@ Index: gdb-6.6/gdb/target.h
|
|||
|
||||
void (*to_files_info) (struct target_ops *);
|
||||
int (*to_insert_breakpoint) (struct bp_target_info *);
|
||||
@@ -605,16 +605,17 @@ extern DCACHE *target_dcache;
|
||||
@@ -615,13 +615,14 @@ extern DCACHE *target_dcache;
|
||||
|
||||
extern int target_read_string (CORE_ADDR, char **, int, int *);
|
||||
|
||||
|
|
@ -157,46 +161,13 @@ Index: gdb-6.6/gdb/target.h
|
|||
+extern LONGEST xfer_memory (CORE_ADDR, gdb_byte *, LONGEST, int,
|
||||
+ struct mem_attrib *, struct target_ops *);
|
||||
|
||||
-extern int child_xfer_memory (CORE_ADDR, gdb_byte *, int, int,
|
||||
- struct mem_attrib *, struct target_ops *);
|
||||
+extern LONGEST child_xfer_memory (CORE_ADDR, gdb_byte *, LONGEST, int,
|
||||
+ struct mem_attrib *, struct target_ops *);
|
||||
|
||||
/* Fetches the target's memory map. If one is found it is sorted
|
||||
and returned, after some consistency checking. Otherwise, NULL
|
||||
Index: gdb-6.6/gdb/infptrace.c
|
||||
Index: gdb-6.7/gdb/dcache.c
|
||||
===================================================================
|
||||
--- gdb-6.6.orig/gdb/infptrace.c 2005-12-17 23:34:01.000000000 +0100
|
||||
+++ gdb-6.6/gdb/infptrace.c 2007-01-20 16:09:17.000000000 +0100
|
||||
@@ -331,17 +331,17 @@ store_inferior_registers (int regnum)
|
||||
deprecated_child_ops doesn't allow memory operations to cross below
|
||||
us in the target stack anyway. */
|
||||
|
||||
-int
|
||||
-child_xfer_memory (CORE_ADDR memaddr, gdb_byte *myaddr, int len, int write,
|
||||
+LONGEST
|
||||
+child_xfer_memory (CORE_ADDR memaddr, gdb_byte *myaddr, LONGEST len, int write,
|
||||
struct mem_attrib *attrib, struct target_ops *target)
|
||||
{
|
||||
- int i;
|
||||
+ LONGEST i;
|
||||
/* Round starting address down to longword boundary. */
|
||||
CORE_ADDR addr = memaddr & -(CORE_ADDR) sizeof (PTRACE_TYPE_RET);
|
||||
/* Round ending address up; get number of longwords that makes. */
|
||||
- int count = ((((memaddr + len) - addr) + sizeof (PTRACE_TYPE_RET) - 1)
|
||||
- / sizeof (PTRACE_TYPE_RET));
|
||||
- int alloc = count * sizeof (PTRACE_TYPE_RET);
|
||||
+ LONGEST count = ((((memaddr + len) - addr) + sizeof (PTRACE_TYPE_RET) - 1)
|
||||
+ / sizeof (PTRACE_TYPE_RET));
|
||||
+ LONGEST alloc = count * sizeof (PTRACE_TYPE_RET);
|
||||
PTRACE_TYPE_RET *buffer;
|
||||
struct cleanup *old_chain = NULL;
|
||||
|
||||
Index: gdb-6.6/gdb/dcache.c
|
||||
===================================================================
|
||||
--- gdb-6.6.orig/gdb/dcache.c 2006-08-15 20:46:24.000000000 +0200
|
||||
+++ gdb-6.6/gdb/dcache.c 2007-01-20 16:09:17.000000000 +0100
|
||||
@@ -519,9 +519,9 @@ dcache_free (DCACHE *dcache)
|
||||
--- gdb-6.7.orig/gdb/dcache.c 2007-08-23 20:08:28.000000000 +0200
|
||||
+++ gdb-6.7/gdb/dcache.c 2007-10-15 21:37:54.000000000 +0200
|
||||
@@ -517,9 +517,9 @@ dcache_free (DCACHE *dcache)
|
||||
|
||||
This routine is indended to be called by remote_xfer_ functions. */
|
||||
|
||||
|
|
@ -208,11 +179,11 @@ Index: gdb-6.6/gdb/dcache.c
|
|||
{
|
||||
int i;
|
||||
int (*xfunc) (DCACHE *dcache, CORE_ADDR addr, gdb_byte *ptr);
|
||||
Index: gdb-6.6/gdb/dcache.h
|
||||
Index: gdb-6.7/gdb/dcache.h
|
||||
===================================================================
|
||||
--- gdb-6.6.orig/gdb/dcache.h 2005-12-17 23:33:59.000000000 +0100
|
||||
+++ gdb-6.6/gdb/dcache.h 2007-01-20 16:09:17.000000000 +0100
|
||||
@@ -37,7 +37,7 @@ void dcache_free (DCACHE *);
|
||||
--- gdb-6.7.orig/gdb/dcache.h 2007-08-23 20:08:28.000000000 +0200
|
||||
+++ gdb-6.7/gdb/dcache.h 2007-10-15 21:37:54.000000000 +0200
|
||||
@@ -35,7 +35,7 @@ void dcache_free (DCACHE *);
|
||||
|
||||
/* Simple to call from <remote>_xfer_memory */
|
||||
|
||||
|
|
@ -222,11 +193,11 @@ Index: gdb-6.6/gdb/dcache.h
|
|||
+ LONGEST len, int should_write);
|
||||
|
||||
#endif /* DCACHE_H */
|
||||
Index: gdb-6.6/gdb/exec.c
|
||||
Index: gdb-6.7/gdb/exec.c
|
||||
===================================================================
|
||||
--- gdb-6.6.orig/gdb/exec.c 2006-11-10 20:20:35.000000000 +0100
|
||||
+++ gdb-6.6/gdb/exec.c 2007-01-20 16:09:17.000000000 +0100
|
||||
@@ -452,8 +452,8 @@ map_vmap (bfd *abfd, bfd *arch)
|
||||
--- gdb-6.7.orig/gdb/exec.c 2007-08-23 20:08:28.000000000 +0200
|
||||
+++ gdb-6.7/gdb/exec.c 2007-10-15 21:37:54.000000000 +0200
|
||||
@@ -453,8 +453,8 @@ map_vmap (bfd *abfd, bfd *arch)
|
||||
The same routine is used to handle both core and exec files;
|
||||
we just tail-call it with more arguments to select between them. */
|
||||
|
||||
|
|
@ -237,11 +208,11 @@ Index: gdb-6.6/gdb/exec.c
|
|||
struct mem_attrib *attrib, struct target_ops *target)
|
||||
{
|
||||
int res;
|
||||
Index: gdb-6.6/gdb/linux-nat.c
|
||||
Index: gdb-6.7/gdb/linux-nat.c
|
||||
===================================================================
|
||||
--- gdb-6.6.orig/gdb/linux-nat.c 2007-01-20 16:09:14.000000000 +0100
|
||||
+++ gdb-6.6/gdb/linux-nat.c 2007-01-20 16:09:17.000000000 +0100
|
||||
@@ -3266,7 +3266,7 @@ linux_xfer_partial (struct target_ops *o
|
||||
--- gdb-6.7.orig/gdb/linux-nat.c 2007-10-15 00:13:52.000000000 +0200
|
||||
+++ gdb-6.7/gdb/linux-nat.c 2007-10-15 21:37:54.000000000 +0200
|
||||
@@ -3248,7 +3248,7 @@ linux_xfer_partial (struct target_ops *o
|
||||
Revert when Bugzilla 147436 is fixed. */
|
||||
if (iterate_over_lwps (ia64_linux_check_stack_region, &range) != NULL)
|
||||
{ /* This region contains ia64 rse registers, we have to re-read. */
|
||||
|
|
@ -250,11 +221,11 @@ Index: gdb-6.6/gdb/linux-nat.c
|
|||
|
||||
/* Re-read register stack area. */
|
||||
xxfer = super_xfer_partial (ops, object, annex,
|
||||
Index: gdb-6.6/gdb/remote.c
|
||||
Index: gdb-6.7/gdb/remote.c
|
||||
===================================================================
|
||||
--- gdb-6.6.orig/gdb/remote.c 2007-01-20 16:09:12.000000000 +0100
|
||||
+++ gdb-6.6/gdb/remote.c 2007-01-20 16:09:17.000000000 +0100
|
||||
@@ -27,6 +27,7 @@
|
||||
--- gdb-6.7.orig/gdb/remote.c 2007-10-14 23:42:39.000000000 +0200
|
||||
+++ gdb-6.7/gdb/remote.c 2007-10-15 21:37:54.000000000 +0200
|
||||
@@ -25,6 +25,7 @@
|
||||
#include "gdb_string.h"
|
||||
#include <ctype.h>
|
||||
#include <fcntl.h>
|
||||
|
|
@ -262,7 +233,7 @@ Index: gdb-6.6/gdb/remote.c
|
|||
#include "inferior.h"
|
||||
#include "bfd.h"
|
||||
#include "symfile.h"
|
||||
@@ -4185,19 +4186,27 @@ remote_read_bytes (CORE_ADDR memaddr, gd
|
||||
@@ -4484,19 +4485,27 @@ remote_read_bytes (CORE_ADDR memaddr, gd
|
||||
if SHOULD_WRITE is nonzero. Returns length of data written or
|
||||
read; 0 for error. TARGET is unused. */
|
||||
|
||||
|
|
@ -293,11 +264,11 @@ Index: gdb-6.6/gdb/remote.c
|
|||
}
|
||||
|
||||
/* Sends a packet with content determined by the printf format string
|
||||
Index: gdb-6.6/gdb/remote-sim.c
|
||||
Index: gdb-6.7/gdb/remote-sim.c
|
||||
===================================================================
|
||||
--- gdb-6.6.orig/gdb/remote-sim.c 2006-11-10 20:20:36.000000000 +0100
|
||||
+++ gdb-6.6/gdb/remote-sim.c 2007-01-20 16:10:10.000000000 +0100
|
||||
@@ -745,11 +745,14 @@ gdbsim_prepare_to_store (void)
|
||||
--- gdb-6.7.orig/gdb/remote-sim.c 2007-08-23 20:08:36.000000000 +0200
|
||||
+++ gdb-6.7/gdb/remote-sim.c 2007-10-15 21:41:33.000000000 +0200
|
||||
@@ -747,11 +747,14 @@ gdbsim_prepare_to_store (struct regcache
|
||||
|
||||
Returns the number of bytes transferred. */
|
||||
|
||||
|
|
@ -314,13 +285,13 @@ Index: gdb-6.6/gdb/remote-sim.c
|
|||
/* If no program is running yet, then ignore the simulator for
|
||||
memory. Pass the request down to the next target, hopefully
|
||||
an exec file. */
|
||||
@@ -765,22 +768,22 @@ gdbsim_xfer_inferior_memory (CORE_ADDR m
|
||||
@@ -767,22 +770,22 @@ gdbsim_xfer_inferior_memory (CORE_ADDR m
|
||||
printf_filtered ("gdbsim_xfer_inferior_memory: myaddr 0x");
|
||||
gdb_print_host_address (myaddr, gdb_stdout);
|
||||
printf_filtered (", memaddr 0x%s, len %d, write %d\n",
|
||||
- paddr_nz (memaddr), len, write);
|
||||
+ paddr_nz (memaddr), xfer_len, write);
|
||||
if (sr_get_debug () && write)
|
||||
if (remote_debug && write)
|
||||
- dump_mem (myaddr, len);
|
||||
+ dump_mem (myaddr, xfer_len);
|
||||
}
|
||||
|
|
@ -333,10 +304,10 @@ Index: gdb-6.6/gdb/remote-sim.c
|
|||
else
|
||||
{
|
||||
- len = sim_read (gdbsim_desc, memaddr, myaddr, len);
|
||||
- if (sr_get_debug () && len > 0)
|
||||
- if (remote_debug && len > 0)
|
||||
- dump_mem (myaddr, len);
|
||||
+ xfer_len = sim_read (gdbsim_desc, memaddr, myaddr, xfer_len);
|
||||
+ if (sr_get_debug () && xfer_len > 0)
|
||||
+ if (remote_debug && xfer_len > 0)
|
||||
+ dump_mem (myaddr, xfer_len);
|
||||
}
|
||||
- return len;
|
||||
|
|
|
|||
Loading…
Reference in a new issue