- Upgrade to the FSF GDB gdb-6.8.50 snapshot: 6.8.50.20090910

- archer-jankratochvil-fedora12 commit:
    941eb487a42933e442cb4d11344cda96ecb8a04d
- [next-over-throw] Fix exceptions thrown during next (Tom Tromey).
- [bp_location-accel] Do not (much) slow down on 500+ breakpoints (me).
This commit is contained in:
Jan Kratochvil 2009-09-10 21:37:41 +00:00
parent 2164cdaf2a
commit 806f8c893c
16 changed files with 4138 additions and 3272 deletions

View File

@ -1 +1 @@
gdb-6.8.50.20090818.tar.bz2
gdb-6.8.50.20090910.tar.bz2

View File

@ -25,10 +25,10 @@
Port to GDB-6.7.
Index: gdb-6.8.50.20090803/gdb/symfile-mem.c
Index: gdb-6.8.50.20090909/gdb/symfile-mem.c
===================================================================
--- gdb-6.8.50.20090803.orig/gdb/symfile-mem.c 2009-08-03 16:03:00.000000000 +0200
+++ gdb-6.8.50.20090803/gdb/symfile-mem.c 2009-08-03 16:03:17.000000000 +0200
--- gdb-6.8.50.20090909.orig/gdb/symfile-mem.c 2009-07-02 19:21:06.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/symfile-mem.c 2009-09-09 19:06:57.000000000 +0200
@@ -56,6 +56,14 @@
#include "elf/common.h"
@ -53,10 +53,10 @@ Index: gdb-6.8.50.20090803/gdb/symfile-mem.c
if (nbfd == NULL)
error (_("Failed to read a valid object file image from memory."));
Index: gdb-6.8.50.20090803/gdb/target.c
Index: gdb-6.8.50.20090909/gdb/target.c
===================================================================
--- gdb-6.8.50.20090803.orig/gdb/target.c 2009-08-03 16:03:00.000000000 +0200
+++ gdb-6.8.50.20090803/gdb/target.c 2009-08-03 16:03:17.000000000 +0200
--- gdb-6.8.50.20090909.orig/gdb/target.c 2009-09-09 19:05:56.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/target.c 2009-09-09 19:08:11.000000000 +0200
@@ -59,7 +59,7 @@ static int nosymbol (char *, CORE_ADDR *
static void tcomplain (void) ATTR_NORETURN;
@ -66,7 +66,7 @@ Index: gdb-6.8.50.20090803/gdb/target.c
static int return_zero (void);
@@ -452,7 +452,7 @@ target_terminal_inferior (void)
@@ -492,7 +492,7 @@ target_terminal_inferior (void)
(*current_target.to_terminal_inferior) ();
}
@ -75,7 +75,7 @@ Index: gdb-6.8.50.20090803/gdb/target.c
nomemory (CORE_ADDR memaddr, char *myaddr, int len, int write,
struct target_ops *t)
{
@@ -670,7 +670,7 @@ update_current_target (void)
@@ -711,7 +711,7 @@ update_current_target (void)
(void (*) (struct regcache *))
noprocess);
de_fault (deprecated_xfer_memory,
@ -84,7 +84,7 @@ Index: gdb-6.8.50.20090803/gdb/target.c
nomemory);
de_fault (to_files_info,
(void (*) (struct target_ops *))
@@ -1381,7 +1381,7 @@ target_xfer_partial (struct target_ops *
@@ -1443,7 +1443,7 @@ target_xfer_partial (struct target_ops *
it makes no progress, and then return how much was transferred). */
int
@ -93,7 +93,16 @@ Index: gdb-6.8.50.20090803/gdb/target.c
{
/* Dispatch to the topmost target, not the flattened current_target.
Memory accesses check target->to_has_(all_)memory, and the
@@ -1394,7 +1394,7 @@ target_read_memory (CORE_ADDR memaddr, g
@@ -1459,7 +1459,7 @@ target_read_memory (CORE_ADDR memaddr, g
the target's stack. This may trigger different cache behavior. */
int
-target_read_stack (CORE_ADDR memaddr, gdb_byte *myaddr, int len)
+target_read_stack (CORE_ADDR memaddr, gdb_byte *myaddr, LONGEST len)
{
/* Dispatch to the topmost target, not the flattened current_target.
Memory accesses check target->to_has_(all_)memory, and the
@@ -1473,7 +1473,7 @@ target_read_stack (CORE_ADDR memaddr, gd
}
int
@ -102,7 +111,7 @@ Index: gdb-6.8.50.20090803/gdb/target.c
{
/* Dispatch to the topmost target, not the flattened current_target.
Memory accesses check target->to_has_(all_)memory, and the
@@ -2861,8 +2861,8 @@ debug_to_prepare_to_store (struct regcac
@@ -2964,8 +2964,8 @@ debug_to_prepare_to_store (struct regcac
fprintf_unfiltered (gdb_stdlog, "target_prepare_to_store ()\n");
}
@ -113,7 +122,7 @@ Index: gdb-6.8.50.20090803/gdb/target.c
int write, struct mem_attrib *attrib,
struct target_ops *target)
{
@@ -2872,8 +2872,8 @@ deprecated_debug_xfer_memory (CORE_ADDR
@@ -2975,8 +2975,8 @@ deprecated_debug_xfer_memory (CORE_ADDR
attrib, target);
fprintf_unfiltered (gdb_stdlog,
@ -124,11 +133,11 @@ Index: gdb-6.8.50.20090803/gdb/target.c
write ? "write" : "read", retval);
if (retval > 0)
Index: gdb-6.8.50.20090803/gdb/target.h
Index: gdb-6.8.50.20090909/gdb/target.h
===================================================================
--- gdb-6.8.50.20090803.orig/gdb/target.h 2009-08-03 16:03:00.000000000 +0200
+++ gdb-6.8.50.20090803/gdb/target.h 2009-08-03 16:03:17.000000000 +0200
@@ -363,10 +363,10 @@ struct target_ops
--- gdb-6.8.50.20090909.orig/gdb/target.h 2009-09-09 19:05:56.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/target.h 2009-09-09 19:07:36.000000000 +0200
@@ -366,10 +366,10 @@ struct target_ops
NOTE: cagney/2004-10-01: This has been entirely superseeded by
to_xfer_partial and inferior inheritance. */
@ -143,53 +152,58 @@ Index: gdb-6.8.50.20090803/gdb/target.h
void (*to_files_info) (struct target_ops *);
int (*to_insert_breakpoint) (struct gdbarch *, struct bp_target_info *);
@@ -675,10 +675,10 @@ extern DCACHE *target_dcache;
@@ -680,12 +680,12 @@ extern void target_dcache_invalidate (vo
extern int target_read_string (CORE_ADDR, char **, int, int *);
-extern int target_read_memory (CORE_ADDR memaddr, gdb_byte *myaddr, int len);
+extern int target_read_memory (CORE_ADDR memaddr, gdb_byte *myaddr, LONGEST len);
-extern int target_read_stack (CORE_ADDR memaddr, gdb_byte *myaddr, int len);
+extern int target_read_stack (CORE_ADDR memaddr, gdb_byte *myaddr, LONGEST len);
extern int target_write_memory (CORE_ADDR memaddr, const gdb_byte *myaddr,
- int len);
+ LONGEST len);
/* Fetches the target's memory map. If one is found it is sorted
and returned, after some consistency checking. Otherwise, NULL
Index: gdb-6.8.50.20090803/gdb/dcache.c
Index: gdb-6.8.50.20090909/gdb/dcache.c
===================================================================
--- gdb-6.8.50.20090803.orig/gdb/dcache.c 2009-08-03 16:03:00.000000000 +0200
+++ gdb-6.8.50.20090803/gdb/dcache.c 2009-08-03 16:03:17.000000000 +0200
@@ -524,9 +524,9 @@ dcache_free (DCACHE *dcache)
--- gdb-6.8.50.20090909.orig/gdb/dcache.c 2009-08-31 22:18:45.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/dcache.c 2009-09-09 19:09:21.000000000 +0200
@@ -390,10 +390,10 @@ dcache_free (DCACHE *dcache)
This routine is indended to be called by remote_xfer_ functions. */
The meaning of the result is the same as for target_write. */
-int
+LONGEST
dcache_xfer_memory (DCACHE *dcache, CORE_ADDR memaddr, gdb_byte *myaddr,
dcache_xfer_memory (struct target_ops *ops, DCACHE *dcache,
CORE_ADDR memaddr, gdb_byte *myaddr,
- int len, int should_write)
+ LONGEST len, int should_write)
{
int i;
int (*xfunc) (DCACHE *dcache, CORE_ADDR addr, gdb_byte *ptr);
Index: gdb-6.8.50.20090803/gdb/dcache.h
int res;
Index: gdb-6.8.50.20090909/gdb/dcache.h
===================================================================
--- gdb-6.8.50.20090803.orig/gdb/dcache.h 2009-08-03 16:03:00.000000000 +0200
+++ gdb-6.8.50.20090803/gdb/dcache.h 2009-08-03 16:03:17.000000000 +0200
@@ -35,7 +35,7 @@ void dcache_free (DCACHE *);
--- gdb-6.8.50.20090909.orig/gdb/dcache.h 2009-08-31 22:18:45.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/dcache.h 2009-09-09 19:08:54.000000000 +0200
@@ -35,8 +35,8 @@ void dcache_free (DCACHE *);
/* Simple to call from <remote>_xfer_memory */
-int dcache_xfer_memory (DCACHE *cache, CORE_ADDR mem, gdb_byte *my,
- int len, int should_write);
+LONGEST dcache_xfer_memory (DCACHE *cache, CORE_ADDR mem, gdb_byte *my,
+ LONGEST len, int should_write);
-int dcache_xfer_memory (struct target_ops *ops, DCACHE *cache, CORE_ADDR mem,
- gdb_byte *my, int len, int should_write);
+LONGEST dcache_xfer_memory (struct target_ops *ops, DCACHE *cache, CORE_ADDR mem,
+ gdb_byte *my, LONGEST len, int should_write);
#endif /* DCACHE_H */
Index: gdb-6.8.50.20090803/gdb/exec.c
void dcache_update (DCACHE *dcache, CORE_ADDR memaddr, gdb_byte *myaddr,
int len);
Index: gdb-6.8.50.20090909/gdb/exec.c
===================================================================
--- gdb-6.8.50.20090803.orig/gdb/exec.c 2009-08-03 16:03:00.000000000 +0200
+++ gdb-6.8.50.20090803/gdb/exec.c 2009-08-03 16:03:17.000000000 +0200
--- gdb-6.8.50.20090909.orig/gdb/exec.c 2009-07-02 19:21:06.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/exec.c 2009-09-09 19:06:57.000000000 +0200
@@ -560,7 +560,7 @@ map_vmap (bfd *abfd, bfd *arch)
}
@ -199,11 +213,11 @@ Index: gdb-6.8.50.20090803/gdb/exec.c
section_table_xfer_memory_partial (gdb_byte *readbuf, const gdb_byte *writebuf,
ULONGEST offset, LONGEST len,
struct target_section *sections,
Index: gdb-6.8.50.20090803/gdb/linux-nat.c
Index: gdb-6.8.50.20090909/gdb/linux-nat.c
===================================================================
--- gdb-6.8.50.20090803.orig/gdb/linux-nat.c 2009-08-03 16:03:00.000000000 +0200
+++ gdb-6.8.50.20090803/gdb/linux-nat.c 2009-08-03 16:03:17.000000000 +0200
@@ -4516,7 +4516,7 @@ linux_xfer_partial (struct target_ops *o
--- gdb-6.8.50.20090909.orig/gdb/linux-nat.c 2009-09-09 19:06:46.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/linux-nat.c 2009-09-09 19:06:57.000000000 +0200
@@ -4622,7 +4622,7 @@ linux_xfer_partial (struct target_ops *o
#endif
if (iterate_over_lwps (ia64_linux_check_stack_region, &range) != NULL)
{ /* This region contains ia64 rse registers, we have to re-read. */
@ -212,10 +226,10 @@ Index: gdb-6.8.50.20090803/gdb/linux-nat.c
/* Re-read register stack area. */
xxfer = super_xfer_partial (ops, object, annex,
Index: gdb-6.8.50.20090803/gdb/remote.c
Index: gdb-6.8.50.20090909/gdb/remote.c
===================================================================
--- gdb-6.8.50.20090803.orig/gdb/remote.c 2009-08-03 16:03:00.000000000 +0200
+++ gdb-6.8.50.20090803/gdb/remote.c 2009-08-03 16:03:17.000000000 +0200
--- gdb-6.8.50.20090909.orig/gdb/remote.c 2009-08-18 18:17:16.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/remote.c 2009-09-09 19:06:57.000000000 +0200
@@ -25,6 +25,7 @@
#include "gdb_string.h"
#include <ctype.h>
@ -224,7 +238,7 @@ Index: gdb-6.8.50.20090803/gdb/remote.c
#include "inferior.h"
#include "bfd.h"
#include "symfile.h"
@@ -5785,12 +5786,19 @@ handle_notification (char *buf, size_t l
@@ -5764,12 +5765,19 @@ handle_notification (char *buf, size_t l
if SHOULD_WRITE is nonzero. Returns length of data written or
read; 0 for error. TARGET is unused. */
@ -246,7 +260,7 @@ Index: gdb-6.8.50.20090803/gdb/remote.c
set_general_thread (inferior_ptid);
@@ -5799,7 +5807,7 @@ remote_xfer_memory (CORE_ADDR mem_addr,
@@ -5778,7 +5786,7 @@ remote_xfer_memory (CORE_ADDR mem_addr,
else
res = remote_read_bytes (mem_addr, buffer, mem_len);
@ -255,10 +269,10 @@ Index: gdb-6.8.50.20090803/gdb/remote.c
}
/* Sends a packet with content determined by the printf format string
Index: gdb-6.8.50.20090803/gdb/remote-sim.c
Index: gdb-6.8.50.20090909/gdb/remote-sim.c
===================================================================
--- gdb-6.8.50.20090803.orig/gdb/remote-sim.c 2009-08-03 16:03:00.000000000 +0200
+++ gdb-6.8.50.20090803/gdb/remote-sim.c 2009-08-03 16:03:17.000000000 +0200
--- gdb-6.8.50.20090909.orig/gdb/remote-sim.c 2009-07-02 19:21:06.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/remote-sim.c 2009-09-09 19:06:57.000000000 +0200
@@ -752,11 +752,14 @@ gdbsim_prepare_to_store (struct regcache
Returns the number of bytes transferred. */
@ -276,10 +290,10 @@ Index: gdb-6.8.50.20090803/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. */
Index: gdb-6.8.50.20090803/gdb/exec.h
Index: gdb-6.8.50.20090909/gdb/exec.h
===================================================================
--- gdb-6.8.50.20090803.orig/gdb/exec.h 2009-06-12 20:38:36.000000000 +0200
+++ gdb-6.8.50.20090803/gdb/exec.h 2009-08-03 16:03:57.000000000 +0200
--- gdb-6.8.50.20090909.orig/gdb/exec.h 2009-06-12 20:38:36.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/exec.h 2009-09-09 19:06:57.000000000 +0200
@@ -56,7 +56,7 @@ extern int resize_section_table (struct
One, and only one, of readbuf or writebuf must be non-NULL. */

View File

@ -26,10 +26,10 @@
Fix scan_dyntag() for binaries provided by valgrind (BZ 460319).
Index: gdb-6.8.50.20090811/gdb/amd64-tdep.c
Index: gdb-6.8.50.20090909/gdb/amd64-tdep.c
===================================================================
--- gdb-6.8.50.20090811.orig/gdb/amd64-tdep.c 2009-08-12 06:18:03.000000000 +0200
+++ gdb-6.8.50.20090811/gdb/amd64-tdep.c 2009-08-12 06:18:15.000000000 +0200
--- gdb-6.8.50.20090909.orig/gdb/amd64-tdep.c 2009-09-09 19:09:31.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/amd64-tdep.c 2009-09-09 19:24:13.000000000 +0200
@@ -36,6 +36,7 @@
#include "regcache.h"
#include "regset.h"
@ -138,10 +138,10 @@ Index: gdb-6.8.50.20090811/gdb/amd64-tdep.c
return pc;
}
Index: gdb-6.8.50.20090811/gdb/auxv.c
Index: gdb-6.8.50.20090909/gdb/auxv.c
===================================================================
--- gdb-6.8.50.20090811.orig/gdb/auxv.c 2009-08-12 06:18:03.000000000 +0200
+++ gdb-6.8.50.20090811/gdb/auxv.c 2009-08-12 06:18:15.000000000 +0200
--- gdb-6.8.50.20090909.orig/gdb/auxv.c 2009-07-02 19:25:52.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/auxv.c 2009-09-09 19:24:13.000000000 +0200
@@ -78,7 +78,7 @@ procfs_xfer_auxv (struct target_ops *ops
Return 1 if an entry was read into *TYPEP and *VALP. */
static int
@ -230,10 +230,10 @@ Index: gdb-6.8.50.20090811/gdb/auxv.c
break;
}
Index: gdb-6.8.50.20090811/gdb/auxv.h
Index: gdb-6.8.50.20090909/gdb/auxv.h
===================================================================
--- gdb-6.8.50.20090811.orig/gdb/auxv.h 2009-08-12 06:18:03.000000000 +0200
+++ gdb-6.8.50.20090811/gdb/auxv.h 2009-08-12 06:18:15.000000000 +0200
--- gdb-6.8.50.20090909.orig/gdb/auxv.h 2009-06-07 21:07:08.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/auxv.h 2009-09-09 19:24:13.000000000 +0200
@@ -31,14 +31,14 @@
Return 1 if an entry was read into *TYPEP and *VALP. */
extern int target_auxv_parse (struct target_ops *ops,
@ -251,11 +251,11 @@ Index: gdb-6.8.50.20090811/gdb/auxv.h
/* Print the contents of the target's AUXV on the specified file. */
extern int fprint_target_auxv (struct ui_file *file, struct target_ops *ops);
Index: gdb-6.8.50.20090811/gdb/dwarf2read.c
Index: gdb-6.8.50.20090909/gdb/dwarf2read.c
===================================================================
--- gdb-6.8.50.20090811.orig/gdb/dwarf2read.c 2009-08-12 06:18:03.000000000 +0200
+++ gdb-6.8.50.20090811/gdb/dwarf2read.c 2009-08-12 06:18:15.000000000 +0200
@@ -1653,7 +1653,7 @@ dwarf2_build_psymtabs (struct objfile *o
--- gdb-6.8.50.20090909.orig/gdb/dwarf2read.c 2009-09-09 19:21:23.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/dwarf2read.c 2009-09-09 19:24:13.000000000 +0200
@@ -1719,7 +1719,7 @@ dwarf2_build_psymtabs (struct objfile *o
dwarf2_read_section (objfile, &dwarf2_per_objfile->eh_frame);
dwarf2_read_section (objfile, &dwarf2_per_objfile->frame);
@ -264,10 +264,10 @@ Index: gdb-6.8.50.20090811/gdb/dwarf2read.c
|| (objfile->global_psymbols.size == 0
&& objfile->static_psymbols.size == 0))
{
Index: gdb-6.8.50.20090811/gdb/elfread.c
Index: gdb-6.8.50.20090909/gdb/elfread.c
===================================================================
--- gdb-6.8.50.20090811.orig/gdb/elfread.c 2009-08-12 06:18:03.000000000 +0200
+++ gdb-6.8.50.20090811/gdb/elfread.c 2009-08-12 06:18:15.000000000 +0200
--- gdb-6.8.50.20090909.orig/gdb/elfread.c 2009-09-09 19:05:55.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/elfread.c 2009-09-09 19:24:13.000000000 +0200
@@ -681,7 +681,7 @@ elf_symfile_read (struct objfile *objfil
/* If we are reinitializing, or if we have never loaded syms yet,
set table to empty. MAINLINE is cleared so that *_read_psymtab
@ -277,11 +277,11 @@ Index: gdb-6.8.50.20090811/gdb/elfread.c
{
init_psymbol_list (objfile, 0);
mainline = 0;
Index: gdb-6.8.50.20090811/gdb/infrun.c
Index: gdb-6.8.50.20090909/gdb/infrun.c
===================================================================
--- gdb-6.8.50.20090811.orig/gdb/infrun.c 2009-08-12 06:18:03.000000000 +0200
+++ gdb-6.8.50.20090811/gdb/infrun.c 2009-08-12 06:18:15.000000000 +0200
@@ -3531,6 +3531,10 @@ infrun: BPSTAT_WHAT_SET_LONGJMP_RESUME (
--- gdb-6.8.50.20090909.orig/gdb/infrun.c 2009-09-09 19:09:31.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/infrun.c 2009-09-09 19:24:13.000000000 +0200
@@ -3602,6 +3602,10 @@ infrun: BPSTAT_WHAT_SET_LONGJMP_RESUME (
#endif
target_terminal_inferior ();
@ -292,10 +292,10 @@ Index: gdb-6.8.50.20090811/gdb/infrun.c
/* If requested, stop when the dynamic linker notifies
gdb of events. This allows the user to get control
and place breakpoints in initializer routines for
Index: gdb-6.8.50.20090811/gdb/objfiles.c
Index: gdb-6.8.50.20090909/gdb/objfiles.c
===================================================================
--- gdb-6.8.50.20090811.orig/gdb/objfiles.c 2009-08-12 06:18:03.000000000 +0200
+++ gdb-6.8.50.20090811/gdb/objfiles.c 2009-08-12 06:18:15.000000000 +0200
--- gdb-6.8.50.20090909.orig/gdb/objfiles.c 2009-09-09 19:23:05.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/objfiles.c 2009-09-09 19:24:13.000000000 +0200
@@ -51,6 +51,9 @@
#include "arch-utils.h"
#include "exec.h"
@ -334,10 +334,10 @@ Index: gdb-6.8.50.20090811/gdb/objfiles.c
/* Before the symbol table code was redone to make it easier to
selectively load and remove information particular to a specific
linkage unit, gdb used to do these things whenever the monolithic
Index: gdb-6.8.50.20090811/gdb/solib-svr4.c
Index: gdb-6.8.50.20090909/gdb/solib-svr4.c
===================================================================
--- gdb-6.8.50.20090811.orig/gdb/solib-svr4.c 2009-08-12 06:18:03.000000000 +0200
+++ gdb-6.8.50.20090811/gdb/solib-svr4.c 2009-08-12 06:36:58.000000000 +0200
--- gdb-6.8.50.20090909.orig/gdb/solib-svr4.c 2009-09-09 19:09:35.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/solib-svr4.c 2009-09-09 19:24:13.000000000 +0200
@@ -47,6 +47,7 @@
#include "exec.h"
#include "auxv.h"
@ -1000,11 +1000,11 @@ Index: gdb-6.8.50.20090811/gdb/solib-svr4.c
+ add_info ("linkmap", info_linkmap_command,
+ "Display the inferior's linkmap.");
}
Index: gdb-6.8.50.20090811/gdb/solib.c
Index: gdb-6.8.50.20090909/gdb/solib.c
===================================================================
--- gdb-6.8.50.20090811.orig/gdb/solib.c 2009-08-12 06:18:03.000000000 +0200
+++ gdb-6.8.50.20090811/gdb/solib.c 2009-08-12 06:18:15.000000000 +0200
@@ -81,6 +81,8 @@ set_solib_ops (struct gdbarch *gdbarch,
--- gdb-6.8.50.20090909.orig/gdb/solib.c 2009-09-09 19:05:56.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/solib.c 2009-09-09 19:25:18.000000000 +0200
@@ -82,6 +82,8 @@ set_solib_ops (struct gdbarch *gdbarch,
/* external data declarations */
@ -1013,7 +1013,7 @@ Index: gdb-6.8.50.20090811/gdb/solib.c
/* FIXME: gdbarch needs to control this variable, or else every
configuration needs to call set_solib_ops. */
struct target_so_ops *current_target_so_ops;
@@ -104,6 +106,8 @@ The search path for loading non-absolute
@@ -105,6 +107,8 @@ The search path for loading non-absolute
value);
}
@ -1060,10 +1060,10 @@ Index: gdb-6.8.50.20090811/gdb/solib.c
+ else
+ so->objfile = symbol_file_add_from_bfd (so->abfd, flags, sap, OBJF_SHARED);
+
p_refcount = xmalloc (sizeof (*p_refcount));
*p_refcount = 2; /* Both solib and objfile refer to this abfd. */
bfd_usrdata (so->abfd) = p_refcount;
@@ -600,6 +628,10 @@ update_solib_list (int from_tty, struct
free_section_addr_info (sap);
return;
@@ -596,6 +624,10 @@ update_solib_list (int from_tty, struct
}
else
{
@ -1074,7 +1074,7 @@ Index: gdb-6.8.50.20090811/gdb/solib.c
if (! strcmp (gdb->so_original_name, i->so_original_name))
break;
}
@@ -654,18 +686,7 @@ update_solib_list (int from_tty, struct
@@ -650,18 +682,7 @@ update_solib_list (int from_tty, struct
/* Fill in the rest of each of the `struct so_list' nodes. */
for (i = inferior; i; i = i->next)
{
@ -1094,7 +1094,7 @@ Index: gdb-6.8.50.20090811/gdb/solib.c
/* Notify any observer that the shared object has been
loaded now that we've added it to GDB's tables. */
@@ -775,6 +796,32 @@ solib_add (char *pattern, int from_tty,
@@ -771,6 +792,32 @@ solib_add (char *pattern, int from_tty,
}
}
@ -1127,7 +1127,7 @@ Index: gdb-6.8.50.20090811/gdb/solib.c
/*
@@ -1128,4 +1175,12 @@ This takes precedence over the environme
@@ -1189,4 +1236,12 @@ This takes precedence over the environme
reload_shared_libraries,
show_solib_search_path,
&setlist, &showlist);
@ -1140,10 +1140,10 @@ Index: gdb-6.8.50.20090811/gdb/solib.c
+ NULL, NULL,
+ &setdebuglist, &showdebuglist);
}
Index: gdb-6.8.50.20090811/gdb/solist.h
Index: gdb-6.8.50.20090909/gdb/solist.h
===================================================================
--- gdb-6.8.50.20090811.orig/gdb/solist.h 2009-08-12 06:18:03.000000000 +0200
+++ gdb-6.8.50.20090811/gdb/solist.h 2009-08-12 06:18:15.000000000 +0200
--- gdb-6.8.50.20090909.orig/gdb/solist.h 2009-09-09 19:05:56.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/solist.h 2009-09-09 19:24:13.000000000 +0200
@@ -61,6 +61,8 @@ struct so_list
bfd *abfd;
char symbols_loaded; /* flag: symbols read in yet? */
@ -1164,10 +1164,10 @@ Index: gdb-6.8.50.20090811/gdb/solist.h
+extern int debug_solib;
+
#endif
Index: gdb-6.8.50.20090811/gdb/symfile-mem.c
Index: gdb-6.8.50.20090909/gdb/symfile-mem.c
===================================================================
--- gdb-6.8.50.20090811.orig/gdb/symfile-mem.c 2009-08-12 06:13:20.000000000 +0200
+++ gdb-6.8.50.20090811/gdb/symfile-mem.c 2009-08-12 06:18:15.000000000 +0200
--- gdb-6.8.50.20090909.orig/gdb/symfile-mem.c 2009-09-09 19:06:57.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/symfile-mem.c 2009-09-09 19:24:13.000000000 +0200
@@ -115,7 +115,7 @@ symbol_file_add_from_memory (struct bfd
++i;
}
@ -1177,10 +1177,10 @@ Index: gdb-6.8.50.20090811/gdb/symfile-mem.c
sai, OBJF_SHARED);
/* This might change our ideas about frames already looked at. */
Index: gdb-6.8.50.20090811/gdb/symfile.c
Index: gdb-6.8.50.20090909/gdb/symfile.c
===================================================================
--- gdb-6.8.50.20090811.orig/gdb/symfile.c 2009-08-12 06:18:03.000000000 +0200
+++ gdb-6.8.50.20090811/gdb/symfile.c 2009-08-12 06:18:15.000000000 +0200
--- gdb-6.8.50.20090909.orig/gdb/symfile.c 2009-09-09 19:15:43.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/symfile.c 2009-09-09 19:24:13.000000000 +0200
@@ -49,6 +49,7 @@
#include "readline/readline.h"
#include "gdb_assert.h"
@ -1189,7 +1189,7 @@ Index: gdb-6.8.50.20090811/gdb/symfile.c
#include "observer.h"
#include "exec.h"
#include "parser-defs.h"
@@ -786,7 +787,7 @@ syms_from_objfile (struct objfile *objfi
@@ -779,7 +780,7 @@ syms_from_objfile (struct objfile *objfi
/* Now either addrs or offsets is non-zero. */
@ -1198,7 +1198,7 @@ Index: gdb-6.8.50.20090811/gdb/symfile.c
{
/* We will modify the main symbol table, make sure that all its users
will be cleaned up if an error occurs during symbol reading. */
@@ -814,7 +815,7 @@ syms_from_objfile (struct objfile *objfi
@@ -807,7 +808,7 @@ syms_from_objfile (struct objfile *objfi
We no longer warn if the lowest section is not a text segment (as
happens for the PA64 port. */
@ -1207,7 +1207,7 @@ Index: gdb-6.8.50.20090811/gdb/symfile.c
{
asection *lower_sect;
asection *sect;
@@ -897,7 +898,7 @@ syms_from_objfile (struct objfile *objfi
@@ -890,7 +891,7 @@ syms_from_objfile (struct objfile *objfi
init_objfile_sect_indices (objfile);
}
@ -1216,7 +1216,7 @@ Index: gdb-6.8.50.20090811/gdb/symfile.c
/* Discard cleanups as symbol reading was successful. */
@@ -916,17 +917,22 @@ new_symfile_objfile (struct objfile *obj
@@ -909,17 +910,22 @@ new_symfile_objfile (struct objfile *obj
/* If this is the main symbol file we have to clean up all users of the
old main symbol file. Otherwise it is sufficient to fixup all the
breakpoints that may have been redefined by this symbol file. */
@ -1241,7 +1241,7 @@ Index: gdb-6.8.50.20090811/gdb/symfile.c
/* We're done reading the symbol file; finish off complaints. */
clear_complaints (&symfile_complaints, 0, add_flags & SYMFILE_VERBOSE);
@@ -980,7 +986,7 @@ symbol_file_add_with_addrs_or_offsets (b
@@ -973,7 +979,7 @@ symbol_file_add_with_addrs_or_offsets (b
/* Give user a chance to burp if we'd be
interactively wiping out any existing symbols. */
@ -1250,7 +1250,7 @@ Index: gdb-6.8.50.20090811/gdb/symfile.c
&& (have_full_symbols () || have_partial_symbols ())
&& from_tty
&& (have_full_symbols () || have_partial_symbols ())
@@ -1181,6 +1187,9 @@ symbol_file_clear (int from_tty)
@@ -1162,6 +1168,9 @@ symbol_file_clear (int from_tty)
symfile_objfile->name)
: !query (_("Discard symbol table? "))))
error (_("Not confirmed."));
@ -1260,7 +1260,7 @@ Index: gdb-6.8.50.20090811/gdb/symfile.c
free_all_objfiles ();
@@ -3385,6 +3394,8 @@ reread_symbols (void)
@@ -3369,6 +3378,8 @@ reread_symbols (void)
/* Discard cleanups as symbol reading was successful. */
discard_cleanups (old_cleanups);
@ -1269,11 +1269,11 @@ Index: gdb-6.8.50.20090811/gdb/symfile.c
/* If the mtime has changed between the time we set new_modtime
and now, we *want* this to be out of date, so don't call stat
again now. */
Index: gdb-6.8.50.20090811/gdb/target.h
Index: gdb-6.8.50.20090909/gdb/target.h
===================================================================
--- gdb-6.8.50.20090811.orig/gdb/target.h 2009-08-12 06:18:03.000000000 +0200
+++ gdb-6.8.50.20090811/gdb/target.h 2009-08-12 06:18:15.000000000 +0200
@@ -524,7 +524,7 @@ struct target_ops
--- gdb-6.8.50.20090909.orig/gdb/target.h 2009-09-09 19:07:36.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/target.h 2009-09-09 19:24:13.000000000 +0200
@@ -528,7 +528,7 @@ struct target_ops
Return -1 if there is insufficient buffer for a whole entry.
Return 1 if an entry was read into *TYPEP and *VALP. */
int (*to_auxv_parse) (struct target_ops *ops, gdb_byte **readptr,
@ -1282,10 +1282,10 @@ Index: gdb-6.8.50.20090811/gdb/target.h
/* Search SEARCH_SPACE_LEN bytes beginning at START_ADDR for the
sequence of bytes in PATTERN with length PATTERN_LEN.
Index: gdb-6.8.50.20090811/gdb/symfile.h
Index: gdb-6.8.50.20090909/gdb/symfile.h
===================================================================
--- gdb-6.8.50.20090811.orig/gdb/symfile.h 2009-08-12 06:13:20.000000000 +0200
+++ gdb-6.8.50.20090811/gdb/symfile.h 2009-08-12 06:18:15.000000000 +0200
--- gdb-6.8.50.20090909.orig/gdb/symfile.h 2009-09-09 19:15:43.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/symfile.h 2009-09-09 19:24:13.000000000 +0200
@@ -229,7 +229,13 @@ enum symfile_add_flags
SYMFILE_MAINLINE = 1 << 2,
@ -1301,11 +1301,11 @@ Index: gdb-6.8.50.20090811/gdb/symfile.h
};
extern void syms_from_objfile (struct objfile *,
Index: gdb-6.8.50.20090811/gdb/infcmd.c
Index: gdb-6.8.50.20090909/gdb/infcmd.c
===================================================================
--- gdb-6.8.50.20090811.orig/gdb/infcmd.c 2009-08-12 06:09:14.000000000 +0200
+++ gdb-6.8.50.20090811/gdb/infcmd.c 2009-08-12 06:47:58.000000000 +0200
@@ -2276,6 +2276,9 @@ attach_command_post_wait (char *args, in
--- gdb-6.8.50.20090909.orig/gdb/infcmd.c 2009-09-09 19:20:33.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/infcmd.c 2009-09-09 19:24:13.000000000 +0200
@@ -2308,6 +2308,9 @@ attach_command_post_wait (char *args, in
post_create_inferior (&current_target, from_tty);
@ -1315,10 +1315,10 @@ Index: gdb-6.8.50.20090811/gdb/infcmd.c
/* Install inferior's terminal modes. */
target_terminal_inferior ();
Index: gdb-6.8.50.20090811/gdb/linux-tdep.c
Index: gdb-6.8.50.20090909/gdb/linux-tdep.c
===================================================================
--- gdb-6.8.50.20090811.orig/gdb/linux-tdep.c 2009-08-04 22:41:13.000000000 +0200
+++ gdb-6.8.50.20090811/gdb/linux-tdep.c 2009-08-12 06:43:27.000000000 +0200
--- gdb-6.8.50.20090909.orig/gdb/linux-tdep.c 2009-08-04 22:41:13.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/linux-tdep.c 2009-09-09 19:24:13.000000000 +0200
@@ -163,5 +163,7 @@ in this session.\n"));
void
_initialize_linux_tdep (void)

View File

@ -1,7 +1,7 @@
Index: gdb-6.8.50.20090802/gdb/testsuite/configure.ac
Index: gdb-6.8.50.20090909/gdb/testsuite/configure.ac
===================================================================
--- gdb-6.8.50.20090802.orig/gdb/testsuite/configure.ac 2009-07-31 17:38:16.000000000 +0200
+++ gdb-6.8.50.20090802/gdb/testsuite/configure.ac 2009-08-03 11:10:45.000000000 +0200
--- gdb-6.8.50.20090909.orig/gdb/testsuite/configure.ac 2009-07-31 17:38:16.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/testsuite/configure.ac 2009-09-09 19:06:01.000000000 +0200
@@ -144,6 +144,6 @@ AC_OUTPUT([Makefile \
gdb.cp/Makefile gdb.disasm/Makefile gdb.dwarf2/Makefile \
gdb.fortran/Makefile gdb.server/Makefile \
@ -10,31 +10,31 @@ Index: gdb-6.8.50.20090802/gdb/testsuite/configure.ac
+ gdb.objc/Makefile gdb.opt/Makefile gdb.pascal/Makefile gdb.pie/Makefile \
gdb.python/Makefile gdb.reverse/Makefile \
gdb.threads/Makefile gdb.trace/Makefile gdb.xml/Makefile])
Index: gdb-6.8.50.20090802/gdb/testsuite/configure
Index: gdb-6.8.50.20090909/gdb/testsuite/configure
===================================================================
--- gdb-6.8.50.20090802.orig/gdb/testsuite/configure 2009-07-31 17:38:16.000000000 +0200
+++ gdb-6.8.50.20090802/gdb/testsuite/configure 2009-08-03 11:11:27.000000000 +0200
@@ -3239,7 +3239,7 @@ done
--- gdb-6.8.50.20090909.orig/gdb/testsuite/configure 2009-08-22 18:56:43.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/testsuite/configure 2009-09-09 19:06:27.000000000 +0200
@@ -3515,7 +3515,7 @@ done
- ac_config_files="$ac_config_files Makefile gdb.ada/Makefile gdb.arch/Makefile gdb.asm/Makefile gdb.base/Makefile gdb.cp/Makefile gdb.disasm/Makefile gdb.dwarf2/Makefile gdb.fortran/Makefile gdb.server/Makefile gdb.java/Makefile gdb.mi/Makefile gdb.modula2/Makefile gdb.objc/Makefile gdb.opt/Makefile gdb.pascal/Makefile gdb.python/Makefile gdb.reverse/Makefile gdb.threads/Makefile gdb.trace/Makefile gdb.xml/Makefile"
+ ac_config_files="$ac_config_files Makefile gdb.ada/Makefile gdb.arch/Makefile gdb.asm/Makefile gdb.base/Makefile gdb.cp/Makefile gdb.disasm/Makefile gdb.dwarf2/Makefile gdb.fortran/Makefile gdb.server/Makefile gdb.java/Makefile gdb.mi/Makefile gdb.modula2/Makefile gdb.objc/Makefile gdb.opt/Makefile gdb.pascal/Makefile gdb.pie/Makefile gdb.python/Makefile gdb.reverse/Makefile gdb.threads/Makefile gdb.trace/Makefile gdb.xml/Makefile"
-ac_config_files="$ac_config_files Makefile gdb.ada/Makefile gdb.arch/Makefile gdb.asm/Makefile gdb.base/Makefile gdb.cp/Makefile gdb.disasm/Makefile gdb.dwarf2/Makefile gdb.fortran/Makefile gdb.server/Makefile gdb.java/Makefile gdb.mi/Makefile gdb.modula2/Makefile gdb.objc/Makefile gdb.opt/Makefile gdb.pascal/Makefile gdb.python/Makefile gdb.reverse/Makefile gdb.threads/Makefile gdb.trace/Makefile gdb.xml/Makefile"
+ac_config_files="$ac_config_files Makefile gdb.ada/Makefile gdb.arch/Makefile gdb.asm/Makefile gdb.base/Makefile gdb.cp/Makefile gdb.disasm/Makefile gdb.dwarf2/Makefile gdb.fortran/Makefile gdb.server/Makefile gdb.java/Makefile gdb.mi/Makefile gdb.modula2/Makefile gdb.objc/Makefile gdb.opt/Makefile gdb.pascal/Makefile gdb.pie/Makefile gdb.python/Makefile gdb.reverse/Makefile gdb.threads/Makefile gdb.trace/Makefile gdb.xml/Makefile"
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
# tests run on this system so they can be shared between configure
@@ -3813,6 +3813,7 @@ do
"gdb.objc/Makefile" ) CONFIG_FILES="$CONFIG_FILES gdb.objc/Makefile" ;;
"gdb.opt/Makefile" ) CONFIG_FILES="$CONFIG_FILES gdb.opt/Makefile" ;;
"gdb.pascal/Makefile" ) CONFIG_FILES="$CONFIG_FILES gdb.pascal/Makefile" ;;
+ "gdb.pie/Makefile" ) CONFIG_FILES="$CONFIG_FILES gdb.pie/Makefile" ;;
"gdb.python/Makefile" ) CONFIG_FILES="$CONFIG_FILES gdb.python/Makefile" ;;
"gdb.reverse/Makefile" ) CONFIG_FILES="$CONFIG_FILES gdb.reverse/Makefile" ;;
"gdb.threads/Makefile" ) CONFIG_FILES="$CONFIG_FILES gdb.threads/Makefile" ;;
Index: gdb-6.8.50.20090802/gdb/testsuite/gdb.pie/attach.c
@@ -4231,6 +4231,7 @@ do
"gdb.objc/Makefile") CONFIG_FILES="$CONFIG_FILES gdb.objc/Makefile" ;;
"gdb.opt/Makefile") CONFIG_FILES="$CONFIG_FILES gdb.opt/Makefile" ;;
"gdb.pascal/Makefile") CONFIG_FILES="$CONFIG_FILES gdb.pascal/Makefile" ;;
+ "gdb.pie/Makefile") CONFIG_FILES="$CONFIG_FILES gdb.pie/Makefile" ;;
"gdb.python/Makefile") CONFIG_FILES="$CONFIG_FILES gdb.python/Makefile" ;;
"gdb.reverse/Makefile") CONFIG_FILES="$CONFIG_FILES gdb.reverse/Makefile" ;;
"gdb.threads/Makefile") CONFIG_FILES="$CONFIG_FILES gdb.threads/Makefile" ;;
Index: gdb-6.8.50.20090909/gdb/testsuite/gdb.pie/attach.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-6.8.50.20090802/gdb/testsuite/gdb.pie/attach.c 2009-08-03 11:10:12.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/testsuite/gdb.pie/attach.c 2009-09-09 19:06:01.000000000 +0200
@@ -0,0 +1,20 @@
+/* This program is intended to be started outside of gdb, and then
+ attached to by gdb. Thus, it simply spins in a loop. The loop
@ -56,10 +56,10 @@ Index: gdb-6.8.50.20090802/gdb/testsuite/gdb.pie/attach.c
+ }
+ return 0;
+}
Index: gdb-6.8.50.20090802/gdb/testsuite/gdb.pie/attach2.c
Index: gdb-6.8.50.20090909/gdb/testsuite/gdb.pie/attach2.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-6.8.50.20090802/gdb/testsuite/gdb.pie/attach2.c 2009-08-03 11:10:12.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/testsuite/gdb.pie/attach2.c 2009-09-09 19:06:01.000000000 +0200
@@ -0,0 +1,24 @@
+/* This program is intended to be started outside of gdb, and then
+ attached to by gdb. Thus, it simply spins in a loop. The loop
@ -85,10 +85,10 @@ Index: gdb-6.8.50.20090802/gdb/testsuite/gdb.pie/attach2.c
+ }
+ return (0);
+}
Index: gdb-6.8.50.20090802/gdb/testsuite/gdb.pie/break.c
Index: gdb-6.8.50.20090909/gdb/testsuite/gdb.pie/break.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-6.8.50.20090802/gdb/testsuite/gdb.pie/break.c 2009-08-03 11:10:12.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/testsuite/gdb.pie/break.c 2009-09-09 19:06:01.000000000 +0200
@@ -0,0 +1,146 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@ -236,10 +236,10 @@ Index: gdb-6.8.50.20090802/gdb/testsuite/gdb.pie/break.c
+ }
+ return 0;
+}
Index: gdb-6.8.50.20090802/gdb/testsuite/gdb.pie/break1.c
Index: gdb-6.8.50.20090909/gdb/testsuite/gdb.pie/break1.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-6.8.50.20090802/gdb/testsuite/gdb.pie/break1.c 2009-08-03 11:10:12.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/testsuite/gdb.pie/break1.c 2009-09-09 19:06:01.000000000 +0200
@@ -0,0 +1,44 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@ -285,10 +285,10 @@ Index: gdb-6.8.50.20090802/gdb/testsuite/gdb.pie/break1.c
+void marker3 (a, b) char *a, *b; {} /* set breakpoint 18 here */
+void marker4 (d) long d; {} /* set breakpoint 13 here */
+#endif
Index: gdb-6.8.50.20090802/gdb/testsuite/gdb.pie/coremaker.c
Index: gdb-6.8.50.20090909/gdb/testsuite/gdb.pie/coremaker.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-6.8.50.20090802/gdb/testsuite/gdb.pie/coremaker.c 2009-08-03 11:10:12.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/testsuite/gdb.pie/coremaker.c 2009-09-09 19:06:01.000000000 +0200
@@ -0,0 +1,142 @@
+/* Copyright 1992, 1993, 1994, 1995, 1996, 1999
+ Free Software Foundation, Inc.
@ -432,10 +432,10 @@ Index: gdb-6.8.50.20090802/gdb/testsuite/gdb.pie/coremaker.c
+ return 0;
+}
+
Index: gdb-6.8.50.20090802/gdb/testsuite/gdb.pie/attach.exp
Index: gdb-6.8.50.20090909/gdb/testsuite/gdb.pie/attach.exp
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-6.8.50.20090802/gdb/testsuite/gdb.pie/attach.exp 2009-08-03 11:10:12.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/testsuite/gdb.pie/attach.exp 2009-09-09 19:06:01.000000000 +0200
@@ -0,0 +1,432 @@
+# Copyright 1997, 1999, 2002 Free Software Foundation, Inc.
+
@ -869,10 +869,10 @@ Index: gdb-6.8.50.20090802/gdb/testsuite/gdb.pie/attach.exp
+do_call_attach_tests
+
+return 0
Index: gdb-6.8.50.20090802/gdb/testsuite/gdb.pie/break.exp
Index: gdb-6.8.50.20090909/gdb/testsuite/gdb.pie/break.exp
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-6.8.50.20090802/gdb/testsuite/gdb.pie/break.exp 2009-08-03 11:10:12.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/testsuite/gdb.pie/break.exp 2009-09-09 19:06:01.000000000 +0200
@@ -0,0 +1,977 @@
+# Copyright 1988, 1990, 1991, 1992, 1994, 1995, 1996, 1997, 1998, 1999,
+# 2000, 2002, 2003, 2004
@ -1851,10 +1851,10 @@ Index: gdb-6.8.50.20090802/gdb/testsuite/gdb.pie/break.exp
+ send_gdb "set args main\n"
+ gdb_expect -re ".*$gdb_prompt $" {}
+}
Index: gdb-6.8.50.20090802/gdb/testsuite/gdb.pie/corefile.exp
Index: gdb-6.8.50.20090909/gdb/testsuite/gdb.pie/corefile.exp
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-6.8.50.20090802/gdb/testsuite/gdb.pie/corefile.exp 2009-08-03 11:10:12.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/testsuite/gdb.pie/corefile.exp 2009-09-09 19:06:01.000000000 +0200
@@ -0,0 +1,243 @@
+# Copyright 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000
+# Free Software Foundation, Inc.
@ -2099,10 +2099,10 @@ Index: gdb-6.8.50.20090802/gdb/testsuite/gdb.pie/corefile.exp
+gdb_test "up" "#\[0-9\]* *\[0-9xa-fH'\]* in .* \\(\\).*" "up in corefile.exp (reinit)"
+
+gdb_test "core" "No core file now."
Index: gdb-6.8.50.20090802/gdb/testsuite/gdb.pie/Makefile.in
Index: gdb-6.8.50.20090909/gdb/testsuite/gdb.pie/Makefile.in
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-6.8.50.20090802/gdb/testsuite/gdb.pie/Makefile.in 2009-08-03 11:10:12.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/testsuite/gdb.pie/Makefile.in 2009-09-09 19:06:01.000000000 +0200
@@ -0,0 +1,19 @@
+VPATH = @srcdir@
+srcdir = @srcdir@

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
Index: gdb-6.8.50.20090818/gdb/corelow.c
Index: gdb-6.8.50.20090909/gdb/corelow.c
===================================================================
--- gdb-6.8.50.20090818.orig/gdb/corelow.c 2009-07-31 17:25:21.000000000 +0200
+++ gdb-6.8.50.20090818/gdb/corelow.c 2009-08-18 21:07:23.000000000 +0200
--- gdb-6.8.50.20090909.orig/gdb/corelow.c 2009-07-31 17:25:21.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/corelow.c 2009-09-09 19:09:35.000000000 +0200
@@ -45,6 +45,10 @@
#include "exceptions.h"
#include "solib.h"
@ -89,11 +89,11 @@ Index: gdb-6.8.50.20090818/gdb/corelow.c
+ NULL, NULL, NULL,
+ &setlist, &showlist);
}
Index: gdb-6.8.50.20090818/gdb/doc/gdb.texinfo
Index: gdb-6.8.50.20090909/gdb/doc/gdb.texinfo
===================================================================
--- gdb-6.8.50.20090818.orig/gdb/doc/gdb.texinfo 2009-08-18 21:07:05.000000000 +0200
+++ gdb-6.8.50.20090818/gdb/doc/gdb.texinfo 2009-08-18 21:07:23.000000000 +0200
@@ -13733,6 +13733,27 @@ information files.
--- gdb-6.8.50.20090909.orig/gdb/doc/gdb.texinfo 2009-09-09 19:09:31.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/doc/gdb.texinfo 2009-09-09 19:09:35.000000000 +0200
@@ -13764,6 +13764,27 @@ information files.
@end table
@ -121,10 +121,10 @@ Index: gdb-6.8.50.20090818/gdb/doc/gdb.texinfo
@cindex @code{.gnu_debuglink} sections
@cindex debug link sections
A debug link is a special section of the executable file named
Index: gdb-6.8.50.20090818/gdb/solib-svr4.c
Index: gdb-6.8.50.20090909/gdb/solib-svr4.c
===================================================================
--- gdb-6.8.50.20090818.orig/gdb/solib-svr4.c 2009-08-18 21:07:04.000000000 +0200
+++ gdb-6.8.50.20090818/gdb/solib-svr4.c 2009-08-18 21:07:23.000000000 +0200
--- gdb-6.8.50.20090909.orig/gdb/solib-svr4.c 2009-09-09 19:05:56.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/solib-svr4.c 2009-09-09 19:09:35.000000000 +0200
@@ -1101,9 +1101,33 @@ svr4_current_sos (void)
safe_strerror (errcode));
else
@ -162,10 +162,10 @@ Index: gdb-6.8.50.20090818/gdb/solib-svr4.c
}
xfree (buffer);
Index: gdb-6.8.50.20090818/gdb/symfile.c
Index: gdb-6.8.50.20090909/gdb/symfile.c
===================================================================
--- gdb-6.8.50.20090818.orig/gdb/symfile.c 2009-08-18 21:07:05.000000000 +0200
+++ gdb-6.8.50.20090818/gdb/symfile.c 2009-08-18 21:08:31.000000000 +0200
--- gdb-6.8.50.20090909.orig/gdb/symfile.c 2009-09-09 19:09:31.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/symfile.c 2009-09-09 19:09:55.000000000 +0200
@@ -56,6 +56,7 @@
#include "elf-bfd.h"
#include "solib.h"
@ -174,7 +174,7 @@ Index: gdb-6.8.50.20090818/gdb/symfile.c
#include <sys/types.h>
#include <fcntl.h>
@@ -1193,16 +1194,65 @@ symbol_file_clear (int from_tty)
@@ -1174,16 +1175,65 @@ symbol_file_clear (int from_tty)
printf_unfiltered (_("No symbol file now.\n"));
}
@ -242,7 +242,7 @@ Index: gdb-6.8.50.20090818/gdb/symfile.c
{
struct build_id *retval;
@@ -1218,6 +1268,348 @@ build_id_bfd_get (bfd *abfd)
@@ -1199,6 +1249,348 @@ build_id_bfd_get (bfd *abfd)
return retval;
}
@ -591,7 +591,7 @@ Index: gdb-6.8.50.20090818/gdb/symfile.c
/* Return if FILENAME has NT_GNU_BUILD_ID matching the CHECK value. */
static int
@@ -1235,7 +1627,7 @@ build_id_verify (const char *filename, s
@@ -1216,7 +1608,7 @@ build_id_verify (const char *filename, s
if (abfd == NULL)
return 0;
@ -600,7 +600,7 @@ Index: gdb-6.8.50.20090818/gdb/symfile.c
if (found == NULL)
warning (_("File \"%s\" has no build-id, file skipped"), filename);
@@ -1254,8 +1646,9 @@ build_id_verify (const char *filename, s
@@ -1235,8 +1627,9 @@ build_id_verify (const char *filename, s
return retval;
}
@ -612,7 +612,7 @@ Index: gdb-6.8.50.20090818/gdb/symfile.c
{
char *link, *s, *retval = NULL;
gdb_byte *data = build_id->data;
@@ -1263,7 +1656,9 @@ build_id_to_debug_filename (struct build
@@ -1244,7 +1637,9 @@ build_id_to_debug_filename (struct build
/* DEBUG_FILE_DIRECTORY/.build-id/ab/cdef */
link = xmalloc (strlen (debug_file_directory) + (sizeof "/.build-id/" - 1) + 1
@ -623,7 +623,7 @@ Index: gdb-6.8.50.20090818/gdb/symfile.c
s = link + sprintf (link, "%s/.build-id/", debug_file_directory);
if (size > 0)
{
@@ -1274,12 +1669,14 @@ build_id_to_debug_filename (struct build
@@ -1255,12 +1650,14 @@ build_id_to_debug_filename (struct build
*s++ = '/';
while (size-- > 0)
s += sprintf (s, "%02x", (unsigned) *data++);
@ -640,7 +640,7 @@ Index: gdb-6.8.50.20090818/gdb/symfile.c
if (retval != NULL && !build_id_verify (retval, build_id))
{
@@ -1287,9 +1684,150 @@ build_id_to_debug_filename (struct build
@@ -1268,9 +1665,150 @@ build_id_to_debug_filename (struct build
retval = NULL;
}
@ -791,7 +791,7 @@ Index: gdb-6.8.50.20090818/gdb/symfile.c
static char *
get_debug_link_info (struct objfile *objfile, unsigned long *crc32_out)
{
@@ -1372,32 +1910,36 @@ static char *
@@ -1353,32 +1891,36 @@ static char *
find_separate_debug_file (struct objfile *objfile)
{
asection *sect;
@ -836,7 +836,7 @@ Index: gdb-6.8.50.20090818/gdb/symfile.c
}
basename = get_debug_link_info (objfile, &crc32);
@@ -1405,7 +1947,7 @@ find_separate_debug_file (struct objfile
@@ -1386,7 +1928,7 @@ find_separate_debug_file (struct objfile
if (basename == NULL)
/* There's no separate debug info, hence there's no way we could
load it => no warning. */
@ -845,7 +845,7 @@ Index: gdb-6.8.50.20090818/gdb/symfile.c
dir = xstrdup (objfile->name);
@@ -1427,24 +1969,19 @@ find_separate_debug_file (struct objfile
@@ -1408,24 +1950,19 @@ find_separate_debug_file (struct objfile
if (canon_name && strlen (canon_name) > i)
i = strlen (canon_name);
@ -877,7 +877,7 @@ Index: gdb-6.8.50.20090818/gdb/symfile.c
/* Then try in the subdirectory named DEBUG_SUBDIRECTORY. */
strcpy (debugfile, dir);
@@ -1453,12 +1990,7 @@ find_separate_debug_file (struct objfile
@@ -1434,12 +1971,7 @@ find_separate_debug_file (struct objfile
strcat (debugfile, basename);
if (separate_debug_file_exists (debugfile, crc32, objfile->name))
@ -891,7 +891,7 @@ Index: gdb-6.8.50.20090818/gdb/symfile.c
/* Then try in the global debugfile directory. */
strcpy (debugfile, debug_file_directory);
@@ -1467,12 +1999,7 @@ find_separate_debug_file (struct objfile
@@ -1448,12 +1980,7 @@ find_separate_debug_file (struct objfile
strcat (debugfile, basename);
if (separate_debug_file_exists (debugfile, crc32, objfile->name))
@ -905,7 +905,7 @@ Index: gdb-6.8.50.20090818/gdb/symfile.c
/* If the file is in the sysroot, try using its base path in the
global debugfile directory. */
@@ -1486,20 +2013,18 @@ find_separate_debug_file (struct objfile
@@ -1467,20 +1994,18 @@ find_separate_debug_file (struct objfile
strcat (debugfile, basename);
if (separate_debug_file_exists (debugfile, crc32, objfile->name))
@ -933,28 +933,28 @@ Index: gdb-6.8.50.20090818/gdb/symfile.c
}
@@ -4255,4 +4780,16 @@ Show printing of symbol loading messages
NULL,
NULL,
&setprintlist, &showprintlist);
+
+ add_setshow_zinteger_cmd ("build-id-verbose", no_class, &build_id_verbose,
+ _("\
+Set debugging level of the build-id locator."), _("\
+Show debugging level of the build-id locator."), _("\
+Level 1 (default) enables printing the missing debug filenames,\n\
+level 2 also prints the parsing of binaries to find the identificators."),
+ NULL,
+ show_build_id_verbose,
+ &setlist, &showlist);
+
+ observer_attach_executable_changed (debug_print_executable_changed);
@@ -4231,4 +4756,16 @@ the global debug-file directory prepende
NULL,
show_debug_file_directory,
&setlist, &showlist);
+
+ add_setshow_zinteger_cmd ("build-id-verbose", no_class, &build_id_verbose,
+ _("\
+ Set debugging level of the build-id locator."), _("\
+ Show debugging level of the build-id locator."), _("\
+ Level 1 (default) enables printing the missing debug filenames,\n\
+ level 2 also prints the parsing of binaries to find the identificators."),
+ NULL,
+ show_build_id_verbose,
+ &setlist, &showlist);
+
+ observer_attach_executable_changed (debug_print_executable_changed);
}
Index: gdb-6.8.50.20090818/gdb/symfile.h
Index: gdb-6.8.50.20090909/gdb/symfile.h
===================================================================
--- gdb-6.8.50.20090818.orig/gdb/symfile.h 2009-08-18 21:07:04.000000000 +0200
+++ gdb-6.8.50.20090818/gdb/symfile.h 2009-08-18 21:07:23.000000000 +0200
@@ -388,6 +388,13 @@ extern int symfile_map_offsets_to_segmen
--- gdb-6.8.50.20090909.orig/gdb/symfile.h 2009-09-09 19:05:56.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/symfile.h 2009-09-09 19:09:35.000000000 +0200
@@ -381,6 +381,13 @@ extern int symfile_map_offsets_to_segmen
struct symfile_segment_data *get_symfile_segment_data (bfd *abfd);
void free_symfile_segment_data (struct symfile_segment_data *data);
@ -968,10 +968,10 @@ Index: gdb-6.8.50.20090818/gdb/symfile.h
/* From dwarf2read.c */
extern int dwarf2_has_info (struct objfile *);
Index: gdb-6.8.50.20090818/gdb/testsuite/lib/gdb.exp
Index: gdb-6.8.50.20090909/gdb/testsuite/lib/gdb.exp
===================================================================
--- gdb-6.8.50.20090818.orig/gdb/testsuite/lib/gdb.exp 2009-08-18 21:07:04.000000000 +0200
+++ gdb-6.8.50.20090818/gdb/testsuite/lib/gdb.exp 2009-08-18 21:07:23.000000000 +0200
--- gdb-6.8.50.20090909.orig/gdb/testsuite/lib/gdb.exp 2009-09-09 19:05:56.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/testsuite/lib/gdb.exp 2009-09-09 19:09:35.000000000 +0200
@@ -1248,6 +1248,16 @@ proc default_gdb_start { } {
warning "Couldn't set the width to 0."
}
@ -989,10 +989,10 @@ Index: gdb-6.8.50.20090818/gdb/testsuite/lib/gdb.exp
return 0;
}
Index: gdb-6.8.50.20090818/gdb/testsuite/lib/mi-support.exp
Index: gdb-6.8.50.20090909/gdb/testsuite/lib/mi-support.exp
===================================================================
--- gdb-6.8.50.20090818.orig/gdb/testsuite/lib/mi-support.exp 2009-08-18 21:07:04.000000000 +0200
+++ gdb-6.8.50.20090818/gdb/testsuite/lib/mi-support.exp 2009-08-18 21:07:23.000000000 +0200
--- gdb-6.8.50.20090909.orig/gdb/testsuite/lib/mi-support.exp 2009-09-09 19:05:56.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/testsuite/lib/mi-support.exp 2009-09-09 19:09:35.000000000 +0200
@@ -221,6 +221,16 @@ proc default_mi_gdb_start { args } {
}
}

View File

@ -1,8 +1,8 @@
Index: gdb-6.8.50.20090803/bfd/elf-bfd.h
Index: gdb-6.8.50.20090910/bfd/elf-bfd.h
===================================================================
--- gdb-6.8.50.20090803.orig/bfd/elf-bfd.h 2009-07-23 15:00:20.000000000 +0200
+++ gdb-6.8.50.20090803/bfd/elf-bfd.h 2009-08-03 17:21:25.000000000 +0200
@@ -2115,7 +2115,7 @@ extern Elf_Internal_Phdr * _bfd_elf_find
--- gdb-6.8.50.20090910.orig/bfd/elf-bfd.h 2009-09-09 23:38:57.000000000 +0200
+++ gdb-6.8.50.20090910/bfd/elf-bfd.h 2009-09-10 23:01:15.000000000 +0200
@@ -2121,7 +2121,7 @@ extern Elf_Internal_Phdr * _bfd_elf_find
extern char *elfcore_write_note
(bfd *, char *, int *, const char *, int, const void *, int);
extern char *elfcore_write_prpsinfo
@ -11,11 +11,11 @@ Index: gdb-6.8.50.20090803/bfd/elf-bfd.h
extern char *elfcore_write_prstatus
(bfd *, char *, int *, long, int, const void *);
extern char * elfcore_write_pstatus
Index: gdb-6.8.50.20090803/bfd/elf.c
Index: gdb-6.8.50.20090910/bfd/elf.c
===================================================================
--- gdb-6.8.50.20090803.orig/bfd/elf.c 2009-07-23 15:00:20.000000000 +0200
+++ gdb-6.8.50.20090803/bfd/elf.c 2009-08-03 17:23:13.000000000 +0200
@@ -8381,6 +8381,7 @@ char *
--- gdb-6.8.50.20090910.orig/bfd/elf.c 2009-09-09 23:38:57.000000000 +0200
+++ gdb-6.8.50.20090910/bfd/elf.c 2009-09-10 23:04:17.000000000 +0200
@@ -8398,6 +8398,7 @@ char *
elfcore_write_prpsinfo (bfd *abfd,
char *buf,
int *bufsiz,
@ -23,7 +23,7 @@ Index: gdb-6.8.50.20090803/bfd/elf.c
const char *fname,
const char *psargs)
{
@@ -8407,9 +8408,15 @@ elfcore_write_prpsinfo (bfd *abfd,
@@ -8424,9 +8425,15 @@ elfcore_write_prpsinfo (bfd *abfd,
int note_type = NT_PRPSINFO;
#endif
@ -42,7 +42,7 @@ Index: gdb-6.8.50.20090803/bfd/elf.c
return elfcore_write_note (abfd, buf, bufsiz,
note_name, note_type, &data, sizeof (data));
}
@@ -8424,9 +8431,15 @@ elfcore_write_prpsinfo (bfd *abfd,
@@ -8441,9 +8448,15 @@ elfcore_write_prpsinfo (bfd *abfd,
int note_type = NT_PRPSINFO;
#endif
@ -61,10 +61,10 @@ Index: gdb-6.8.50.20090803/bfd/elf.c
return elfcore_write_note (abfd, buf, bufsiz,
note_name, note_type, &data, sizeof (data));
}
Index: gdb-6.8.50.20090803/gdb/amd64-linux-nat.c
Index: gdb-6.8.50.20090910/gdb/amd64-linux-nat.c
===================================================================
--- gdb-6.8.50.20090803.orig/gdb/amd64-linux-nat.c 2009-08-03 17:19:57.000000000 +0200
+++ gdb-6.8.50.20090803/gdb/amd64-linux-nat.c 2009-08-03 17:21:25.000000000 +0200
--- gdb-6.8.50.20090910.orig/gdb/amd64-linux-nat.c 2009-09-10 23:01:07.000000000 +0200
+++ gdb-6.8.50.20090910/gdb/amd64-linux-nat.c 2009-09-10 23:01:15.000000000 +0200
@@ -140,6 +140,7 @@ static int amd64_linux_gregset32_reg_off
static char *
@ -98,10 +98,10 @@ Index: gdb-6.8.50.20090803/gdb/amd64-linux-nat.c
}
static void
Index: gdb-6.8.50.20090803/gdb/fbsd-nat.c
Index: gdb-6.8.50.20090910/gdb/fbsd-nat.c
===================================================================
--- gdb-6.8.50.20090803.orig/gdb/fbsd-nat.c 2009-07-02 19:21:06.000000000 +0200
+++ gdb-6.8.50.20090803/gdb/fbsd-nat.c 2009-08-03 17:21:25.000000000 +0200
--- gdb-6.8.50.20090910.orig/gdb/fbsd-nat.c 2009-07-02 19:21:06.000000000 +0200
+++ gdb-6.8.50.20090910/gdb/fbsd-nat.c 2009-09-10 23:01:15.000000000 +0200
@@ -211,6 +211,7 @@ fbsd_make_corefile_notes (bfd *obfd, int
psargs = reconcat (psargs, psargs, " ", get_inferior_args (), NULL);
@ -110,10 +110,10 @@ Index: gdb-6.8.50.20090803/gdb/fbsd-nat.c
fname, psargs);
}
Index: gdb-6.8.50.20090803/gdb/linux-nat.c
Index: gdb-6.8.50.20090910/gdb/linux-nat.c
===================================================================
--- gdb-6.8.50.20090803.orig/gdb/linux-nat.c 2009-08-03 17:19:56.000000000 +0200
+++ gdb-6.8.50.20090803/gdb/linux-nat.c 2009-08-03 17:24:03.000000000 +0200
--- gdb-6.8.50.20090910.orig/gdb/linux-nat.c 2009-09-10 23:01:06.000000000 +0200
+++ gdb-6.8.50.20090910/gdb/linux-nat.c 2009-09-10 23:01:15.000000000 +0200
@@ -55,6 +55,7 @@
#include "xml-support.h"
#include "terminal.h"
@ -131,7 +131,7 @@ Index: gdb-6.8.50.20090803/gdb/linux-nat.c
char *(*linux_elfcore_write_prstatus)
(bfd *, char *, int *, long, int, const void *) = elfcore_write_prstatus;
static char *
@@ -3840,6 +3841,159 @@ linux_spu_make_corefile_notes (bfd *obfd
@@ -3946,6 +3947,159 @@ linux_spu_make_corefile_notes (bfd *obfd
return args.note_data;
}
@ -291,7 +291,7 @@ Index: gdb-6.8.50.20090803/gdb/linux-nat.c
/* Fills the "to_make_corefile_note" target vector. Builds the note
section for a corefile, and returns it in a malloc buffer. */
@@ -3860,8 +4014,14 @@ linux_nat_make_corefile_notes (bfd *obfd
@@ -3966,8 +4120,14 @@ linux_nat_make_corefile_notes (bfd *obfd
if (get_exec_file (0))
{
@ -306,7 +306,7 @@ Index: gdb-6.8.50.20090803/gdb/linux-nat.c
if (get_inferior_args ())
{
char *string_end;
@@ -3877,9 +4037,15 @@ linux_nat_make_corefile_notes (bfd *obfd
@@ -3983,9 +4143,15 @@ linux_nat_make_corefile_notes (bfd *obfd
psargs_end - string_end);
}
}
@ -324,11 +324,11 @@ Index: gdb-6.8.50.20090803/gdb/linux-nat.c
}
/* Dump information for threads. */
Index: gdb-6.8.50.20090803/gdb/linux-nat.h
Index: gdb-6.8.50.20090910/gdb/linux-nat.h
===================================================================
--- gdb-6.8.50.20090803.orig/gdb/linux-nat.h 2009-08-03 17:19:56.000000000 +0200
+++ gdb-6.8.50.20090803/gdb/linux-nat.h 2009-08-03 17:21:25.000000000 +0200
@@ -148,7 +148,7 @@ struct siginfo *linux_nat_get_siginfo (p
--- gdb-6.8.50.20090910.orig/gdb/linux-nat.h 2009-09-10 23:01:06.000000000 +0200
+++ gdb-6.8.50.20090910/gdb/linux-nat.h 2009-09-10 23:01:15.000000000 +0200
@@ -154,7 +154,7 @@ struct siginfo *linux_nat_get_siginfo (p
/* These functions make elfcore note sections.
They may get overriden by code adjusting data for multi-target builds. */
extern char *(*linux_elfcore_write_prpsinfo)
@ -337,10 +337,10 @@ Index: gdb-6.8.50.20090803/gdb/linux-nat.h
extern char *(*linux_elfcore_write_prstatus)
(bfd *, char *, int *, long, int, const void *);
extern char *(*linux_elfcore_write_prfpreg)
Index: gdb-6.8.50.20090803/gdb/procfs.c
Index: gdb-6.8.50.20090910/gdb/procfs.c
===================================================================
--- gdb-6.8.50.20090803.orig/gdb/procfs.c 2009-08-01 02:02:04.000000000 +0200
+++ gdb-6.8.50.20090803/gdb/procfs.c 2009-08-03 17:21:25.000000000 +0200
--- gdb-6.8.50.20090910.orig/gdb/procfs.c 2009-08-01 02:02:04.000000000 +0200
+++ gdb-6.8.50.20090910/gdb/procfs.c 2009-09-10 23:01:15.000000000 +0200
@@ -6147,6 +6147,7 @@ procfs_make_note_section (bfd *obfd, int
note_data = (char *) elfcore_write_prpsinfo (obfd,
note_data,

View File

@ -5,33 +5,30 @@ gdb/
* config.in: Regenerate.
* configure: Regenerate.
Index: gdb-6.8.50.20090803/gdb/configure.ac
Index: gdb-6.8.50.20090909/gdb/configure.ac
===================================================================
--- gdb-6.8.50.20090803.orig/gdb/configure.ac 2009-08-04 06:32:39.000000000 +0200
+++ gdb-6.8.50.20090803/gdb/configure.ac 2009-08-04 06:33:51.000000000 +0200
@@ -30,6 +30,7 @@ AC_GNU_SOURCE
AC_AIX
AC_ISC_POSIX
--- gdb-6.8.50.20090909.orig/gdb/configure.ac 2009-09-09 20:08:04.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/configure.ac 2009-09-09 20:11:04.000000000 +0200
@@ -28,6 +28,7 @@ AM_MAINTAINER_MODE
AC_PROG_CC
AC_USE_SYSTEM_EXTENSIONS
gl_EARLY
+AC_SYS_LARGEFILE
AM_PROG_CC_STDC
AC_CONFIG_AUX_DIR(..)
Index: gdb-6.8.50.20090803/gdb/config.in
Index: gdb-6.8.50.20090909/gdb/config.in
===================================================================
--- gdb-6.8.50.20090803.orig/gdb/config.in 2009-08-04 06:32:39.000000000 +0200
+++ gdb-6.8.50.20090803/gdb/config.in 2009-08-04 06:33:51.000000000 +0200
@@ -744,6 +744,9 @@
# undef _ALL_SOURCE
--- gdb-6.8.50.20090909.orig/gdb/config.in 2009-09-09 20:08:04.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/config.in 2009-09-09 20:11:33.000000000 +0200
@@ -751,10 +751,16 @@
# endif
#endif
+/* Number of bits in a file offset, on hosts where this is settable. */
+#undef _FILE_OFFSET_BITS
+
/* Enable GNU extensions on systems that have them. */
#ifndef _GNU_SOURCE
# undef _GNU_SOURCE
@@ -753,6 +756,9 @@
/* Define to 1 so <sys/proc.h> gets a definition of anon_hdl. Works around a
<sys/proc.h> problem on IRIX 5. */
#undef _KMEMUSER
@ -41,11 +38,19 @@ Index: gdb-6.8.50.20090803/gdb/config.in
/* Define to 1 if on MINIX. */
#undef _MINIX
Index: gdb-6.8.50.20090803/gdb/configure
Index: gdb-6.8.50.20090909/gdb/configure
===================================================================
--- gdb-6.8.50.20090803.orig/gdb/configure 2009-08-04 06:32:39.000000000 +0200
+++ gdb-6.8.50.20090803/gdb/configure 2009-08-04 06:33:51.000000000 +0200
@@ -874,6 +874,7 @@ Optional Features:
--- gdb-6.8.50.20090909.orig/gdb/configure 2009-09-09 20:10:45.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/configure 2009-09-09 20:11:07.000000000 +0200
@@ -884,6 +884,7 @@ ac_subst_files='host_makefile_frag'
ac_user_opts='
enable_option_checking
enable_maintainer_mode
+enable_largefile
enable_dependency_tracking
with_separate_debug_dir
with_gdb_datadir
@@ -1562,6 +1563,7 @@ Optional Features:
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--enable-maintainer-mode enable make rules and dependencies not useful
(and sometimes confusing) to the casual installer
@ -53,33 +58,29 @@ Index: gdb-6.8.50.20090803/gdb/configure
--disable-dependency-tracking speeds up one-time build
--enable-dependency-tracking do not reject slow dependency extractors
--enable-targets=TARGETS
@@ -3347,6 +3348,370 @@ _ACEOF
@@ -4100,6 +4102,204 @@ fi
+# Check whether --enable-largefile or --disable-largefile was given.
+if test "${enable_largefile+set}" = set; then
+ enableval="$enable_largefile"
+# Check whether --enable-largefile was given.
+if test "${enable_largefile+set}" = set; then :
+ enableval=$enable_largefile;
+fi
+
+fi;
+if test "$enable_largefile" != no; then
+
+ echo "$as_me:$LINENO: checking for special C compiler options needed for large files" >&5
+echo $ECHO_N "checking for special C compiler options needed for large files... $ECHO_C" >&6
+if test "${ac_cv_sys_largefile_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5
+$as_echo_n "checking for special C compiler options needed for large files... " >&6; }
+if test "${ac_cv_sys_largefile_CC+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_sys_largefile_CC=no
+ if test "$GCC" != yes; then
+ ac_save_CC=$CC
+ while :; do
+ # IRIX 6.2 and later do not support large files by default,
+ # so use the C compiler's -n32 option if that helps.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+ # IRIX 6.2 and later do not support large files by default,
+ # so use the C compiler's -n32 option if that helps.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
@ -98,89 +99,34 @@ Index: gdb-6.8.50.20090803/gdb/configure
+ return 0;
+}
+_ACEOF
+ rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ if ac_fn_c_try_compile "$LINENO"; then :
+ break
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext
+ CC="$CC -n32"
+ rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+rm -f core conftest.err conftest.$ac_objext
+ CC="$CC -n32"
+ if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_largefile_CC=' -n32'; break
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext
+rm -f core conftest.err conftest.$ac_objext
+ break
+ done
+ CC=$ac_save_CC
+ rm -f conftest.$ac_ext
+ fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_CC" >&5
+echo "${ECHO_T}$ac_cv_sys_largefile_CC" >&6
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5
+$as_echo "$ac_cv_sys_largefile_CC" >&6; }
+ if test "$ac_cv_sys_largefile_CC" != no; then
+ CC=$CC$ac_cv_sys_largefile_CC
+ fi
+
+ echo "$as_me:$LINENO: checking for _FILE_OFFSET_BITS value needed for large files" >&5
+echo $ECHO_N "checking for _FILE_OFFSET_BITS value needed for large files... $ECHO_C" >&6
+if test "${ac_cv_sys_file_offset_bits+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5
+$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }
+if test "${ac_cv_sys_file_offset_bits+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ while :; do
+ ac_cv_sys_file_offset_bits=no
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
@ -199,40 +145,11 @@ Index: gdb-6.8.50.20090803/gdb/configure
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ break
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_file_offset_bits=no; break
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#define _FILE_OFFSET_BITS 64
+#include <sys/types.h>
@ -252,60 +169,33 @@ Index: gdb-6.8.50.20090803/gdb/configure
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_file_offset_bits=64; break
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_cv_sys_file_offset_bits=unknown
+ break
+done
+fi
+echo "$as_me:$LINENO: result: $ac_cv_sys_file_offset_bits" >&5
+echo "${ECHO_T}$ac_cv_sys_file_offset_bits" >&6
+if test "$ac_cv_sys_file_offset_bits" != no; then
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5
+$as_echo "$ac_cv_sys_file_offset_bits" >&6; }
+case $ac_cv_sys_file_offset_bits in #(
+ no | unknown) ;;
+ *)
+cat >>confdefs.h <<_ACEOF
+#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits
+_ACEOF
+
+fi
+rm -f conftest*
+ echo "$as_me:$LINENO: checking for _LARGE_FILES value needed for large files" >&5
+echo $ECHO_N "checking for _LARGE_FILES value needed for large files... $ECHO_C" >&6
+if test "${ac_cv_sys_large_files+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+;;
+esac
+rm -rf conftest*
+ if test $ac_cv_sys_file_offset_bits = unknown; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5
+$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; }
+if test "${ac_cv_sys_large_files+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ while :; do
+ ac_cv_sys_large_files=no
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
@ -324,40 +214,11 @@ Index: gdb-6.8.50.20090803/gdb/configure
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ break
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_large_files=no; break
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#define _LARGE_FILES 1
+#include <sys/types.h>
@ -377,48 +238,26 @@ Index: gdb-6.8.50.20090803/gdb/configure
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -z "$ac_c_werror_flag"
+ || test ! -s conftest.err'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_large_files=1; break
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_cv_sys_large_files=unknown
+ break
+done
+fi
+echo "$as_me:$LINENO: result: $ac_cv_sys_large_files" >&5
+echo "${ECHO_T}$ac_cv_sys_large_files" >&6
+if test "$ac_cv_sys_large_files" != no; then
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5
+$as_echo "$ac_cv_sys_large_files" >&6; }
+case $ac_cv_sys_large_files in #(
+ no | unknown) ;;
+ *)
+cat >>confdefs.h <<_ACEOF
+#define _LARGE_FILES $ac_cv_sys_large_files
+_ACEOF
+
+fi
+rm -f conftest*
+;;
+esac
+rm -rf conftest*
+ fi
+fi
+

View File

@ -1,9 +1,9 @@
Fix resolving of variables at locations lists in prelinked libs (BZ 466901).
Index: gdb-6.8.50.20090803/gdb/dwarf2loc.c
Index: gdb-6.8.50.20090909/gdb/dwarf2loc.c
===================================================================
--- gdb-6.8.50.20090803.orig/gdb/dwarf2loc.c 2009-08-04 06:29:47.000000000 +0200
+++ gdb-6.8.50.20090803/gdb/dwarf2loc.c 2009-08-04 06:33:35.000000000 +0200
--- gdb-6.8.50.20090909.orig/gdb/dwarf2loc.c 2009-09-09 20:08:03.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/dwarf2loc.c 2009-09-09 20:10:35.000000000 +0200
@@ -56,7 +56,9 @@ find_location_expression (struct dwarf2_
CORE_ADDR low, high;
gdb_byte *loc_ptr, *buf_end;
@ -15,10 +15,10 @@ Index: gdb-6.8.50.20090803/gdb/dwarf2loc.c
struct gdbarch *gdbarch = get_objfile_arch (objfile);
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
unsigned int addr_size = dwarf2_per_cu_addr_size (baton->per_cu);
Index: gdb-6.8.50.20090803/gdb/testsuite/gdb.dwarf2/dw2-loclist-prelinked.exp
Index: gdb-6.8.50.20090909/gdb/testsuite/gdb.dwarf2/dw2-loclist-prelinked.exp
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-6.8.50.20090803/gdb/testsuite/gdb.dwarf2/dw2-loclist-prelinked.exp 2009-08-04 06:33:35.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/testsuite/gdb.dwarf2/dw2-loclist-prelinked.exp 2009-09-09 20:10:35.000000000 +0200
@@ -0,0 +1,102 @@
+# Copyright 2008 Free Software Foundation, Inc.
+
@ -122,10 +122,10 @@ Index: gdb-6.8.50.20090803/gdb/testsuite/gdb.dwarf2/dw2-loclist-prelinked.exp
+
+# `abort' can get expressed as `*__GI_abort'.
+gdb_test "bt full" "in \[^ \]*abort \\(.*in func \\(.*\r\n\[\t \]+i = -?\[0-9\].*in main \\(.*" "Backtrace after abort()"
Index: gdb-6.8.50.20090803/gdb/testsuite/gdb.dwarf2/dw2-loclist-prelinked-main.c
Index: gdb-6.8.50.20090909/gdb/testsuite/gdb.dwarf2/dw2-loclist-prelinked-main.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-6.8.50.20090803/gdb/testsuite/gdb.dwarf2/dw2-loclist-prelinked-main.c 2009-08-04 06:33:35.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/testsuite/gdb.dwarf2/dw2-loclist-prelinked-main.c 2009-09-09 20:10:35.000000000 +0200
@@ -0,0 +1,26 @@
+/* This testcase is part of GDB, the GNU debugger.
+
@ -153,10 +153,10 @@ Index: gdb-6.8.50.20090803/gdb/testsuite/gdb.dwarf2/dw2-loclist-prelinked-main.c
+ func ();
+ return 0;
+}
Index: gdb-6.8.50.20090803/gdb/testsuite/gdb.dwarf2/dw2-loclist-prelinked-func.S
Index: gdb-6.8.50.20090909/gdb/testsuite/gdb.dwarf2/dw2-loclist-prelinked-func.S
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ gdb-6.8.50.20090803/gdb/testsuite/gdb.dwarf2/dw2-loclist-prelinked-func.S 2009-08-04 06:33:35.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/testsuite/gdb.dwarf2/dw2-loclist-prelinked-func.S 2009-09-09 20:10:35.000000000 +0200
@@ -0,0 +1,328 @@
+/* This testcase is part of GDB, the GNU debugger.
+

View File

@ -5,10 +5,10 @@ causing: FAIL: gdb.base/unwindonsignal.exp: unwindonsignal, stack unwound
resume() -> target_resume() move of clear_inline_frame_state() is for:
gdb.mi/mi-nsmoribund.exp
Index: gdb-6.8.50.20090803/gdb/testsuite/gdb.opt/inline-bt.c
Index: gdb-6.8.50.20090909/gdb/testsuite/gdb.opt/inline-bt.c
===================================================================
--- gdb-6.8.50.20090803.orig/gdb/testsuite/gdb.opt/inline-bt.c 2009-06-28 02:20:24.000000000 +0200
+++ gdb-6.8.50.20090803/gdb/testsuite/gdb.opt/inline-bt.c 2009-08-03 16:57:40.000000000 +0200
--- gdb-6.8.50.20090909.orig/gdb/testsuite/gdb.opt/inline-bt.c 2009-06-28 02:20:24.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/testsuite/gdb.opt/inline-bt.c 2009-09-09 19:20:00.000000000 +0200
@@ -13,10 +13,16 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
@ -28,10 +28,10 @@ Index: gdb-6.8.50.20090803/gdb/testsuite/gdb.opt/inline-bt.c
inline int func1(void)
{
Index: gdb-6.8.50.20090803/gdb/testsuite/gdb.opt/inline-cmds.c
Index: gdb-6.8.50.20090909/gdb/testsuite/gdb.opt/inline-cmds.c
===================================================================
--- gdb-6.8.50.20090803.orig/gdb/testsuite/gdb.opt/inline-cmds.c 2009-06-28 02:20:24.000000000 +0200
+++ gdb-6.8.50.20090803/gdb/testsuite/gdb.opt/inline-cmds.c 2009-08-03 16:57:40.000000000 +0200
--- gdb-6.8.50.20090909.orig/gdb/testsuite/gdb.opt/inline-cmds.c 2009-06-28 02:20:24.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/testsuite/gdb.opt/inline-cmds.c 2009-09-09 19:20:00.000000000 +0200
@@ -13,13 +13,19 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
@ -54,10 +54,10 @@ Index: gdb-6.8.50.20090803/gdb/testsuite/gdb.opt/inline-cmds.c
inline int func1(void)
{
bar ();
Index: gdb-6.8.50.20090803/gdb/testsuite/gdb.opt/inline-cmds.exp
Index: gdb-6.8.50.20090909/gdb/testsuite/gdb.opt/inline-cmds.exp
===================================================================
--- gdb-6.8.50.20090803.orig/gdb/testsuite/gdb.opt/inline-cmds.exp 2009-06-28 02:20:24.000000000 +0200
+++ gdb-6.8.50.20090803/gdb/testsuite/gdb.opt/inline-cmds.exp 2009-08-03 16:57:40.000000000 +0200
--- gdb-6.8.50.20090909.orig/gdb/testsuite/gdb.opt/inline-cmds.exp 2009-06-28 02:20:24.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/testsuite/gdb.opt/inline-cmds.exp 2009-09-09 19:20:00.000000000 +0200
@@ -230,7 +230,7 @@ set line3 [gdb_get_line_number "set brea
gdb_breakpoint $line3
gdb_continue_to_breakpoint "consecutive func1"
@ -110,10 +110,10 @@ Index: gdb-6.8.50.20090803/gdb/testsuite/gdb.opt/inline-cmds.exp
+gdb_test "info frame" "inlined into frame.*" "outer_inline2 inlined"
+gdb_test "fini" "" "up from outer_inline2"
+gdb_test "info frame" " in main \[^\n\]*\n source language.*" "main not inlined"
Index: gdb-6.8.50.20090803/gdb/testsuite/gdb.opt/inline-locals.c
Index: gdb-6.8.50.20090909/gdb/testsuite/gdb.opt/inline-locals.c
===================================================================
--- gdb-6.8.50.20090803.orig/gdb/testsuite/gdb.opt/inline-locals.c 2009-06-28 02:20:24.000000000 +0200
+++ gdb-6.8.50.20090803/gdb/testsuite/gdb.opt/inline-locals.c 2009-08-03 16:57:40.000000000 +0200
--- gdb-6.8.50.20090909.orig/gdb/testsuite/gdb.opt/inline-locals.c 2009-06-28 02:20:24.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/testsuite/gdb.opt/inline-locals.c 2009-09-09 19:20:00.000000000 +0200
@@ -13,11 +13,16 @@
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
@ -133,10 +133,10 @@ Index: gdb-6.8.50.20090803/gdb/testsuite/gdb.opt/inline-locals.c
inline int func1(int arg1)
{
Index: gdb-6.8.50.20090803/gdb/testsuite/gdb.opt/inline-locals.exp
Index: gdb-6.8.50.20090909/gdb/testsuite/gdb.opt/inline-locals.exp
===================================================================
--- gdb-6.8.50.20090803.orig/gdb/testsuite/gdb.opt/inline-locals.exp 2009-06-30 17:50:27.000000000 +0200
+++ gdb-6.8.50.20090803/gdb/testsuite/gdb.opt/inline-locals.exp 2009-08-03 16:57:40.000000000 +0200
--- gdb-6.8.50.20090909.orig/gdb/testsuite/gdb.opt/inline-locals.exp 2009-06-30 17:50:27.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/testsuite/gdb.opt/inline-locals.exp 2009-09-09 19:20:00.000000000 +0200
@@ -77,6 +77,9 @@ if { ! $no_frames } {
# Make sure that locals on the stack are found. This is an array to
@ -155,10 +155,10 @@ Index: gdb-6.8.50.20090803/gdb/testsuite/gdb.opt/inline-locals.exp
+ setup_kfail *-*-* "gcc/debug.optimization"
+}
gdb_test "print array\[0\]" "\\\$$decimal = 184" "print local (3)"
Index: gdb-6.8.50.20090803/gdb/frame.c
Index: gdb-6.8.50.20090909/gdb/frame.c
===================================================================
--- gdb-6.8.50.20090803.orig/gdb/frame.c 2009-08-03 15:56:08.000000000 +0200
+++ gdb-6.8.50.20090803/gdb/frame.c 2009-08-03 16:57:40.000000000 +0200
--- gdb-6.8.50.20090909.orig/gdb/frame.c 2009-09-09 19:06:46.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/frame.c 2009-09-09 19:20:00.000000000 +0200
@@ -276,7 +276,7 @@ fprint_frame (struct ui_file *file, stru
static struct frame_info *
skip_inlined_frames (struct frame_info *frame)
@ -195,19 +195,19 @@ Index: gdb-6.8.50.20090803/gdb/frame.c
{
sal->symtab = SYMBOL_SYMTAB (sym);
sal->line = SYMBOL_LINE (sym);
Index: gdb-6.8.50.20090803/gdb/breakpoint.c
Index: gdb-6.8.50.20090909/gdb/breakpoint.c
===================================================================
--- gdb-6.8.50.20090803.orig/gdb/breakpoint.c 2009-08-03 16:56:10.000000000 +0200
+++ gdb-6.8.50.20090803/gdb/breakpoint.c 2009-08-03 17:19:24.000000000 +0200
@@ -60,6 +60,7 @@
#include "wrapper.h"
--- gdb-6.8.50.20090909.orig/gdb/breakpoint.c 2009-09-09 19:19:46.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/breakpoint.c 2009-09-09 19:21:14.000000000 +0200
@@ -61,6 +61,7 @@
#include "valprint.h"
#include "jit.h"
#include "parser-defs.h"
+#include "inline-frame.h"
/* readline include files */
#include "readline/readline.h"
@@ -3065,10 +3066,24 @@ bpstat_check_breakpoint_conditions (bpst
@@ -3217,10 +3218,24 @@ bpstat_check_breakpoint_conditions (bpst
const struct bp_location *bl = bs->breakpoint_at;
struct breakpoint *b = bl->owner;
@ -236,7 +236,7 @@ Index: gdb-6.8.50.20090803/gdb/breakpoint.c
{
int value_is_zero = 0;
@@ -3215,6 +3230,12 @@ bpstat_stop_status (CORE_ADDR bp_addr, p
@@ -3380,6 +3395,12 @@ bpstat_stop_status (CORE_ADDR bp_addr, p
bs->print = 0;
}
bs->commands = copy_command_lines (bs->commands);
@ -249,7 +249,7 @@ Index: gdb-6.8.50.20090803/gdb/breakpoint.c
}
/* Print nothing for this entry if we dont stop or if we dont print. */
@@ -5164,9 +5185,9 @@ set_momentary_breakpoint (struct gdbarch
@@ -5278,9 +5299,9 @@ set_momentary_breakpoint (struct gdbarch
{
struct breakpoint *b;
@ -262,10 +262,10 @@ Index: gdb-6.8.50.20090803/gdb/breakpoint.c
b = set_raw_breakpoint (gdbarch, sal, type);
b->enable_state = bp_enabled;
Index: gdb-6.8.50.20090803/gdb/inline-frame.c
Index: gdb-6.8.50.20090909/gdb/inline-frame.c
===================================================================
--- gdb-6.8.50.20090803.orig/gdb/inline-frame.c 2009-06-28 02:20:22.000000000 +0200
+++ gdb-6.8.50.20090803/gdb/inline-frame.c 2009-08-03 16:57:40.000000000 +0200
--- gdb-6.8.50.20090909.orig/gdb/inline-frame.c 2009-06-28 02:20:22.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/inline-frame.c 2009-09-09 19:20:00.000000000 +0200
@@ -195,6 +195,12 @@ inline_frame_sniffer (const struct frame
if (frame_block == NULL)
return 0;
@ -342,10 +342,10 @@ Index: gdb-6.8.50.20090803/gdb/inline-frame.c
/* Return the number of hidden functions inlined into the current
frame. */
Index: gdb-6.8.50.20090803/gdb/testsuite/gdb.opt/inline-markers.c
Index: gdb-6.8.50.20090909/gdb/testsuite/gdb.opt/inline-markers.c
===================================================================
--- gdb-6.8.50.20090803.orig/gdb/testsuite/gdb.opt/inline-markers.c 2009-06-28 02:20:24.000000000 +0200
+++ gdb-6.8.50.20090803/gdb/testsuite/gdb.opt/inline-markers.c 2009-08-03 16:57:40.000000000 +0200
--- gdb-6.8.50.20090909.orig/gdb/testsuite/gdb.opt/inline-markers.c 2009-06-28 02:20:24.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/testsuite/gdb.opt/inline-markers.c 2009-09-09 19:20:00.000000000 +0200
@@ -15,11 +15,6 @@
extern int x, y;
@ -358,11 +358,11 @@ Index: gdb-6.8.50.20090803/gdb/testsuite/gdb.opt/inline-markers.c
void marker(void)
{
x += y; /* set breakpoint 2 here */
Index: gdb-6.8.50.20090803/gdb/gdbthread.h
Index: gdb-6.8.50.20090909/gdb/gdbthread.h
===================================================================
--- gdb-6.8.50.20090803.orig/gdb/gdbthread.h 2009-08-03 15:55:53.000000000 +0200
+++ gdb-6.8.50.20090803/gdb/gdbthread.h 2009-08-03 16:57:40.000000000 +0200
@@ -187,6 +187,12 @@ struct thread_info
--- gdb-6.8.50.20090909.orig/gdb/gdbthread.h 2009-09-09 19:05:56.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/gdbthread.h 2009-09-09 19:20:00.000000000 +0200
@@ -191,6 +191,12 @@ struct thread_info
/* Private data used by the target vector implementation. */
struct private_thread_info *private;
@ -375,11 +375,11 @@ Index: gdb-6.8.50.20090803/gdb/gdbthread.h
};
/* Create an empty thread list, or empty the existing one. */
Index: gdb-6.8.50.20090803/gdb/infcmd.c
Index: gdb-6.8.50.20090909/gdb/infcmd.c
===================================================================
--- gdb-6.8.50.20090803.orig/gdb/infcmd.c 2009-07-02 23:57:27.000000000 +0200
+++ gdb-6.8.50.20090803/gdb/infcmd.c 2009-08-03 17:17:24.000000000 +0200
@@ -1408,11 +1408,11 @@ finish_command_continuation (void *arg)
--- gdb-6.8.50.20090909.orig/gdb/infcmd.c 2009-09-09 19:05:56.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/infcmd.c 2009-09-09 19:20:33.000000000 +0200
@@ -1434,11 +1434,11 @@ finish_command_continuation (void *arg)
struct type *value_type;
value_type = TYPE_TARGET_TYPE (SYMBOL_TYPE (a->function));
@ -393,9 +393,9 @@ Index: gdb-6.8.50.20090803/gdb/infcmd.c
print_return_value (SYMBOL_TYPE (a->function), value_type);
}
@@ -1514,6 +1514,16 @@ finish_forward (struct symbol *function,
old_chain = make_cleanup_delete_breakpoint (breakpoint);
@@ -1546,6 +1546,16 @@ finish_forward (struct symbol *function,
tp->initiating_frame = get_frame_id (frame);
make_cleanup (delete_longjmp_breakpoint_cleanup, &thread);
+ /* We should _always_ set CURRENT_PC_IS_NOTCURRENT here to always see the
+ calling line with the message `Value returned is ...'. Currently it is
@ -410,7 +410,7 @@ Index: gdb-6.8.50.20090803/gdb/infcmd.c
tp->proceed_to_finish = 1; /* We want stop_registers, please... */
proceed ((CORE_ADDR) -1, TARGET_SIGNAL_DEFAULT, 0);
@@ -1535,7 +1545,9 @@ finish_forward (struct symbol *function,
@@ -1567,7 +1577,9 @@ finish_forward (struct symbol *function,
static void
finish_command (char *arg, int from_tty)
{
@ -421,7 +421,7 @@ Index: gdb-6.8.50.20090803/gdb/infcmd.c
struct symbol *function;
int async_exec = 0;
@@ -1566,45 +1578,63 @@ finish_command (char *arg, int from_tty)
@@ -1598,45 +1610,63 @@ finish_command (char *arg, int from_tty)
if (!target_has_execution)
error (_("The program is not running."));
@ -502,7 +502,7 @@ Index: gdb-6.8.50.20090803/gdb/infcmd.c
/* Print info on the selected frame, including level number but not
source. */
@@ -1618,10 +1648,14 @@ finish_command (char *arg, int from_tty)
@@ -1650,10 +1680,14 @@ finish_command (char *arg, int from_tty)
print_stack_frame (get_selected_frame (NULL), 1, LOCATION);
}
@ -518,22 +518,22 @@ Index: gdb-6.8.50.20090803/gdb/infcmd.c
}
Index: gdb-6.8.50.20090803/gdb/target.c
Index: gdb-6.8.50.20090909/gdb/target.c
===================================================================
--- gdb-6.8.50.20090803.orig/gdb/target.c 2009-08-03 16:04:15.000000000 +0200
+++ gdb-6.8.50.20090803/gdb/target.c 2009-08-03 16:57:40.000000000 +0200
@@ -2079,6 +2079,7 @@ target_resume (ptid_t ptid, int step, en
--- gdb-6.8.50.20090909.orig/gdb/target.c 2009-09-09 19:09:31.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/target.c 2009-09-09 19:21:00.000000000 +0200
@@ -2182,6 +2182,7 @@ target_resume (ptid_t ptid, int step, en
{
struct target_ops *t;
+ clear_inline_frame_state (ptid);
dcache_invalidate (target_dcache);
target_dcache_invalidate ();
for (t = current_target.beneath; t != NULL; t = t->beneath)
Index: gdb-6.8.50.20090803/gdb/inline-frame.h
Index: gdb-6.8.50.20090909/gdb/inline-frame.h
===================================================================
--- gdb-6.8.50.20090803.orig/gdb/inline-frame.h 2009-06-28 02:20:22.000000000 +0200
+++ gdb-6.8.50.20090803/gdb/inline-frame.h 2009-08-03 16:57:40.000000000 +0200
--- gdb-6.8.50.20090909.orig/gdb/inline-frame.h 2009-06-28 02:20:22.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/inline-frame.h 2009-09-09 19:20:00.000000000 +0200
@@ -43,6 +43,10 @@ void clear_inline_frame_state (ptid_t pt
void step_into_inline_frame (ptid_t ptid);
@ -545,11 +545,11 @@ Index: gdb-6.8.50.20090803/gdb/inline-frame.h
/* Return the number of hidden functions inlined into the current
frame. */
Index: gdb-6.8.50.20090803/gdb/dwarf2read.c
Index: gdb-6.8.50.20090909/gdb/dwarf2read.c
===================================================================
--- gdb-6.8.50.20090803.orig/gdb/dwarf2read.c 2009-08-03 16:56:10.000000000 +0200
+++ gdb-6.8.50.20090803/gdb/dwarf2read.c 2009-08-03 16:57:40.000000000 +0200
@@ -4107,6 +4107,7 @@ read_func_scope (struct die_info *die, s
--- gdb-6.8.50.20090909.orig/gdb/dwarf2read.c 2009-09-09 19:19:46.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/dwarf2read.c 2009-09-09 19:20:00.000000000 +0200
@@ -4130,6 +4130,7 @@ read_func_scope (struct die_info *die, s
struct block *block;
unsigned die_children = 0;
int inlined_func = (die->tag == DW_TAG_inlined_subroutine);
@ -557,7 +557,7 @@ Index: gdb-6.8.50.20090803/gdb/dwarf2read.c
if (inlined_func)
{
@@ -4148,7 +4149,10 @@ read_func_scope (struct die_info *die, s
@@ -4171,7 +4172,10 @@ read_func_scope (struct die_info *die, s
add_to_cu_func_list (name, lowpc, highpc, cu);
new = push_context (0, lowpc);

View File

@ -1,237 +0,0 @@
http://sourceware.org/ml/gdb-patches/2009-08/msg00310.html
http://sourceware.org/ml/gdb-cvs/2009-08/msg00092.html
2009-08-19 Ulrich Weigand <uweigand@de.ibm.com>
* value.c (enum internalvar_kind): Replace INTERNALVAR_SCALAR by
INTERNALVAR_INTEGER and INTERNALVAR_POINTER.
(union internalvar_data): Replace "scalar" member by "integer"
and "pointer".
(value_of_internalvar): Handle INTERNALVAR_INTEGER and
INTERNALVAR_POINTER instead of INTERNALVAR_SCALAR.
(get_internalvar_integer): Likewise.
(set_internalvar): Likewise.
(set_internalvar_integer): Likewise.
(preserve_one_internalvar): Likewise.
(value_from_pointer): Handle typedef'd pointer types.
2009-08-19 Doug Evans <dje@google.com>
* gdb.base/gdbvars.c: New file.
* gdb.base/gdbvars.exp: Test convenience vars with program variables.
--- src/gdb/value.c 2009/08/13 18:39:20 1.92
+++ src/gdb/value.c 2009/08/19 13:00:28 1.93
@@ -920,8 +920,11 @@
/* The internal variable holds a GDB internal convenience function. */
INTERNALVAR_FUNCTION,
- /* The variable holds a simple scalar value. */
- INTERNALVAR_SCALAR,
+ /* The variable holds an integer value. */
+ INTERNALVAR_INTEGER,
+
+ /* The variable holds a pointer value. */
+ INTERNALVAR_POINTER,
/* The variable holds a GDB-provided string. */
INTERNALVAR_STRING,
@@ -944,19 +947,22 @@
int canonical;
} fn;
- /* A scalar value used with INTERNALVAR_SCALAR. */
+ /* An integer value used with INTERNALVAR_INTEGER. */
struct
{
/* If type is non-NULL, it will be used as the type to generate
a value for this internal variable. If type is NULL, a default
integer type for the architecture is used. */
struct type *type;
- union
- {
- LONGEST l; /* Used with TYPE_CODE_INT and NULL types. */
- CORE_ADDR a; /* Used with TYPE_CODE_PTR types. */
- } val;
- } scalar;
+ LONGEST val;
+ } integer;
+
+ /* A pointer value used with INTERNALVAR_POINTER. */
+ struct
+ {
+ struct type *type;
+ CORE_ADDR val;
+ } pointer;
/* A string value used with INTERNALVAR_STRING. */
char *string;
@@ -1082,16 +1088,16 @@
val = allocate_value (builtin_type (gdbarch)->internal_fn);
break;
- case INTERNALVAR_SCALAR:
- if (!var->u.scalar.type)
+ case INTERNALVAR_INTEGER:
+ if (!var->u.integer.type)
val = value_from_longest (builtin_type (gdbarch)->builtin_int,
- var->u.scalar.val.l);
- else if (TYPE_CODE (var->u.scalar.type) == TYPE_CODE_INT)
- val = value_from_longest (var->u.scalar.type, var->u.scalar.val.l);
- else if (TYPE_CODE (var->u.scalar.type) == TYPE_CODE_PTR)
- val = value_from_pointer (var->u.scalar.type, var->u.scalar.val.a);
+ var->u.integer.val);
else
- internal_error (__FILE__, __LINE__, "bad type");
+ val = value_from_longest (var->u.integer.type, var->u.integer.val);
+ break;
+
+ case INTERNALVAR_POINTER:
+ val = value_from_pointer (var->u.pointer.type, var->u.pointer.val);
break;
case INTERNALVAR_STRING:
@@ -1145,14 +1151,9 @@
{
switch (var->kind)
{
- case INTERNALVAR_SCALAR:
- if (var->u.scalar.type == NULL
- || TYPE_CODE (var->u.scalar.type) == TYPE_CODE_INT)
- {
- *result = var->u.scalar.val.l;
- return 1;
- }
- /* Fall through. */
+ case INTERNALVAR_INTEGER:
+ *result = var->u.integer.val;
+ return 1;
default:
return 0;
@@ -1224,15 +1225,15 @@
break;
case TYPE_CODE_INT:
- new_kind = INTERNALVAR_SCALAR;
- new_data.scalar.type = value_type (val);
- new_data.scalar.val.l = value_as_long (val);
+ new_kind = INTERNALVAR_INTEGER;
+ new_data.integer.type = value_type (val);
+ new_data.integer.val = value_as_long (val);
break;
case TYPE_CODE_PTR:
- new_kind = INTERNALVAR_SCALAR;
- new_data.scalar.type = value_type (val);
- new_data.scalar.val.a = value_as_address (val);
+ new_kind = INTERNALVAR_POINTER;
+ new_data.pointer.type = value_type (val);
+ new_data.pointer.val = value_as_address (val);
break;
default:
@@ -1269,9 +1270,9 @@
/* Clean up old contents. */
clear_internalvar (var);
- var->kind = INTERNALVAR_SCALAR;
- var->u.scalar.type = NULL;
- var->u.scalar.val.l = l;
+ var->kind = INTERNALVAR_INTEGER;
+ var->u.integer.type = NULL;
+ var->u.integer.val = l;
}
void
@@ -1426,10 +1427,16 @@
{
switch (var->kind)
{
- case INTERNALVAR_SCALAR:
- if (var->u.scalar.type && TYPE_OBJFILE (var->u.scalar.type) == objfile)
- var->u.scalar.type
- = copy_type_recursive (objfile, var->u.scalar.type, copied_types);
+ case INTERNALVAR_INTEGER:
+ if (var->u.integer.type && TYPE_OBJFILE (var->u.integer.type) == objfile)
+ var->u.integer.type
+ = copy_type_recursive (objfile, var->u.integer.type, copied_types);
+ break;
+
+ case INTERNALVAR_POINTER:
+ if (TYPE_OBJFILE (var->u.pointer.type) == objfile)
+ var->u.pointer.type
+ = copy_type_recursive (objfile, var->u.pointer.type, copied_types);
break;
case INTERNALVAR_VALUE:
@@ -2164,7 +2171,7 @@
value_from_pointer (struct type *type, CORE_ADDR addr)
{
struct value *val = allocate_value (type);
- store_typed_address (value_contents_raw (val), type, addr);
+ store_typed_address (value_contents_raw (val), check_typedef (type), addr);
return val;
}
--- src/gdb/testsuite/gdb.base/gdbvars.c
+++ src/gdb/testsuite/gdb.base/gdbvars.c 2009-08-19 15:10:47.270783000 +0000
@@ -0,0 +1,16 @@
+/* Simple program to help exercise gdb's convenience variables. */
+
+typedef void *ptr;
+
+ptr p = &p;
+
+int
+main ()
+{
+#ifdef usestubs
+ set_debug_traps ();
+ breakpoint ();
+#endif
+
+ return 0;
+}
--- src/gdb/testsuite/gdb.base/gdbvars.exp 2009/01/03 05:58:03 1.6
+++ src/gdb/testsuite/gdb.base/gdbvars.exp 2009/08/19 13:00:29 1.7
@@ -22,6 +22,15 @@
set prms_id 0
set bug_id 0
+set testfile "gdbvars"
+set srcfile ${testfile}.c
+set binfile ${objdir}/${subdir}/${testfile}
+
+if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
+ untested gdbvars.exp
+ return -1
+}
+
proc test_convenience_variables {} {
global gdb_prompt
@@ -101,13 +110,23 @@
"Use value-history element in arithmetic expression"
}
+proc test_with_program {} {
+ global hex
+ gdb_test "set \$prog_var = p" "" \
+ "Set a new convenience variable to a program variable"
+ gdb_test "print /x \$prog_var" " = $hex" \
+ "Print contents of new convenience variable of program variable"
+}
+
# Start with a fresh gdb.
gdb_exit
gdb_start
gdb_reinitialize_dir $srcdir/$subdir
+gdb_load ${binfile}
send_gdb "set print sevenbit-strings\n" ; gdb_expect -re ".*$gdb_prompt $"
test_value_history
test_convenience_variables
+test_with_program

File diff suppressed because it is too large Load Diff

View File

@ -1,245 +0,0 @@
http://sourceware.org/ml/gdb-cvs/2009-07/msg00143.html
2009-07-21 Daniel Jacobowitz <dan@codesourcery.com>
Vladimir Prus <vladimir@codesourcery.com>
* valops.c (value_fetch_lazy): Handle bitfields explicitly.
(value_assign): Remove unnecessary FIXME. Honor the container
type of bitfields if possible.
* value.c (struct value): Add parent field.
(value_parent): New function.
(value_free): Free the parent also.
(value_copy): Copy the parent also.
(value_primitive_field): Do not read the contents of a lazy
value to create a child bitfield value. Set bitpos and offset
according to the container type if possible.
(unpack_bits_as_long): Rename from unpack_field_as_long. Take
field_type, bitpos, and bitsize instead of type and fieldno.
(unpack_field_as_long): Use unpack_bits_as_long.
* value.h (value_parent, unpack_bits_as_long): New prototypes.
[ Reverted, backported for Fedora. ]
--- ./gdb/valops.c 2009-08-28 19:27:30.000000000 +0200
+++ ./gdb/valops.c 2009-08-28 19:27:59.000000000 +0200
@@ -689,25 +689,7 @@ value_fetch_lazy (struct value *val)
{
gdb_assert (value_lazy (val));
allocate_value_contents (val);
- if (value_bitsize (val))
- {
- /* To read a lazy bitfield, read the entire enclosing value. This
- prevents reading the same block of (possibly volatile) memory once
- per bitfield. It would be even better to read only the containing
- word, but we have no way to record that just specific bits of a
- value have been fetched. */
- struct type *type = check_typedef (value_type (val));
- enum bfd_endian byte_order = gdbarch_byte_order (get_type_arch (type));
- struct value *parent = value_parent (val);
- LONGEST offset = value_offset (val);
- LONGEST num = unpack_bits_as_long (value_type (val),
- value_contents (parent) + offset,
- value_bitpos (val),
- value_bitsize (val));
- int length = TYPE_LENGTH (type);
- store_signed_integer (value_contents_raw (val), length, byte_order, num);
- }
- else if (VALUE_LVAL (val) == lval_memory)
+ if (VALUE_LVAL (val) == lval_memory)
{
CORE_ADDR addr = value_raw_address (val);
@@ -883,20 +865,13 @@ value_assign (struct value *toval, struc
if (value_bitsize (toval))
{
+ /* We assume that the argument to read_memory is in units
+ of host chars. FIXME: Is that correct? */
changed_len = (value_bitpos (toval)
+ value_bitsize (toval)
+ HOST_CHAR_BIT - 1)
/ HOST_CHAR_BIT;
- /* If we can read-modify-write exactly the size of the
- containing type (e.g. short or int) then do so. This
- is safer for volatile bitfields mapped to hardware
- registers. */
- if (changed_len < TYPE_LENGTH (type)
- && TYPE_LENGTH (type) <= (int) sizeof (LONGEST)
- && ((LONGEST) value_address (toval) % TYPE_LENGTH (type)) == 0)
- changed_len = TYPE_LENGTH (type);
-
if (changed_len > (int) sizeof (LONGEST))
error (_("Can't handle bitfields which don't fit in a %d bit word."),
(int) sizeof (LONGEST) * HOST_CHAR_BIT);
--- ./gdb/value.c 2009-08-28 19:27:29.000000000 +0200
+++ ./gdb/value.c 2009-08-28 19:28:34.000000000 +0200
@@ -110,11 +110,6 @@ struct value
gdbarch_bits_big_endian=1 targets, it is the position of the MSB. */
int bitpos;
- /* Only used for bitfields; the containing value. This allows a
- single read from the target when displaying multiple
- bitfields. */
- struct value *parent;
-
/* Frame register value is relative to. This will be described in
the lval enum above as "lval_register". */
struct frame_id frame_id;
@@ -392,12 +387,6 @@ set_value_bitsize (struct value *value,
value->bitsize = bit;
}
-struct value *
-value_parent (struct value *value)
-{
- return value->parent;
-}
-
gdb_byte *
value_contents_raw (struct value *value)
{
@@ -617,11 +606,6 @@ value_free (struct value *val)
if (val->reference_count > 0)
return;
- /* If there's an associated parent value, drop our reference to
- it. */
- if (val->parent != NULL)
- value_free (val->parent);
-
type_decref (val->type);
type_decref (val->enclosing_type);
@@ -750,9 +734,6 @@ value_copy (struct value *arg)
TYPE_LENGTH (value_enclosing_type (arg)));
}
- val->parent = arg->parent;
- if (val->parent)
- value_incref (val->parent);
if (VALUE_LVAL (val) == lval_computed)
{
struct lval_funcs *funcs = val->location.computed.funcs;
@@ -1946,28 +1927,15 @@ value_primitive_field (struct value *arg
if (TYPE_FIELD_BITSIZE (arg_type, fieldno))
{
- /* Create a new value for the bitfield, with bitpos and bitsize
- set. If possible, arrange offset and bitpos so that we can
- do a single aligned read of the size of the containing type.
- Otherwise, adjust offset to the byte containing the first
- bit. Assume that the address, offset, and embedded offset
- are sufficiently aligned. */
- int bitpos = TYPE_FIELD_BITPOS (arg_type, fieldno);
- int container_bitsize = TYPE_LENGTH (type) * 8;
-
- v = allocate_value_lazy (type);
+ v = value_from_longest (type,
+ unpack_field_as_long (arg_type,
+ value_contents (arg1)
+ + offset,
+ fieldno));
+ v->bitpos = TYPE_FIELD_BITPOS (arg_type, fieldno) % 8;
v->bitsize = TYPE_FIELD_BITSIZE (arg_type, fieldno);
- if ((bitpos % container_bitsize) + v->bitsize <= container_bitsize
- && TYPE_LENGTH (type) <= (int) sizeof (LONGEST))
- v->bitpos = bitpos % container_bitsize;
- else
- v->bitpos = bitpos % 8;
- v->offset = value_offset (arg1) + value_embedded_offset (arg1)
- + (bitpos - v->bitpos) / 8;
- v->parent = arg1;
- value_incref (v->parent);
- if (!value_lazy (arg1))
- value_fetch_lazy (v);
+ v->offset = value_offset (arg1) + offset
+ + TYPE_FIELD_BITPOS (arg_type, fieldno) / 8;
}
else if (fieldno < TYPE_N_BASECLASSES (arg_type))
{
@@ -2094,9 +2062,8 @@ value_fn_field (struct value **arg1p, st
}
-/* Unpack a bitfield of the specified FIELD_TYPE, from the anonymous
- object at VALADDR. The bitfield starts at BITPOS bits and contains
- BITSIZE bits.
+/* Unpack a field FIELDNO of the specified TYPE, from the anonymous object at
+ VALADDR.
Extracting bits depends on endianness of the machine. Compute the
number of least significant bits to discard. For big endian machines,
@@ -2110,21 +2077,24 @@ value_fn_field (struct value **arg1p, st
If the field is signed, we also do sign extension. */
LONGEST
-unpack_bits_as_long (struct type *field_type, const gdb_byte *valaddr,
- int bitpos, int bitsize)
+unpack_field_as_long (struct type *type, const gdb_byte *valaddr, int fieldno)
{
- enum bfd_endian byte_order = gdbarch_byte_order (get_type_arch (field_type));
+ enum bfd_endian byte_order = gdbarch_byte_order (get_type_arch (type));
ULONGEST val;
ULONGEST valmask;
+ int bitpos = TYPE_FIELD_BITPOS (type, fieldno);
+ int bitsize = TYPE_FIELD_BITSIZE (type, fieldno);
int lsbcount;
+ struct type *field_type;
val = extract_unsigned_integer (valaddr + bitpos / 8,
sizeof (val), byte_order);
+ field_type = TYPE_FIELD_TYPE (type, fieldno);
CHECK_TYPEDEF (field_type);
/* Extract bits. See comment above. */
- if (gdbarch_bits_big_endian (get_type_arch (field_type)))
+ if (gdbarch_bits_big_endian (get_type_arch (type)))
lsbcount = (sizeof val * 8 - bitpos % 8 - bitsize);
else
lsbcount = (bitpos % 8);
@@ -2148,19 +2118,6 @@ unpack_bits_as_long (struct type *field_
return (val);
}
-/* Unpack a field FIELDNO of the specified TYPE, from the anonymous object at
- VALADDR. See unpack_bits_as_long for more details. */
-
-LONGEST
-unpack_field_as_long (struct type *type, const gdb_byte *valaddr, int fieldno)
-{
- int bitpos = TYPE_FIELD_BITPOS (type, fieldno);
- int bitsize = TYPE_FIELD_BITSIZE (type, fieldno);
- struct type *field_type = TYPE_FIELD_TYPE (type, fieldno);
-
- return unpack_bits_as_long (field_type, valaddr, bitpos, bitsize);
-}
-
/* Modify the value of a bitfield. ADDR points to a block of memory in
target byte order; the bitfield starts in the byte pointed to. FIELDVAL
is the desired value of the field, in host byte order. BITPOS and BITSIZE
--- ./gdb/value.h 2009-08-28 19:27:29.000000000 +0200
+++ ./gdb/value.h 2009-08-28 19:27:59.000000000 +0200
@@ -71,12 +71,6 @@ extern void set_value_bitsize (struct va
extern int value_bitpos (struct value *);
extern void set_value_bitpos (struct value *, int bit);
-/* Only used for bitfields; the containing value. This allows a
- single read from the target when displaying multiple
- bitfields. */
-
-struct value *value_parent (struct value *);
-
/* Describes offset of a value within lval of a structure in bytes.
If lval == lval_memory, this is an offset to the address. If lval
== lval_register, this is a further offset from location.address
@@ -330,8 +324,6 @@ extern LONGEST unpack_long (struct type
extern DOUBLEST unpack_double (struct type *type, const gdb_byte *valaddr,
int *invp);
extern CORE_ADDR unpack_pointer (struct type *type, const gdb_byte *valaddr);
-LONGEST unpack_bits_as_long (struct type *field_type, const gdb_byte *valaddr,
- int bitpos, int bitsize);
extern LONGEST unpack_field_as_long (struct type *type,
const gdb_byte *valaddr,
int fieldno);

View File

@ -7,9 +7,11 @@ gdb/
* config.in: Regenerate.
* configure: Regenerate.
--- a/gdb/configure.ac
+++ b/gdb/configure.ac
@@ -536,6 +536,21 @@ if test "$with_system_readline" = yes; then
Index: gdb-6.8.50.20090909/gdb/configure.ac
===================================================================
--- gdb-6.8.50.20090909.orig/gdb/configure.ac 2009-09-09 20:11:04.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/configure.ac 2009-09-09 20:11:54.000000000 +0200
@@ -773,6 +773,21 @@ if test "$with_system_readline" = yes; t
READLINE=-lreadline
READLINE_DEPS=
READLINE_CFLAGS=
@ -31,9 +33,11 @@ gdb/
else
READLINE='$(READLINE_DIR)/libreadline.a'
READLINE_DEPS='$(READLINE)'
--- a/gdb/config.in
+++ b/gdb/config.in
@@ -790,6 +790,9 @@
Index: gdb-6.8.50.20090909/gdb/config.in
===================================================================
--- gdb-6.8.50.20090909.orig/gdb/config.in 2009-09-09 20:11:33.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/config.in 2009-09-09 20:12:00.000000000 +0200
@@ -815,6 +815,9 @@
/* Define to `int' if <sys/types.h> does not define. */
#undef pid_t
@ -43,9 +47,11 @@ gdb/
/* Define to the equivalent of the C99 'restrict' keyword, or to
nothing if this is not supported. Do not define if restrict is
supported directly. */
--- a/gdb/configure
+++ b/gdb/configure
@@ -10763,6 +10763,69 @@ if test "$with_system_readline" = yes; then
Index: gdb-6.8.50.20090909/gdb/configure
===================================================================
--- gdb-6.8.50.20090909.orig/gdb/configure 2009-09-09 20:11:07.000000000 +0200
+++ gdb-6.8.50.20090909/gdb/configure 2009-09-09 20:11:54.000000000 +0200
@@ -9197,6 +9197,69 @@ if test "$with_system_readline" = yes; t
READLINE=-lreadline
READLINE_DEPS=
READLINE_CFLAGS=

View File

@ -10,11 +10,11 @@ Name: gdb%{?_with_debug:-debug}
# Set version to contents of gdb/version.in.
# NOTE: the FSF gdb versions are numbered N.M for official releases, like 6.3
# and, since January 2005, X.Y.Z.date for daily snapshots, like 6.3.50.20050112 # (daily snapshot from mailine), or 6.3.0.20040112 (head of the release branch).
Version: 6.8.50.20090818
Version: 6.8.50.20090910
# The release always contains a leading reserved number, start it at 1.
# `upstream' is not a part of `name' to stay fully rpm dependencies compatible for the testing.
Release: 8%{?_with_upstream:.upstream}%{?dist}
Release: 1%{?_with_upstream:.upstream}%{?dist}
License: GPLv3+
Group: Development/Debuggers
@ -218,8 +218,8 @@ Patch229: gdb-6.3-bz140532-ppc-unwinding-test.patch
# Testcase for exec() from threaded program (BZ 202689).
Patch231: gdb-6.3-bz202689-exec-from-pthread-test.patch
# Backported post gdb-6.8.50.20090818 snapshot fixups.
Patch232: gdb-6.8.50.20090818-upstream.patch
# Backported post gdb-6.8.50.20090910 snapshot fixups.
#Patch232: gdb-6.8.50.20090910-upstream.patch
# Testcase for PPC Power6/DFP instructions disassembly (BZ 230000).
Patch234: gdb-6.6-bz230000-power6-disassembly-test.patch
@ -363,9 +363,6 @@ Patch375: gdb-readline-6.0.patch
# Temporarily disable assertion checks crashing in qsort_cmp (BZ 515434).
Patch378: gdb-bz515434-qsort_cmp.patch
# Revert bitfields regression (BZ 520129).
Patch380: gdb-bz520129-drow-bitfields.patch
BuildRequires: ncurses-devel texinfo gettext flex bison expat-devel
Requires: readline
BuildRequires: readline-devel
@ -450,7 +447,7 @@ rm -f gdb/jv-exp.c gdb/m2-exp.c gdb/objc-exp.c gdb/p-exp.c
%if 0%{!?_with_upstream:1}
%patch232 -p1
#patch232 -p1
%patch349 -p1
%patch1 -p1
%patch3 -p1
@ -555,7 +552,6 @@ rm -f gdb/jv-exp.c gdb/m2-exp.c gdb/objc-exp.c gdb/p-exp.c
%patch360 -p1
%patch375 -p1
%patch378 -p1
%patch380 -p1
%patch124 -p1
find -name "*.orig" | xargs rm -f
@ -829,6 +825,12 @@ fi
%endif
%changelog
* Thu Sep 10 2009 Jan Kratochvil <jan.kratochvil@redhat.com> - 6.8.50.20090910-1
- Upgrade to the FSF GDB gdb-6.8.50 snapshot: 6.8.50.20090910
- archer-jankratochvil-fedora12 commit: 941eb487a42933e442cb4d11344cda96ecb8a04d
- [next-over-throw] Fix exceptions thrown during next (Tom Tromey).
- [bp_location-accel] Do not (much) slow down on 500+ breakpoints (me).
* Thu Sep 3 2009 Jan Kratochvil <jan.kratochvil@redhat.com> - 6.8.50.20090818-8
- archer-jankratochvil-fedora12 commit: a081d2f12945e9468edd5f4341d3e945bd0fefe9
- [expr] Fix too slow lookups in large C++ programs (Sami Wagiaalla).

View File

@ -1 +1 @@
63d848cfdd9a43a9b2b412a220d00366 gdb-6.8.50.20090818.tar.bz2
476e005b8bb33c5c3b3f0b7bd93988bc gdb-6.8.50.20090910.tar.bz2