- Upgrade to the FSF GDB gdb-6.8.50 snapshot.
This commit is contained in:
parent
ec0fcb652c
commit
81783d0ff2
@ -1 +1 @@
|
||||
gdb-6.8.50.20081214.tar.bz2
|
||||
gdb-6.8.50.20090209.tar.bz2
|
||||
|
@ -25,10 +25,10 @@
|
||||
|
||||
Port to GDB-6.7.
|
||||
|
||||
Index: gdb-6.8.50.20081128/gdb/symfile-mem.c
|
||||
Index: gdb-6.8.50.20090209/gdb/symfile-mem.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081128.orig/gdb/symfile-mem.c 2008-01-01 23:53:13.000000000 +0100
|
||||
+++ gdb-6.8.50.20081128/gdb/symfile-mem.c 2008-12-02 22:15:53.000000000 +0100
|
||||
--- gdb-6.8.50.20090209.orig/gdb/symfile-mem.c 2009-01-03 06:57:53.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/symfile-mem.c 2009-02-09 15:49:25.000000000 +0100
|
||||
@@ -56,6 +56,14 @@
|
||||
#include "elf/common.h"
|
||||
|
||||
@ -53,10 +53,10 @@ Index: gdb-6.8.50.20081128/gdb/symfile-mem.c
|
||||
if (nbfd == NULL)
|
||||
error (_("Failed to read a valid object file image from memory."));
|
||||
|
||||
Index: gdb-6.8.50.20081128/gdb/target.c
|
||||
Index: gdb-6.8.50.20090209/gdb/target.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081128.orig/gdb/target.c 2008-11-09 12:27:18.000000000 +0100
|
||||
+++ gdb-6.8.50.20081128/gdb/target.c 2008-12-02 22:17:28.000000000 +0100
|
||||
--- gdb-6.8.50.20090209.orig/gdb/target.c 2009-02-06 23:21:26.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/target.c 2009-02-09 15:50:39.000000000 +0100
|
||||
@@ -57,7 +57,7 @@ static int nosymbol (char *, CORE_ADDR *
|
||||
|
||||
static void tcomplain (void) ATTR_NORETURN;
|
||||
@ -66,7 +66,7 @@ Index: gdb-6.8.50.20081128/gdb/target.c
|
||||
|
||||
static int return_zero (void);
|
||||
|
||||
@@ -299,7 +299,7 @@ void target_create_inferior (char *exec_
|
||||
@@ -294,7 +294,7 @@ target_create_inferior (char *exec_file,
|
||||
}
|
||||
|
||||
|
||||
@ -75,7 +75,7 @@ Index: gdb-6.8.50.20081128/gdb/target.c
|
||||
nomemory (CORE_ADDR memaddr, char *myaddr, int len, int write,
|
||||
struct target_ops *t)
|
||||
{
|
||||
@@ -530,7 +530,7 @@ update_current_target (void)
|
||||
@@ -522,7 +522,7 @@ update_current_target (void)
|
||||
(void (*) (struct regcache *))
|
||||
noprocess);
|
||||
de_fault (deprecated_xfer_memory,
|
||||
@ -84,7 +84,7 @@ Index: gdb-6.8.50.20081128/gdb/target.c
|
||||
nomemory);
|
||||
de_fault (to_files_info,
|
||||
(void (*) (struct target_ops *))
|
||||
@@ -1250,7 +1250,7 @@ target_xfer_partial (struct target_ops *
|
||||
@@ -1252,7 +1252,7 @@ target_xfer_partial (struct target_ops *
|
||||
it makes no progress, and then return how much was transferred). */
|
||||
|
||||
int
|
||||
@ -93,7 +93,7 @@ Index: gdb-6.8.50.20081128/gdb/target.c
|
||||
{
|
||||
if (target_read (¤t_target, TARGET_OBJECT_MEMORY, NULL,
|
||||
myaddr, memaddr, len) == len)
|
||||
@@ -1260,7 +1260,7 @@ target_read_memory (CORE_ADDR memaddr, g
|
||||
@@ -1262,7 +1262,7 @@ target_read_memory (CORE_ADDR memaddr, g
|
||||
}
|
||||
|
||||
int
|
||||
@ -102,7 +102,7 @@ Index: gdb-6.8.50.20081128/gdb/target.c
|
||||
{
|
||||
if (target_write (¤t_target, TARGET_OBJECT_MEMORY, NULL,
|
||||
myaddr, memaddr, len) == len)
|
||||
@@ -2690,8 +2690,8 @@ debug_to_prepare_to_store (struct regcac
|
||||
@@ -2723,8 +2723,8 @@ debug_to_prepare_to_store (struct regcac
|
||||
fprintf_unfiltered (gdb_stdlog, "target_prepare_to_store ()\n");
|
||||
}
|
||||
|
||||
@ -113,23 +113,22 @@ Index: gdb-6.8.50.20081128/gdb/target.c
|
||||
int write, struct mem_attrib *attrib,
|
||||
struct target_ops *target)
|
||||
{
|
||||
@@ -2701,9 +2701,9 @@ deprecated_debug_xfer_memory (CORE_ADDR
|
||||
@@ -2734,8 +2734,8 @@ deprecated_debug_xfer_memory (CORE_ADDR
|
||||
attrib, target);
|
||||
|
||||
fprintf_unfiltered (gdb_stdlog,
|
||||
- "target_xfer_memory (0x%x, xxx, %d, %s, xxx) = %d",
|
||||
+ "target_xfer_memory (0x%x, xxx, %ld, %s, xxx) = %d",
|
||||
(unsigned int) memaddr, /* possable truncate long long */
|
||||
- len, write ? "write" : "read", retval);
|
||||
+ (long)len, write ? "write" : "read", retval);
|
||||
- "target_xfer_memory (%s, xxx, %d, %s, xxx) = %d",
|
||||
- paddress (memaddr), len, write ? "write" : "read",
|
||||
+ "target_xfer_memory (%s, xxx, %ld, %s, xxx) = %d",
|
||||
+ paddress (memaddr), (long) len, write ? "write" : "read",
|
||||
retval);
|
||||
|
||||
if (retval > 0)
|
||||
{
|
||||
Index: gdb-6.8.50.20081128/gdb/target.h
|
||||
Index: gdb-6.8.50.20090209/gdb/target.h
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081128.orig/gdb/target.h 2008-11-09 12:27:18.000000000 +0100
|
||||
+++ gdb-6.8.50.20081128/gdb/target.h 2008-12-02 22:15:53.000000000 +0100
|
||||
@@ -358,10 +358,10 @@ struct target_ops
|
||||
--- gdb-6.8.50.20090209.orig/gdb/target.h 2009-02-06 23:59:01.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/target.h 2009-02-09 15:49:25.000000000 +0100
|
||||
@@ -360,10 +360,10 @@ struct target_ops
|
||||
NOTE: cagney/2004-10-01: This has been entirely superseeded by
|
||||
to_xfer_partial and inferior inheritance. */
|
||||
|
||||
@ -144,7 +143,7 @@ Index: gdb-6.8.50.20081128/gdb/target.h
|
||||
|
||||
void (*to_files_info) (struct target_ops *);
|
||||
int (*to_insert_breakpoint) (struct bp_target_info *);
|
||||
@@ -661,13 +661,14 @@ extern DCACHE *target_dcache;
|
||||
@@ -663,13 +663,14 @@ extern DCACHE *target_dcache;
|
||||
|
||||
extern int target_read_string (CORE_ADDR, char **, int, int *);
|
||||
|
||||
@ -163,10 +162,10 @@ Index: gdb-6.8.50.20081128/gdb/target.h
|
||||
|
||||
/* 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.20081128/gdb/dcache.c
|
||||
Index: gdb-6.8.50.20090209/gdb/dcache.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081128.orig/gdb/dcache.c 2008-09-23 20:35:29.000000000 +0200
|
||||
+++ gdb-6.8.50.20081128/gdb/dcache.c 2008-12-02 22:15:53.000000000 +0100
|
||||
--- gdb-6.8.50.20090209.orig/gdb/dcache.c 2009-01-03 06:57:51.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/dcache.c 2009-02-09 15:49:25.000000000 +0100
|
||||
@@ -524,9 +524,9 @@ dcache_free (DCACHE *dcache)
|
||||
|
||||
This routine is indended to be called by remote_xfer_ functions. */
|
||||
@ -179,10 +178,10 @@ Index: gdb-6.8.50.20081128/gdb/dcache.c
|
||||
{
|
||||
int i;
|
||||
int (*xfunc) (DCACHE *dcache, CORE_ADDR addr, gdb_byte *ptr);
|
||||
Index: gdb-6.8.50.20081128/gdb/dcache.h
|
||||
Index: gdb-6.8.50.20090209/gdb/dcache.h
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081128.orig/gdb/dcache.h 2008-01-01 23:53:09.000000000 +0100
|
||||
+++ gdb-6.8.50.20081128/gdb/dcache.h 2008-12-02 22:15:53.000000000 +0100
|
||||
--- gdb-6.8.50.20090209.orig/gdb/dcache.h 2009-01-03 06:57:51.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/dcache.h 2009-02-09 15:49:25.000000000 +0100
|
||||
@@ -35,7 +35,7 @@ void dcache_free (DCACHE *);
|
||||
|
||||
/* Simple to call from <remote>_xfer_memory */
|
||||
@ -193,11 +192,11 @@ Index: gdb-6.8.50.20081128/gdb/dcache.h
|
||||
+ LONGEST len, int should_write);
|
||||
|
||||
#endif /* DCACHE_H */
|
||||
Index: gdb-6.8.50.20081128/gdb/exec.c
|
||||
Index: gdb-6.8.50.20090209/gdb/exec.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081128.orig/gdb/exec.c 2008-10-30 19:42:28.000000000 +0100
|
||||
+++ gdb-6.8.50.20081128/gdb/exec.c 2008-12-02 22:15:53.000000000 +0100
|
||||
@@ -459,8 +459,8 @@ map_vmap (bfd *abfd, bfd *arch)
|
||||
--- gdb-6.8.50.20090209.orig/gdb/exec.c 2009-01-08 17:32:29.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/exec.c 2009-02-09 15:49:25.000000000 +0100
|
||||
@@ -466,8 +466,8 @@ map_vmap (bfd *abfd, bfd *arch)
|
||||
The same routine is used to handle both core and exec files;
|
||||
we just tail-call it with more arguments to select between them. */
|
||||
|
||||
@ -208,11 +207,11 @@ Index: gdb-6.8.50.20081128/gdb/exec.c
|
||||
struct mem_attrib *attrib, struct target_ops *target)
|
||||
{
|
||||
int res;
|
||||
Index: gdb-6.8.50.20081128/gdb/linux-nat.c
|
||||
Index: gdb-6.8.50.20090209/gdb/linux-nat.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081128.orig/gdb/linux-nat.c 2008-12-02 21:11:11.000000000 +0100
|
||||
+++ gdb-6.8.50.20081128/gdb/linux-nat.c 2008-12-02 22:15:53.000000000 +0100
|
||||
@@ -4053,7 +4053,7 @@ linux_xfer_partial (struct target_ops *o
|
||||
--- gdb-6.8.50.20090209.orig/gdb/linux-nat.c 2009-02-09 15:48:46.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/linux-nat.c 2009-02-09 15:49:25.000000000 +0100
|
||||
@@ -4283,7 +4283,7 @@ linux_xfer_partial (struct target_ops *o
|
||||
Revert when Bugzilla 147436 is fixed. */
|
||||
if (iterate_over_lwps (ia64_linux_check_stack_region, &range) != NULL)
|
||||
{ /* This region contains ia64 rse registers, we have to re-read. */
|
||||
@ -221,10 +220,10 @@ Index: gdb-6.8.50.20081128/gdb/linux-nat.c
|
||||
|
||||
/* Re-read register stack area. */
|
||||
xxfer = super_xfer_partial (ops, object, annex,
|
||||
Index: gdb-6.8.50.20081128/gdb/remote.c
|
||||
Index: gdb-6.8.50.20090209/gdb/remote.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081128.orig/gdb/remote.c 2008-11-24 17:53:44.000000000 +0100
|
||||
+++ gdb-6.8.50.20081128/gdb/remote.c 2008-12-02 22:17:00.000000000 +0100
|
||||
--- gdb-6.8.50.20090209.orig/gdb/remote.c 2009-02-06 23:59:00.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/remote.c 2009-02-09 15:49:25.000000000 +0100
|
||||
@@ -25,6 +25,7 @@
|
||||
#include "gdb_string.h"
|
||||
#include <ctype.h>
|
||||
@ -233,7 +232,7 @@ Index: gdb-6.8.50.20081128/gdb/remote.c
|
||||
#include "inferior.h"
|
||||
#include "bfd.h"
|
||||
#include "symfile.h"
|
||||
@@ -5687,12 +5688,19 @@ handle_notification (char *buf, size_t l
|
||||
@@ -5688,12 +5689,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. */
|
||||
|
||||
@ -255,7 +254,7 @@ Index: gdb-6.8.50.20081128/gdb/remote.c
|
||||
|
||||
set_general_thread (inferior_ptid);
|
||||
|
||||
@@ -5701,7 +5709,7 @@ remote_xfer_memory (CORE_ADDR mem_addr,
|
||||
@@ -5702,7 +5710,7 @@ remote_xfer_memory (CORE_ADDR mem_addr,
|
||||
else
|
||||
res = remote_read_bytes (mem_addr, buffer, mem_len);
|
||||
|
||||
@ -264,11 +263,11 @@ Index: gdb-6.8.50.20081128/gdb/remote.c
|
||||
}
|
||||
|
||||
/* Sends a packet with content determined by the printf format string
|
||||
Index: gdb-6.8.50.20081128/gdb/remote-sim.c
|
||||
Index: gdb-6.8.50.20090209/gdb/remote-sim.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081128.orig/gdb/remote-sim.c 2008-11-13 02:26:43.000000000 +0100
|
||||
+++ gdb-6.8.50.20081128/gdb/remote-sim.c 2008-12-02 22:15:53.000000000 +0100
|
||||
@@ -763,11 +763,14 @@ gdbsim_prepare_to_store (struct regcache
|
||||
--- gdb-6.8.50.20090209.orig/gdb/remote-sim.c 2009-02-06 23:21:26.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/remote-sim.c 2009-02-09 15:49:25.000000000 +0100
|
||||
@@ -757,11 +757,14 @@ gdbsim_prepare_to_store (struct regcache
|
||||
|
||||
Returns the number of bytes transferred. */
|
||||
|
||||
@ -285,7 +284,7 @@ Index: gdb-6.8.50.20081128/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. */
|
||||
@@ -783,22 +786,22 @@ gdbsim_xfer_inferior_memory (CORE_ADDR m
|
||||
@@ -777,22 +780,22 @@ gdbsim_xfer_inferior_memory (CORE_ADDR m
|
||||
printf_filtered ("gdbsim_xfer_inferior_memory: myaddr 0x");
|
||||
gdb_print_host_address (myaddr, gdb_stdout);
|
||||
printf_filtered (", memaddr 0x%s, len %d, write %d\n",
|
||||
|
@ -26,11 +26,11 @@
|
||||
|
||||
Fix scan_dyntag() for binaries provided by valgrind (BZ 460319).
|
||||
|
||||
Index: gdb-6.8.50.20081209/gdb/amd64-tdep.c
|
||||
Index: gdb-6.8.50.20090209/gdb/amd64-tdep.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081209.orig/gdb/amd64-tdep.c 2008-12-14 14:55:58.000000000 +0100
|
||||
+++ gdb-6.8.50.20081209/gdb/amd64-tdep.c 2008-12-14 14:56:49.000000000 +0100
|
||||
@@ -34,6 +34,7 @@
|
||||
--- gdb-6.8.50.20090209.orig/gdb/amd64-tdep.c 2009-02-09 16:02:28.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/amd64-tdep.c 2009-02-09 16:21:55.000000000 +0100
|
||||
@@ -36,6 +36,7 @@
|
||||
#include "regcache.h"
|
||||
#include "regset.h"
|
||||
#include "symfile.h"
|
||||
@ -38,7 +38,7 @@ Index: gdb-6.8.50.20081209/gdb/amd64-tdep.c
|
||||
|
||||
#include "gdb_assert.h"
|
||||
|
||||
@@ -906,16 +907,28 @@ amd64_analyze_stack_align (CORE_ADDR pc,
|
||||
@@ -1597,16 +1598,28 @@ amd64_analyze_stack_align (CORE_ADDR pc,
|
||||
Any function that doesn't start with this sequence will be assumed
|
||||
to have no prologue and thus no valid frame pointer in %rbp. */
|
||||
|
||||
@ -71,7 +71,7 @@ Index: gdb-6.8.50.20081209/gdb/amd64-tdep.c
|
||||
|
||||
pc = amd64_analyze_stack_align (pc, current_pc, cache);
|
||||
|
||||
@@ -930,18 +943,57 @@ amd64_analyze_prologue (CORE_ADDR pc, CO
|
||||
@@ -1621,18 +1634,57 @@ amd64_analyze_prologue (CORE_ADDR pc, CO
|
||||
|
||||
/* If that's all, return now. */
|
||||
if (current_pc <= pc + 1)
|
||||
@ -132,11 +132,11 @@ Index: gdb-6.8.50.20081209/gdb/amd64-tdep.c
|
||||
return pc;
|
||||
}
|
||||
|
||||
Index: gdb-6.8.50.20081209/gdb/auxv.c
|
||||
Index: gdb-6.8.50.20090209/gdb/auxv.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081209.orig/gdb/auxv.c 2008-12-14 14:55:58.000000000 +0100
|
||||
+++ gdb-6.8.50.20081209/gdb/auxv.c 2008-12-14 14:57:58.000000000 +0100
|
||||
@@ -80,7 +80,7 @@ procfs_xfer_auxv (struct target_ops *ops
|
||||
--- gdb-6.8.50.20090209.orig/gdb/auxv.c 2009-01-03 06:57:50.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/auxv.c 2009-02-09 16:21:55.000000000 +0100
|
||||
@@ -81,7 +81,7 @@ procfs_xfer_auxv (struct target_ops *ops
|
||||
Return 1 if an entry was read into *TYPEP and *VALP. */
|
||||
int
|
||||
default_auxv_parse (struct target_ops *ops, gdb_byte **readptr,
|
||||
@ -145,7 +145,7 @@ Index: gdb-6.8.50.20081209/gdb/auxv.c
|
||||
{
|
||||
const int sizeof_auxv_field = gdbarch_ptr_bit (target_gdbarch)
|
||||
/ TARGET_CHAR_BIT;
|
||||
@@ -107,7 +107,7 @@ default_auxv_parse (struct target_ops *o
|
||||
@@ -108,7 +108,7 @@ default_auxv_parse (struct target_ops *o
|
||||
Return 1 if an entry was read into *TYPEP and *VALP. */
|
||||
int
|
||||
target_auxv_parse (struct target_ops *ops, gdb_byte **readptr,
|
||||
@ -154,7 +154,7 @@ Index: gdb-6.8.50.20081209/gdb/auxv.c
|
||||
{
|
||||
struct target_ops *t;
|
||||
for (t = ops; t != NULL; t = t->beneath)
|
||||
@@ -122,9 +122,10 @@ target_auxv_parse (struct target_ops *op
|
||||
@@ -123,9 +123,10 @@ target_auxv_parse (struct target_ops *op
|
||||
an error getting the information. On success, return 1 after
|
||||
storing the entry's value field in *VALP. */
|
||||
int
|
||||
@ -167,7 +167,7 @@ Index: gdb-6.8.50.20081209/gdb/auxv.c
|
||||
gdb_byte *data;
|
||||
LONGEST n = target_read_alloc (ops, TARGET_OBJECT_AUXV, NULL, &data);
|
||||
gdb_byte *ptr = data;
|
||||
@@ -134,10 +135,10 @@ target_auxv_search (struct target_ops *o
|
||||
@@ -135,10 +136,10 @@ target_auxv_search (struct target_ops *o
|
||||
return n;
|
||||
|
||||
while (1)
|
||||
@ -180,7 +180,7 @@ Index: gdb-6.8.50.20081209/gdb/auxv.c
|
||||
{
|
||||
xfree (data);
|
||||
*valp = val;
|
||||
@@ -160,7 +161,8 @@ target_auxv_search (struct target_ops *o
|
||||
@@ -161,7 +162,8 @@ target_auxv_search (struct target_ops *o
|
||||
int
|
||||
fprint_target_auxv (struct ui_file *file, struct target_ops *ops)
|
||||
{
|
||||
@ -190,7 +190,7 @@ Index: gdb-6.8.50.20081209/gdb/auxv.c
|
||||
gdb_byte *data;
|
||||
LONGEST len = target_read_alloc (ops, TARGET_OBJECT_AUXV, NULL,
|
||||
&data);
|
||||
@@ -170,13 +172,13 @@ fprint_target_auxv (struct ui_file *file
|
||||
@@ -171,13 +173,13 @@ fprint_target_auxv (struct ui_file *file
|
||||
if (len <= 0)
|
||||
return len;
|
||||
|
||||
@ -206,7 +206,7 @@ Index: gdb-6.8.50.20081209/gdb/auxv.c
|
||||
{
|
||||
#define TAG(tag, text, kind) \
|
||||
case tag: name = #tag; description = text; flavor = kind; break
|
||||
@@ -231,7 +233,7 @@ fprint_target_auxv (struct ui_file *file
|
||||
@@ -232,7 +234,7 @@ fprint_target_auxv (struct ui_file *file
|
||||
}
|
||||
|
||||
fprintf_filtered (file, "%-4s %-20s %-30s ",
|
||||
@ -215,7 +215,7 @@ Index: gdb-6.8.50.20081209/gdb/auxv.c
|
||||
switch (flavor)
|
||||
{
|
||||
case dec:
|
||||
@@ -252,7 +254,7 @@ fprint_target_auxv (struct ui_file *file
|
||||
@@ -253,7 +255,7 @@ fprint_target_auxv (struct ui_file *file
|
||||
break;
|
||||
}
|
||||
++ents;
|
||||
@ -224,11 +224,11 @@ Index: gdb-6.8.50.20081209/gdb/auxv.c
|
||||
break;
|
||||
}
|
||||
|
||||
Index: gdb-6.8.50.20081209/gdb/auxv.h
|
||||
Index: gdb-6.8.50.20090209/gdb/auxv.h
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081209.orig/gdb/auxv.h 2008-12-14 14:55:58.000000000 +0100
|
||||
+++ gdb-6.8.50.20081209/gdb/auxv.h 2008-12-14 14:56:49.000000000 +0100
|
||||
@@ -35,14 +35,14 @@ struct target_ops; /* Forward declarati
|
||||
--- gdb-6.8.50.20090209.orig/gdb/auxv.h 2009-01-03 06:57:50.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/auxv.h 2009-02-09 16:21:55.000000000 +0100
|
||||
@@ -36,14 +36,14 @@ struct target_ops; /* Forward declarati
|
||||
Return 1 if an entry was read into *TYPEP and *VALP. */
|
||||
extern int target_auxv_parse (struct target_ops *ops,
|
||||
gdb_byte **readptr, gdb_byte *endptr,
|
||||
@ -245,11 +245,11 @@ Index: gdb-6.8.50.20081209/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.20081209/gdb/breakpoint.c
|
||||
Index: gdb-6.8.50.20090209/gdb/breakpoint.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081209.orig/gdb/breakpoint.c 2008-12-14 14:55:58.000000000 +0100
|
||||
+++ gdb-6.8.50.20081209/gdb/breakpoint.c 2008-12-14 14:56:49.000000000 +0100
|
||||
@@ -3861,7 +3861,8 @@ describe_other_breakpoints (CORE_ADDR pc
|
||||
--- gdb-6.8.50.20090209.orig/gdb/breakpoint.c 2009-02-09 16:12:23.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/breakpoint.c 2009-02-09 16:21:55.000000000 +0100
|
||||
@@ -3894,7 +3894,8 @@ describe_other_breakpoints (CORE_ADDR pc
|
||||
printf_filtered (" (thread %d)", b->thread);
|
||||
printf_filtered ("%s%s ",
|
||||
((b->enable_state == bp_disabled ||
|
||||
@ -259,7 +259,7 @@ Index: gdb-6.8.50.20081209/gdb/breakpoint.c
|
||||
? " (disabled)"
|
||||
: b->enable_state == bp_permanent
|
||||
? " (permanent)"
|
||||
@@ -4692,6 +4693,61 @@ create_catchpoint (int tempflag, char *c
|
||||
@@ -4725,6 +4726,61 @@ create_catchpoint (int tempflag, char *c
|
||||
return b;
|
||||
}
|
||||
|
||||
@ -321,10 +321,10 @@ Index: gdb-6.8.50.20081209/gdb/breakpoint.c
|
||||
static void
|
||||
create_fork_vfork_event_catchpoint (int tempflag, char *cond_string,
|
||||
struct breakpoint_ops *ops)
|
||||
Index: gdb-6.8.50.20081209/gdb/breakpoint.h
|
||||
Index: gdb-6.8.50.20090209/gdb/breakpoint.h
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081209.orig/gdb/breakpoint.h 2008-12-14 14:55:58.000000000 +0100
|
||||
+++ gdb-6.8.50.20081209/gdb/breakpoint.h 2008-12-14 14:56:49.000000000 +0100
|
||||
--- gdb-6.8.50.20090209.orig/gdb/breakpoint.h 2009-01-30 19:28:00.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/breakpoint.h 2009-02-09 16:21:55.000000000 +0100
|
||||
@@ -126,6 +126,7 @@ enum enable_state
|
||||
automatically enabled and reset when the call
|
||||
"lands" (either completes, or stops at another
|
||||
@ -333,7 +333,7 @@ Index: gdb-6.8.50.20081209/gdb/breakpoint.h
|
||||
bp_permanent /* There is a breakpoint instruction hard-wired into
|
||||
the target's code. Don't try to write another
|
||||
breakpoint instruction on top of it, or restore
|
||||
@@ -818,6 +819,10 @@ extern void remove_thread_event_breakpoi
|
||||
@@ -819,6 +820,10 @@ extern void remove_thread_event_breakpoi
|
||||
|
||||
extern void disable_breakpoints_in_shlibs (void);
|
||||
|
||||
@ -344,11 +344,11 @@ Index: gdb-6.8.50.20081209/gdb/breakpoint.h
|
||||
/* This function returns TRUE if ep is a catchpoint. */
|
||||
extern int ep_is_catchpoint (struct breakpoint *);
|
||||
|
||||
Index: gdb-6.8.50.20081209/gdb/dwarf2read.c
|
||||
Index: gdb-6.8.50.20090209/gdb/dwarf2read.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081209.orig/gdb/dwarf2read.c 2008-12-14 14:55:58.000000000 +0100
|
||||
+++ gdb-6.8.50.20081209/gdb/dwarf2read.c 2008-12-14 14:56:49.000000000 +0100
|
||||
@@ -1295,7 +1295,7 @@ dwarf2_build_psymtabs (struct objfile *o
|
||||
--- gdb-6.8.50.20090209.orig/gdb/dwarf2read.c 2009-02-09 16:12:23.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/dwarf2read.c 2009-02-09 16:21:55.000000000 +0100
|
||||
@@ -1296,7 +1296,7 @@ dwarf2_build_psymtabs (struct objfile *o
|
||||
else
|
||||
dwarf2_per_objfile->loc_buffer = NULL;
|
||||
|
||||
@ -357,10 +357,10 @@ Index: gdb-6.8.50.20081209/gdb/dwarf2read.c
|
||||
|| (objfile->global_psymbols.size == 0
|
||||
&& objfile->static_psymbols.size == 0))
|
||||
{
|
||||
Index: gdb-6.8.50.20081209/gdb/elfread.c
|
||||
Index: gdb-6.8.50.20090209/gdb/elfread.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081209.orig/gdb/elfread.c 2008-12-14 14:55:58.000000000 +0100
|
||||
+++ gdb-6.8.50.20081209/gdb/elfread.c 2008-12-14 14:56:49.000000000 +0100
|
||||
--- gdb-6.8.50.20090209.orig/gdb/elfread.c 2009-01-03 06:57:51.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/elfread.c 2009-02-09 16:21:55.000000000 +0100
|
||||
@@ -680,7 +680,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
|
||||
@ -370,11 +370,11 @@ Index: gdb-6.8.50.20081209/gdb/elfread.c
|
||||
{
|
||||
init_psymbol_list (objfile, 0);
|
||||
mainline = 0;
|
||||
Index: gdb-6.8.50.20081209/gdb/infrun.c
|
||||
Index: gdb-6.8.50.20090209/gdb/infrun.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081209.orig/gdb/infrun.c 2008-12-14 14:55:58.000000000 +0100
|
||||
+++ gdb-6.8.50.20081209/gdb/infrun.c 2008-12-14 14:56:49.000000000 +0100
|
||||
@@ -3229,6 +3229,11 @@ infrun: BPSTAT_WHAT_SET_LONGJMP_RESUME (
|
||||
--- gdb-6.8.50.20090209.orig/gdb/infrun.c 2009-02-09 16:12:23.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/infrun.c 2009-02-09 16:21:55.000000000 +0100
|
||||
@@ -3278,6 +3278,11 @@ infrun: BPSTAT_WHAT_SET_LONGJMP_RESUME (
|
||||
#endif
|
||||
target_terminal_inferior ();
|
||||
|
||||
@ -386,10 +386,10 @@ Index: gdb-6.8.50.20081209/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.20081209/gdb/objfiles.c
|
||||
Index: gdb-6.8.50.20090209/gdb/objfiles.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081209.orig/gdb/objfiles.c 2008-12-14 14:55:58.000000000 +0100
|
||||
+++ gdb-6.8.50.20081209/gdb/objfiles.c 2008-12-14 14:56:49.000000000 +0100
|
||||
--- gdb-6.8.50.20090209.orig/gdb/objfiles.c 2009-01-15 17:35:22.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/objfiles.c 2009-02-09 16:21:55.000000000 +0100
|
||||
@@ -51,6 +51,9 @@
|
||||
#include "arch-utils.h"
|
||||
#include "exec.h"
|
||||
@ -421,11 +421,21 @@ Index: gdb-6.8.50.20081209/gdb/objfiles.c
|
||||
}
|
||||
|
||||
/* Create the terminating entry of OBJFILE's minimal symbol table.
|
||||
Index: gdb-6.8.50.20081209/gdb/solib-svr4.c
|
||||
@@ -458,6 +458,9 @@ free_objfile (struct objfile *objfile)
|
||||
if (objfile == rt_common_objfile)
|
||||
rt_common_objfile = NULL;
|
||||
|
||||
+ if (objfile == symfile_objfile)
|
||||
+ symfile_objfile = NULL;
|
||||
+
|
||||
/* 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.20090209/gdb/solib-svr4.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081209.orig/gdb/solib-svr4.c 2008-12-14 14:55:58.000000000 +0100
|
||||
+++ gdb-6.8.50.20081209/gdb/solib-svr4.c 2008-12-14 14:56:49.000000000 +0100
|
||||
@@ -44,6 +44,7 @@
|
||||
--- gdb-6.8.50.20090209.orig/gdb/solib-svr4.c 2009-02-09 16:02:35.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/solib-svr4.c 2009-02-09 16:21:55.000000000 +0100
|
||||
@@ -45,6 +45,7 @@
|
||||
#include "exec.h"
|
||||
#include "auxv.h"
|
||||
#include "exceptions.h"
|
||||
@ -433,7 +443,7 @@ Index: gdb-6.8.50.20081209/gdb/solib-svr4.c
|
||||
|
||||
static struct link_map_offsets *svr4_fetch_link_map_offsets (void);
|
||||
static int svr4_have_link_map_offsets (void);
|
||||
@@ -286,7 +287,9 @@ static CORE_ADDR main_lm_addr;
|
||||
@@ -287,7 +288,9 @@ static CORE_ADDR main_lm_addr;
|
||||
|
||||
/* Local function prototypes */
|
||||
|
||||
@ -443,7 +453,7 @@ Index: gdb-6.8.50.20081209/gdb/solib-svr4.c
|
||||
|
||||
static CORE_ADDR bfd_lookup_symbol (bfd *, char *);
|
||||
|
||||
@@ -520,10 +523,12 @@ scan_dyntag (int dyntag, bfd *abfd, CORE
|
||||
@@ -521,10 +524,12 @@ scan_dyntag (int dyntag, bfd *abfd, CORE
|
||||
int arch_size, step, sect_size;
|
||||
long dyn_tag;
|
||||
CORE_ADDR dyn_ptr, dyn_addr;
|
||||
@ -456,7 +466,7 @@ Index: gdb-6.8.50.20081209/gdb/solib-svr4.c
|
||||
|
||||
if (abfd == NULL)
|
||||
return 0;
|
||||
@@ -531,19 +536,81 @@ scan_dyntag (int dyntag, bfd *abfd, CORE
|
||||
@@ -532,19 +537,81 @@ scan_dyntag (int dyntag, bfd *abfd, CORE
|
||||
if (arch_size == -1)
|
||||
return 0;
|
||||
|
||||
@ -540,7 +550,7 @@ Index: gdb-6.8.50.20081209/gdb/solib-svr4.c
|
||||
|
||||
/* Iterate over BUF and scan for DYNTAG. If found, set PTR and return. */
|
||||
step = (arch_size == 32) ? sizeof (Elf32_External_Dyn)
|
||||
@@ -564,26 +631,105 @@ scan_dyntag (int dyntag, bfd *abfd, CORE
|
||||
@@ -565,26 +632,105 @@ scan_dyntag (int dyntag, bfd *abfd, CORE
|
||||
dyn_tag = bfd_h_get_64 (abfd, (bfd_byte *) x_dynp_64->d_tag);
|
||||
dyn_ptr = bfd_h_get_64 (abfd, (bfd_byte *) x_dynp_64->d_un.d_ptr);
|
||||
}
|
||||
@ -665,7 +675,7 @@ Index: gdb-6.8.50.20081209/gdb/solib-svr4.c
|
||||
}
|
||||
|
||||
return 0;
|
||||
@@ -773,6 +919,10 @@ solib_svr4_r_map (void)
|
||||
@@ -774,6 +920,10 @@ solib_svr4_r_map (void)
|
||||
struct link_map_offsets *lmo = svr4_fetch_link_map_offsets ();
|
||||
struct type *ptr_type = builtin_type (target_gdbarch)->builtin_data_ptr;
|
||||
|
||||
@ -676,7 +686,7 @@ Index: gdb-6.8.50.20081209/gdb/solib-svr4.c
|
||||
return read_memory_typed_address (debug_base + lmo->r_map_offset, ptr_type);
|
||||
}
|
||||
|
||||
@@ -944,6 +1094,11 @@ svr4_current_sos (void)
|
||||
@@ -945,6 +1095,11 @@ svr4_current_sos (void)
|
||||
struct so_list *head = 0;
|
||||
struct so_list **link_ptr = &head;
|
||||
CORE_ADDR ldsomap = 0;
|
||||
@ -688,7 +698,7 @@ Index: gdb-6.8.50.20081209/gdb/solib-svr4.c
|
||||
|
||||
/* Always locate the debug struct, in case it has moved. */
|
||||
debug_base = 0;
|
||||
@@ -952,10 +1107,19 @@ svr4_current_sos (void)
|
||||
@@ -953,10 +1108,19 @@ svr4_current_sos (void)
|
||||
/* If we can't find the dynamic linker's base structure, this
|
||||
must not be a dynamically linked executable. Hmm. */
|
||||
if (! debug_base)
|
||||
@ -709,7 +719,7 @@ Index: gdb-6.8.50.20081209/gdb/solib-svr4.c
|
||||
lm = solib_svr4_r_map ();
|
||||
|
||||
while (lm)
|
||||
@@ -972,26 +1136,104 @@ svr4_current_sos (void)
|
||||
@@ -973,26 +1137,104 @@ svr4_current_sos (void)
|
||||
new->lm_info->lm = xzalloc (lmo->link_map_size);
|
||||
make_cleanup (xfree, new->lm_info->lm);
|
||||
|
||||
@ -818,7 +828,7 @@ Index: gdb-6.8.50.20081209/gdb/solib-svr4.c
|
||||
target_read_string (LM_NAME (new), &buffer,
|
||||
SO_NAME_MAX_PATH_SIZE - 1, &errcode);
|
||||
if (errcode != 0)
|
||||
@@ -999,47 +1241,60 @@ svr4_current_sos (void)
|
||||
@@ -1000,47 +1242,60 @@ svr4_current_sos (void)
|
||||
safe_strerror (errcode));
|
||||
else
|
||||
{
|
||||
@ -912,7 +922,7 @@ Index: gdb-6.8.50.20081209/gdb/solib-svr4.c
|
||||
}
|
||||
|
||||
/* On Solaris, the dynamic linker is not in the normal list of
|
||||
@@ -1055,6 +1310,9 @@ svr4_current_sos (void)
|
||||
@@ -1056,6 +1311,9 @@ svr4_current_sos (void)
|
||||
if (head == NULL)
|
||||
return svr4_default_sos ();
|
||||
|
||||
@ -922,7 +932,7 @@ Index: gdb-6.8.50.20081209/gdb/solib-svr4.c
|
||||
return head;
|
||||
}
|
||||
|
||||
@@ -1086,7 +1344,7 @@ svr4_fetch_objfile_link_map (struct objf
|
||||
@@ -1087,7 +1345,7 @@ svr4_fetch_objfile_link_map (struct objf
|
||||
/* On some systems, the only way to recognize the link map entry for
|
||||
the main executable file is by looking at its name. Return
|
||||
non-zero iff SONAME matches one of the known main executable names. */
|
||||
@ -931,7 +941,7 @@ Index: gdb-6.8.50.20081209/gdb/solib-svr4.c
|
||||
static int
|
||||
match_main (char *soname)
|
||||
{
|
||||
@@ -1100,6 +1358,7 @@ match_main (char *soname)
|
||||
@@ -1101,6 +1359,7 @@ match_main (char *soname)
|
||||
|
||||
return (0);
|
||||
}
|
||||
@ -939,7 +949,7 @@ Index: gdb-6.8.50.20081209/gdb/solib-svr4.c
|
||||
|
||||
/* Return 1 if PC lies in the dynamic symbol resolution code of the
|
||||
SVR4 run time loader. */
|
||||
@@ -1250,15 +1509,29 @@ enable_break (void)
|
||||
@@ -1251,15 +1510,29 @@ enable_break (void)
|
||||
/* Find the program interpreter; if not found, warn the user and drop
|
||||
into the old breakpoint at symbol code. */
|
||||
interp_name = find_program_interpreter ();
|
||||
@ -969,7 +979,7 @@ Index: gdb-6.8.50.20081209/gdb/solib-svr4.c
|
||||
|
||||
sym_addr = 0;
|
||||
|
||||
@@ -1275,6 +1548,9 @@ enable_break (void)
|
||||
@@ -1276,6 +1549,9 @@ enable_break (void)
|
||||
{
|
||||
tmp_bfd = solib_bfd_open (interp_name);
|
||||
}
|
||||
@ -979,7 +989,7 @@ Index: gdb-6.8.50.20081209/gdb/solib-svr4.c
|
||||
if (tmp_bfd == NULL)
|
||||
goto bkpt_at_symbol;
|
||||
|
||||
@@ -1328,16 +1604,16 @@ enable_break (void)
|
||||
@@ -1329,16 +1605,16 @@ enable_break (void)
|
||||
interp_sect = bfd_get_section_by_name (tmp_bfd, ".text");
|
||||
if (interp_sect)
|
||||
{
|
||||
@ -1000,7 +1010,7 @@ Index: gdb-6.8.50.20081209/gdb/solib-svr4.c
|
||||
interp_plt_sect_high =
|
||||
interp_plt_sect_low + bfd_section_size (tmp_bfd, interp_sect);
|
||||
}
|
||||
@@ -1372,7 +1648,11 @@ enable_break (void)
|
||||
@@ -1373,7 +1649,11 @@ enable_break (void)
|
||||
|
||||
if (sym_addr != 0)
|
||||
{
|
||||
@ -1013,7 +1023,7 @@ Index: gdb-6.8.50.20081209/gdb/solib-svr4.c
|
||||
xfree (interp_name);
|
||||
return 1;
|
||||
}
|
||||
@@ -1638,6 +1918,8 @@ svr4_solib_create_inferior_hook (void)
|
||||
@@ -1639,6 +1919,8 @@ svr4_solib_create_inferior_hook (void)
|
||||
while (tp->stop_signal != TARGET_SIGNAL_TRAP);
|
||||
inf->stop_soon = NO_STOP_QUIETLY;
|
||||
#endif /* defined(_SCO_DS) */
|
||||
@ -1022,7 +1032,7 @@ Index: gdb-6.8.50.20081209/gdb/solib-svr4.c
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -1819,6 +2101,75 @@ svr4_lp64_fetch_link_map_offsets (void)
|
||||
@@ -1820,6 +2102,75 @@ svr4_lp64_fetch_link_map_offsets (void)
|
||||
|
||||
return lmp;
|
||||
}
|
||||
@ -1098,7 +1108,7 @@ Index: gdb-6.8.50.20081209/gdb/solib-svr4.c
|
||||
|
||||
|
||||
struct target_so_ops svr4_so_ops;
|
||||
@@ -1858,4 +2209,7 @@ _initialize_svr4_solib (void)
|
||||
@@ -1859,4 +2210,7 @@ _initialize_svr4_solib (void)
|
||||
svr4_so_ops.in_dynsym_resolve_code = svr4_in_dynsym_resolve_code;
|
||||
svr4_so_ops.lookup_lib_global_symbol = elf_lookup_lib_symbol;
|
||||
svr4_so_ops.same = svr4_same;
|
||||
@ -1106,10 +1116,10 @@ Index: gdb-6.8.50.20081209/gdb/solib-svr4.c
|
||||
+ add_info ("linkmap", info_linkmap_command,
|
||||
+ "Display the inferior's linkmap.");
|
||||
}
|
||||
Index: gdb-6.8.50.20081209/gdb/solib.c
|
||||
Index: gdb-6.8.50.20090209/gdb/solib.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081209.orig/gdb/solib.c 2008-12-14 14:55:58.000000000 +0100
|
||||
+++ gdb-6.8.50.20081209/gdb/solib.c 2008-12-14 14:56:49.000000000 +0100
|
||||
--- gdb-6.8.50.20090209.orig/gdb/solib.c 2009-01-15 17:35:22.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/solib.c 2009-02-09 16:26:02.000000000 +0100
|
||||
@@ -80,6 +80,8 @@ set_solib_ops (struct gdbarch *gdbarch,
|
||||
|
||||
/* external data declarations */
|
||||
@ -1128,67 +1138,79 @@ Index: gdb-6.8.50.20081209/gdb/solib.c
|
||||
/*
|
||||
|
||||
GLOBAL FUNCTION
|
||||
@@ -405,7 +409,6 @@ free_so (struct so_list *so)
|
||||
xfree (so);
|
||||
}
|
||||
@@ -425,10 +429,23 @@ free_so (struct so_list *so)
|
||||
|
||||
if (so->abfd)
|
||||
{
|
||||
- bfd_filename = bfd_get_filename (so->abfd);
|
||||
- if (! bfd_close (so->abfd))
|
||||
- warning (_("cannot close \"%s\": %s"),
|
||||
- bfd_filename, bfd_errmsg (bfd_get_error ()));
|
||||
+ struct objfile *objfile;
|
||||
+
|
||||
+ ALL_OBJFILES (objfile)
|
||||
+ if (objfile->obfd == so->abfd)
|
||||
+ {
|
||||
+ gdb_assert (objfile->flags & OBJF_KEEPBFD);
|
||||
+ objfile->flags &= ~OBJF_KEEPBFD;
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ if (!objfile)
|
||||
+ {
|
||||
+ bfd_filename = bfd_get_filename (so->abfd);
|
||||
+ if (! bfd_close (so->abfd))
|
||||
+ warning (_("cannot close \"%s\": %s"),
|
||||
+ bfd_filename, bfd_errmsg (bfd_get_error ()));
|
||||
+ }
|
||||
}
|
||||
|
||||
-
|
||||
/* Return address of first so_list entry in master shared object list. */
|
||||
struct so_list *
|
||||
master_so_list (void)
|
||||
@@ -413,7 +416,6 @@ master_so_list (void)
|
||||
return so_list_head;
|
||||
}
|
||||
|
||||
-
|
||||
/* A small stub to get us past the arg-passing pinhole of catch_errors. */
|
||||
|
||||
static int
|
||||
@@ -425,15 +427,40 @@ symbol_add_stub (void *arg)
|
||||
if (bfd_filename)
|
||||
@@ -459,15 +461,40 @@ symbol_add_stub (void *arg)
|
||||
/* Have we already loaded this shared object? */
|
||||
ALL_OBJFILES (so->objfile)
|
||||
{
|
||||
- if (strcmp (so->objfile->name, so->so_name) == 0)
|
||||
+ /* Found an already loaded shared library. */
|
||||
+ if (strcmp (so->objfile->name, so->so_name) == 0
|
||||
+ && !so->main)
|
||||
return 1;
|
||||
+ && !so->main)
|
||||
+ return 1;
|
||||
+ /* Found an already loaded main executable. This could happen in
|
||||
+ two circumstances.
|
||||
+ First case: the main file has already been read in
|
||||
+ as the first thing that gdb does at startup, and the file
|
||||
+ hasn't been relocated properly yet. Therefor we need to read
|
||||
+ it in with the proper section info.
|
||||
+ Second case: it has been read in with the correct relocation,
|
||||
+ and therefore we need to skip it. */
|
||||
+ two circumstances.
|
||||
+ First case: the main file has already been read in
|
||||
+ as the first thing that gdb does at startup, and the file
|
||||
+ hasn't been relocated properly yet. Therefor we need to read
|
||||
+ it in with the proper section info.
|
||||
+ Second case: it has been read in with the correct relocation,
|
||||
+ and therefore we need to skip it. */
|
||||
+ if (strcmp (so->objfile->name, so->so_name) == 0
|
||||
+ && so->main
|
||||
+ && so->main_relocated)
|
||||
+ return 1;
|
||||
+ && so->main
|
||||
+ && so->main_relocated)
|
||||
return 1;
|
||||
}
|
||||
|
||||
sap = build_section_addr_info_from_section_table (so->sections,
|
||||
so->sections_end);
|
||||
|
||||
- so->objfile = symbol_file_add (so->so_name, so->from_tty,
|
||||
- sap, 0, OBJF_SHARED);
|
||||
- so->objfile = symbol_file_add_from_bfd (so->abfd, so->from_tty,
|
||||
- sap, 0, OBJF_SHARED | OBJF_KEEPBFD);
|
||||
+ if (so->main)
|
||||
+ {
|
||||
+ if (debug_solib)
|
||||
+ fprintf_unfiltered (gdb_stdlog,
|
||||
+ "symbol_add_stub: adding symbols for main\n");
|
||||
+ so->objfile = symbol_file_add (so->so_name, /*so->from_tty*/ 0,
|
||||
+ sap, 1, 0);
|
||||
+ so->objfile = symbol_file_add_from_bfd (so->abfd, /*so->from_tty*/ 0,
|
||||
+ sap, 1, OBJF_KEEPBFD);
|
||||
+ so->main_relocated = 1;
|
||||
+ }
|
||||
+ else
|
||||
+ so->objfile = symbol_file_add (so->so_name, so->from_tty,
|
||||
+ sap, 0, OBJF_SHARED);
|
||||
+ so->objfile = symbol_file_add_from_bfd (so->abfd, so->from_tty,
|
||||
+ sap, 0, OBJF_SHARED | OBJF_KEEPBFD);
|
||||
+
|
||||
free_section_addr_info (sap);
|
||||
|
||||
return (1);
|
||||
@@ -565,6 +592,10 @@ update_solib_list (int from_tty, struct
|
||||
@@ -599,6 +626,10 @@ update_solib_list (int from_tty, struct
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1199,7 +1221,7 @@ Index: gdb-6.8.50.20081209/gdb/solib.c
|
||||
if (! strcmp (gdb->so_original_name, i->so_original_name))
|
||||
break;
|
||||
}
|
||||
@@ -619,28 +650,7 @@ update_solib_list (int from_tty, struct
|
||||
@@ -653,28 +684,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)
|
||||
{
|
||||
@ -1229,7 +1251,7 @@ Index: gdb-6.8.50.20081209/gdb/solib.c
|
||||
|
||||
/* Notify any observer that the shared object has been
|
||||
loaded now that we've added it to GDB's tables. */
|
||||
@@ -736,6 +746,41 @@ solib_add (char *pattern, int from_tty,
|
||||
@@ -770,6 +780,41 @@ solib_add (char *pattern, int from_tty,
|
||||
}
|
||||
}
|
||||
|
||||
@ -1271,7 +1293,7 @@ Index: gdb-6.8.50.20081209/gdb/solib.c
|
||||
|
||||
/*
|
||||
|
||||
@@ -1053,4 +1098,12 @@ This takes precedence over the environme
|
||||
@@ -1087,4 +1132,12 @@ This takes precedence over the environme
|
||||
reload_shared_libraries,
|
||||
show_solib_search_path,
|
||||
&setlist, &showlist);
|
||||
@ -1284,10 +1306,10 @@ Index: gdb-6.8.50.20081209/gdb/solib.c
|
||||
+ NULL, NULL,
|
||||
+ &setdebuglist, &showdebuglist);
|
||||
}
|
||||
Index: gdb-6.8.50.20081209/gdb/solist.h
|
||||
Index: gdb-6.8.50.20090209/gdb/solist.h
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081209.orig/gdb/solist.h 2008-12-14 14:55:58.000000000 +0100
|
||||
+++ gdb-6.8.50.20081209/gdb/solist.h 2008-12-14 14:56:49.000000000 +0100
|
||||
--- gdb-6.8.50.20090209.orig/gdb/solist.h 2009-02-04 09:42:11.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/solist.h 2009-02-09 16:21:55.000000000 +0100
|
||||
@@ -61,6 +61,8 @@ struct so_list
|
||||
bfd *abfd;
|
||||
char symbols_loaded; /* flag: symbols read in yet? */
|
||||
@ -1297,7 +1319,7 @@ Index: gdb-6.8.50.20081209/gdb/solist.h
|
||||
struct objfile *objfile; /* objfile for loaded lib */
|
||||
struct section_table *sections;
|
||||
struct section_table *sections_end;
|
||||
@@ -138,4 +140,10 @@ struct symbol *solib_global_lookup (cons
|
||||
@@ -149,4 +151,10 @@ struct symbol *solib_global_lookup (cons
|
||||
const char *linkage_name,
|
||||
const domain_enum domain);
|
||||
|
||||
@ -1308,10 +1330,10 @@ Index: gdb-6.8.50.20081209/gdb/solist.h
|
||||
+extern int debug_solib;
|
||||
+
|
||||
#endif
|
||||
Index: gdb-6.8.50.20081209/gdb/symfile-mem.c
|
||||
Index: gdb-6.8.50.20090209/gdb/symfile-mem.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081209.orig/gdb/symfile-mem.c 2008-12-14 14:55:58.000000000 +0100
|
||||
+++ gdb-6.8.50.20081209/gdb/symfile-mem.c 2008-12-14 14:56:49.000000000 +0100
|
||||
--- gdb-6.8.50.20090209.orig/gdb/symfile-mem.c 2009-02-09 15:49:25.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/symfile-mem.c 2009-02-09 16:21:55.000000000 +0100
|
||||
@@ -116,7 +116,7 @@ symbol_file_add_from_memory (struct bfd
|
||||
}
|
||||
|
||||
@ -1321,10 +1343,10 @@ Index: gdb-6.8.50.20081209/gdb/symfile-mem.c
|
||||
|
||||
/* This might change our ideas about frames already looked at. */
|
||||
reinit_frame_cache ();
|
||||
Index: gdb-6.8.50.20081209/gdb/symfile.c
|
||||
Index: gdb-6.8.50.20090209/gdb/symfile.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081209.orig/gdb/symfile.c 2008-12-14 14:55:58.000000000 +0100
|
||||
+++ gdb-6.8.50.20081209/gdb/symfile.c 2008-12-14 14:56:49.000000000 +0100
|
||||
--- gdb-6.8.50.20090209.orig/gdb/symfile.c 2009-02-09 16:03:45.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/symfile.c 2009-02-09 16:21:55.000000000 +0100
|
||||
@@ -47,6 +47,7 @@
|
||||
#include "readline/readline.h"
|
||||
#include "gdb_assert.h"
|
||||
@ -1351,7 +1373,7 @@ Index: gdb-6.8.50.20081209/gdb/symfile.c
|
||||
{
|
||||
asection *lower_sect;
|
||||
asection *sect;
|
||||
@@ -916,17 +917,21 @@ new_symfile_objfile (struct objfile *obj
|
||||
@@ -917,17 +918,21 @@ 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. */
|
||||
@ -1375,7 +1397,7 @@ Index: gdb-6.8.50.20081209/gdb/symfile.c
|
||||
|
||||
/* We're done reading the symbol file; finish off complaints. */
|
||||
clear_complaints (&symfile_complaints, 0, verbo);
|
||||
@@ -969,7 +974,7 @@ symbol_file_add_with_addrs_or_offsets (b
|
||||
@@ -970,7 +975,7 @@ symbol_file_add_with_addrs_or_offsets (b
|
||||
interactively wiping out any existing symbols. */
|
||||
|
||||
if ((have_full_symbols () || have_partial_symbols ())
|
||||
@ -1384,7 +1406,7 @@ Index: gdb-6.8.50.20081209/gdb/symfile.c
|
||||
&& from_tty
|
||||
&& !query ("Load new symbol table from \"%s\"? ", name))
|
||||
error (_("Not confirmed."));
|
||||
@@ -1160,6 +1165,10 @@ symbol_file_clear (int from_tty)
|
||||
@@ -1161,6 +1166,10 @@ symbol_file_clear (int from_tty)
|
||||
symfile_objfile->name)
|
||||
: !query (_("Discard symbol table? "))))
|
||||
error (_("Not confirmed."));
|
||||
@ -1395,7 +1417,7 @@ Index: gdb-6.8.50.20081209/gdb/symfile.c
|
||||
free_all_objfiles ();
|
||||
|
||||
/* solib descriptors may have handles to objfiles. Since their
|
||||
@@ -3259,6 +3268,8 @@ reread_symbols (void)
|
||||
@@ -3260,6 +3269,8 @@ reread_symbols (void)
|
||||
/* Discard cleanups as symbol reading was successful. */
|
||||
discard_cleanups (old_cleanups);
|
||||
|
||||
@ -1404,7 +1426,7 @@ Index: gdb-6.8.50.20081209/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. */
|
||||
@@ -3628,6 +3639,7 @@ clear_symtab_users (void)
|
||||
@@ -3629,6 +3640,7 @@ clear_symtab_users (void)
|
||||
breakpoint_re_set ();
|
||||
set_default_breakpoint (0, 0, 0, 0);
|
||||
clear_pc_function_cache ();
|
||||
@ -1412,11 +1434,11 @@ Index: gdb-6.8.50.20081209/gdb/symfile.c
|
||||
observer_notify_new_objfile (NULL);
|
||||
|
||||
/* Clear globals which might have pointed into a removed objfile.
|
||||
Index: gdb-6.8.50.20081209/gdb/varobj.c
|
||||
Index: gdb-6.8.50.20090209/gdb/varobj.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081209.orig/gdb/varobj.c 2008-12-14 14:55:58.000000000 +0100
|
||||
+++ gdb-6.8.50.20081209/gdb/varobj.c 2008-12-14 14:56:49.000000000 +0100
|
||||
@@ -1116,6 +1116,62 @@ install_new_value (struct varobj *var, s
|
||||
--- gdb-6.8.50.20090209.orig/gdb/varobj.c 2009-02-05 18:28:21.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/varobj.c 2009-02-09 16:21:55.000000000 +0100
|
||||
@@ -1123,6 +1123,62 @@ install_new_value (struct varobj *var, s
|
||||
return changed;
|
||||
}
|
||||
|
||||
@ -1479,10 +1501,10 @@ Index: gdb-6.8.50.20081209/gdb/varobj.c
|
||||
/* Update the values for a variable and its children. This is a
|
||||
two-pronged attack. First, re-parse the value for the root's
|
||||
expression to see if it's changed. Then go all the way
|
||||
Index: gdb-6.8.50.20081209/gdb/varobj.h
|
||||
Index: gdb-6.8.50.20090209/gdb/varobj.h
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081209.orig/gdb/varobj.h 2008-12-14 14:55:58.000000000 +0100
|
||||
+++ gdb-6.8.50.20081209/gdb/varobj.h 2008-12-14 14:56:49.000000000 +0100
|
||||
--- gdb-6.8.50.20090209.orig/gdb/varobj.h 2009-01-03 06:57:54.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/varobj.h 2009-02-09 16:21:55.000000000 +0100
|
||||
@@ -141,4 +141,6 @@ extern int varobj_editable_p (struct var
|
||||
|
||||
extern int varobj_floating_p (struct varobj *var);
|
||||
@ -1490,10 +1512,10 @@ Index: gdb-6.8.50.20081209/gdb/varobj.h
|
||||
+extern void varobj_refresh(void);
|
||||
+
|
||||
#endif /* VAROBJ_H */
|
||||
Index: gdb-6.8.50.20081209/gdb/target.h
|
||||
Index: gdb-6.8.50.20090209/gdb/target.h
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081209.orig/gdb/target.h 2008-12-14 11:52:54.000000000 +0100
|
||||
+++ gdb-6.8.50.20081209/gdb/target.h 2008-12-14 14:57:21.000000000 +0100
|
||||
--- gdb-6.8.50.20090209.orig/gdb/target.h 2009-02-09 16:02:42.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/target.h 2009-02-09 16:21:55.000000000 +0100
|
||||
@@ -524,7 +524,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. */
|
||||
|
@ -19,10 +19,10 @@ Proposed upstream but never committed upstream.
|
||||
(source_command): Update documentation. Check permissions if
|
||||
FROM_TTY is -1.
|
||||
|
||||
Index: gdb-6.8.50.20081128/gdb/cli/cli-cmds.c
|
||||
Index: gdb-6.8.50.20090209/gdb/cli/cli-cmds.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081128.orig/gdb/cli/cli-cmds.c 2008-12-07 10:12:24.000000000 +0100
|
||||
+++ gdb-6.8.50.20081128/gdb/cli/cli-cmds.c 2008-12-07 13:04:06.000000000 +0100
|
||||
--- gdb-6.8.50.20090209.orig/gdb/cli/cli-cmds.c 2009-01-14 21:40:07.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/cli/cli-cmds.c 2009-02-09 15:45:39.000000000 +0100
|
||||
@@ -36,6 +36,7 @@
|
||||
#include "objfiles.h"
|
||||
#include "source.h"
|
||||
@ -31,7 +31,7 @@ Index: gdb-6.8.50.20081128/gdb/cli/cli-cmds.c
|
||||
|
||||
#include "ui-out.h"
|
||||
|
||||
@@ -460,7 +461,7 @@ source_script (char *file, int from_tty)
|
||||
@@ -462,7 +463,7 @@ source_script (char *file, int from_tty)
|
||||
|
||||
if (fd == -1)
|
||||
{
|
||||
@ -40,7 +40,7 @@ Index: gdb-6.8.50.20081128/gdb/cli/cli-cmds.c
|
||||
perror_with_name (file);
|
||||
else
|
||||
{
|
||||
@@ -469,9 +470,33 @@ source_script (char *file, int from_tty)
|
||||
@@ -471,9 +472,33 @@ source_script (char *file, int from_tty)
|
||||
}
|
||||
}
|
||||
|
||||
@ -74,10 +74,10 @@ Index: gdb-6.8.50.20081128/gdb/cli/cli-cmds.c
|
||||
do_cleanups (old_cleanups);
|
||||
}
|
||||
|
||||
Index: gdb-6.8.50.20081128/gdb/testsuite/gdb.base/gdbinit.exp
|
||||
Index: gdb-6.8.50.20090209/gdb/testsuite/gdb.base/gdbinit.exp
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-6.8.50.20081128/gdb/testsuite/gdb.base/gdbinit.exp 2008-12-07 10:13:01.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/testsuite/gdb.base/gdbinit.exp 2009-02-09 15:45:39.000000000 +0100
|
||||
@@ -0,0 +1,98 @@
|
||||
+# Copyright 2005
|
||||
+# Free Software Foundation, Inc.
|
||||
@ -177,31 +177,31 @@ Index: gdb-6.8.50.20081128/gdb/testsuite/gdb.base/gdbinit.exp
|
||||
+}
|
||||
+
|
||||
+remote_exec build "rm .gdbinit"
|
||||
Index: gdb-6.8.50.20081128/gdb/testsuite/gdb.base/gdbinit.sample
|
||||
Index: gdb-6.8.50.20090209/gdb/testsuite/gdb.base/gdbinit.sample
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-6.8.50.20081128/gdb/testsuite/gdb.base/gdbinit.sample 2008-12-07 10:13:01.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/testsuite/gdb.base/gdbinit.sample 2009-02-09 15:45:39.000000000 +0100
|
||||
@@ -0,0 +1 @@
|
||||
+echo "\nin gdbinit"
|
||||
Index: gdb-6.8.50.20081128/gdb/main.c
|
||||
Index: gdb-6.8.50.20090209/gdb/main.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081128.orig/gdb/main.c 2008-12-07 10:12:24.000000000 +0100
|
||||
+++ gdb-6.8.50.20081128/gdb/main.c 2008-12-07 12:58:37.000000000 +0100
|
||||
@@ -690,7 +690,7 @@ Excess command line arguments ignored. (
|
||||
--- gdb-6.8.50.20090209.orig/gdb/main.c 2009-01-28 16:01:00.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/main.c 2009-02-09 15:46:33.000000000 +0100
|
||||
@@ -783,7 +783,7 @@ Excess command line arguments ignored. (
|
||||
debugging or what directory you are in. */
|
||||
|
||||
if (!inhibit_gdbinit)
|
||||
{
|
||||
- catch_command_errors (source_script, homeinit, 0, RETURN_MASK_ALL);
|
||||
+ catch_command_errors (source_script, homeinit, -1, RETURN_MASK_ALL);
|
||||
}
|
||||
if (home_gdbinit && !inhibit_gdbinit)
|
||||
- catch_command_errors (source_script, home_gdbinit, 0, RETURN_MASK_ALL);
|
||||
+ catch_command_errors (source_script, home_gdbinit, -1, RETURN_MASK_ALL);
|
||||
|
||||
/* Do stats; no need to do them elsewhere since we'll only
|
||||
@@ -778,7 +778,7 @@ Can't attach to process and specify a co
|
||||
|| memcmp ((char *) &homebuf, (char *) &cwdbuf, sizeof (struct stat)))
|
||||
if (!inhibit_gdbinit)
|
||||
{
|
||||
- catch_command_errors (source_script, gdbinit, 0, RETURN_MASK_ALL);
|
||||
+ catch_command_errors (source_script, gdbinit, -1, RETURN_MASK_ALL);
|
||||
}
|
||||
/* Now perform all the actions indicated by the arguments. */
|
||||
if (cdarg != NULL)
|
||||
@@ -852,7 +852,7 @@ Can't attach to process and specify a co
|
||||
/* Read the .gdbinit file in the current directory, *if* it isn't
|
||||
the same as the $HOME/.gdbinit file (it should exist, also). */
|
||||
if (local_gdbinit && !inhibit_gdbinit)
|
||||
- catch_command_errors (source_script, local_gdbinit, 0, RETURN_MASK_ALL);
|
||||
+ catch_command_errors (source_script, local_gdbinit, -1, RETURN_MASK_ALL);
|
||||
|
||||
for (i = 0; i < ncmd; i++)
|
||||
{
|
||||
|
@ -1,234 +0,0 @@
|
||||
http://sourceware.org/ml/gdb-patches/2008-12/msg00243.html
|
||||
|
||||
Check return values of functions declared with warn_unused_result
|
||||
attribute in GLIBC 2.8.
|
||||
* cli/cli-cmds.c (pwd_command): Check return value from getcwd.
|
||||
* inflow.c (check_syscall): New function.
|
||||
(new_tty): Use check_syscall to check return values from open and dup.
|
||||
* linux-nat.c (linux_nat_info_proc_cmd): Check return value from fgets.
|
||||
* main.c (captured_main): Call cwd after setting up gdb_stderr;
|
||||
check for errors from getcwd.
|
||||
* mi/mi-cmd-env.c (mi_cmd_env_pwd): Check return value from getcwd.
|
||||
* ui-file.c (stdio_file_write): Check return value from fwrite.
|
||||
(stdio_file_fputs): Check return value from fputs.
|
||||
* utils.c (internal_vproblem): abort if last-ditch error message
|
||||
write fails.
|
||||
|
||||
[ +linespec.c: Fedora patch. ]
|
||||
[ +top.c: Fedora patch. ]
|
||||
|
||||
ui-file.c replaced by:
|
||||
http://sourceware.org/ml/gdb-patches/2008-12/msg00260.html
|
||||
|
||||
---
|
||||
gdb/ChangeLog | 14 ++++++++++++++
|
||||
gdb/cli/cli-cmds.c | 4 +++-
|
||||
gdb/inflow.c | 22 ++++++++++++++--------
|
||||
gdb/linux-nat.c | 6 ++++--
|
||||
gdb/main.c | 12 +++++++++---
|
||||
gdb/mi/mi-cmd-env.c | 5 ++++-
|
||||
gdb/ui-file.c | 6 ++++--
|
||||
gdb/utils.c | 8 +++++++-
|
||||
8 files changed, 59 insertions(+), 18 deletions(-)
|
||||
|
||||
diff --git a/gdb/cli/cli-cmds.c b/gdb/cli/cli-cmds.c
|
||||
index 806a68a..b80bdfc 100644
|
||||
--- a/gdb/cli/cli-cmds.c
|
||||
+++ b/gdb/cli/cli-cmds.c
|
||||
@@ -323,7 +323,9 @@ pwd_command (char *args, int from_tty)
|
||||
{
|
||||
if (args)
|
||||
error (_("The \"pwd\" command does not take an argument: %s"), args);
|
||||
- getcwd (gdb_dirbuf, sizeof (gdb_dirbuf));
|
||||
+ if (! getcwd (gdb_dirbuf, sizeof (gdb_dirbuf)))
|
||||
+ error (_("Error finding name of working directory: %s"),
|
||||
+ safe_strerror (errno));
|
||||
|
||||
if (strcmp (gdb_dirbuf, current_directory) != 0)
|
||||
printf_unfiltered (_("Working directory %s\n (canonically %s).\n"),
|
||||
diff --git a/gdb/inflow.c b/gdb/inflow.c
|
||||
index e82514e..7ecb5ab 100644
|
||||
--- a/gdb/inflow.c
|
||||
+++ b/gdb/inflow.c
|
||||
@@ -523,6 +523,16 @@ new_tty_prefork (const char *ttyname)
|
||||
inferior_thisrun_terminal = ttyname;
|
||||
}
|
||||
|
||||
+static void
|
||||
+check_syscall (const char *msg, int result)
|
||||
+{
|
||||
+ if (result < 0)
|
||||
+ {
|
||||
+ print_sys_errmsg (msg, errno);
|
||||
+ _exit (1);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
void
|
||||
new_tty (void)
|
||||
{
|
||||
@@ -549,27 +559,23 @@ new_tty (void)
|
||||
|
||||
/* Now open the specified new terminal. */
|
||||
tty = open (inferior_thisrun_terminal, O_RDWR | O_NOCTTY);
|
||||
- if (tty == -1)
|
||||
- {
|
||||
- print_sys_errmsg (inferior_thisrun_terminal, errno);
|
||||
- _exit (1);
|
||||
- }
|
||||
+ check_syscall (inferior_thisrun_terminal, tty);
|
||||
|
||||
/* Avoid use of dup2; doesn't exist on all systems. */
|
||||
if (tty != 0)
|
||||
{
|
||||
close (0);
|
||||
- dup (tty);
|
||||
+ check_syscall ("dup'ing tty into fd 0", dup (tty));
|
||||
}
|
||||
if (tty != 1)
|
||||
{
|
||||
close (1);
|
||||
- dup (tty);
|
||||
+ check_syscall ("dup'ing tty into fd 1", dup (tty));
|
||||
}
|
||||
if (tty != 2)
|
||||
{
|
||||
close (2);
|
||||
- dup (tty);
|
||||
+ check_syscall ("dup'ing tty into fd 2", dup (tty));
|
||||
}
|
||||
|
||||
#ifdef TIOCSCTTY
|
||||
diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c
|
||||
index 913bfec..a829eb8 100644
|
||||
--- a/gdb/linux-nat.c
|
||||
+++ b/gdb/linux-nat.c
|
||||
@@ -3666,8 +3666,10 @@ linux_nat_info_proc_cmd (char *args, int from_tty)
|
||||
if ((procfile = fopen (fname1, "r")) != NULL)
|
||||
{
|
||||
struct cleanup *cleanup = make_cleanup_fclose (procfile);
|
||||
- fgets (buffer, sizeof (buffer), procfile);
|
||||
- printf_filtered ("cmdline = '%s'\n", buffer);
|
||||
+ if (fgets (buffer, sizeof (buffer), procfile))
|
||||
+ printf_filtered ("cmdline = '%s'\n", buffer);
|
||||
+ else
|
||||
+ warning (_("unable to read '/proc/%lld/cmdline'"), pid);
|
||||
do_cleanups (cleanup);
|
||||
}
|
||||
else
|
||||
diff --git a/gdb/main.c b/gdb/main.c
|
||||
index a53002d..a9fd988 100644
|
||||
--- a/gdb/main.c
|
||||
+++ b/gdb/main.c
|
||||
@@ -195,9 +195,6 @@ captured_main (void *data)
|
||||
line[0] = '\0'; /* Terminate saved (now empty) cmd line */
|
||||
instream = stdin;
|
||||
|
||||
- getcwd (gdb_dirbuf, sizeof (gdb_dirbuf));
|
||||
- current_directory = gdb_dirbuf;
|
||||
-
|
||||
gdb_stdout = stdio_fileopen (stdout);
|
||||
gdb_stderr = stdio_fileopen (stderr);
|
||||
gdb_stdlog = gdb_stderr; /* for moment */
|
||||
@@ -206,6 +203,15 @@ captured_main (void *data)
|
||||
gdb_stdtargerr = gdb_stderr; /* for moment */
|
||||
gdb_stdtargin = gdb_stdin; /* for moment */
|
||||
|
||||
+ if (! getcwd (gdb_dirbuf, sizeof (gdb_dirbuf)))
|
||||
+ /* Don't use *_filtered or warning() (which relies on
|
||||
+ current_target) until after initialize_all_files(). */
|
||||
+ fprintf_unfiltered (gdb_stderr,
|
||||
+ _("%s: warning: error finding working directory: %s\n"),
|
||||
+ argv[0], safe_strerror (errno));
|
||||
+
|
||||
+ current_directory = gdb_dirbuf;
|
||||
+
|
||||
/* Set the sysroot path. */
|
||||
#ifdef TARGET_SYSTEM_ROOT_RELOCATABLE
|
||||
gdb_sysroot = make_relative_prefix (argv[0], BINDIR, TARGET_SYSTEM_ROOT);
|
||||
diff --git a/gdb/mi/mi-cmd-env.c b/gdb/mi/mi-cmd-env.c
|
||||
index 327ddc5..0103153 100644
|
||||
--- a/gdb/mi/mi-cmd-env.c
|
||||
+++ b/gdb/mi/mi-cmd-env.c
|
||||
@@ -78,7 +78,10 @@ mi_cmd_env_pwd (char *command, char **argv, int argc)
|
||||
|
||||
/* Otherwise the mi level is 2 or higher. */
|
||||
|
||||
- getcwd (gdb_dirbuf, sizeof (gdb_dirbuf));
|
||||
+ if (! getcwd (gdb_dirbuf, sizeof (gdb_dirbuf)))
|
||||
+ error (_("mi_cmd_env_pwd: error finding name of working directory: %s"),
|
||||
+ safe_strerror (errno));
|
||||
+
|
||||
ui_out_field_string (uiout, "cwd", gdb_dirbuf);
|
||||
}
|
||||
|
||||
diff --git a/gdb/utils.c b/gdb/utils.c
|
||||
index d14009f..725f00b 100644
|
||||
--- a/gdb/utils.c
|
||||
+++ b/gdb/utils.c
|
||||
@@ -865,7 +865,13 @@ internal_vproblem (struct internal_problem *problem,
|
||||
abort (); /* NOTE: GDB has only three calls to abort(). */
|
||||
default:
|
||||
dejavu = 3;
|
||||
- write (STDERR_FILENO, msg, sizeof (msg));
|
||||
+ /* Newer GLIBC versions put the warn_unused_result attribute
|
||||
+ on write, but this is one of those rare cases where
|
||||
+ ignoring the return value is correct. Casting to (void)
|
||||
+ does not fix this problem. This is the solution suggested
|
||||
+ at http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25509. */
|
||||
+ if (write (STDERR_FILENO, msg, sizeof (msg)) != sizeof (msg))
|
||||
+ abort ();
|
||||
exit (1);
|
||||
}
|
||||
}
|
||||
Index: gdb-6.7/gdb/linespec.c
|
||||
===================================================================
|
||||
--- gdb-6.7.orig/gdb/linespec.c 2007-10-14 23:31:03.000000000 +0200
|
||||
+++ gdb-6.7/gdb/linespec.c 2007-10-14 23:53:57.000000000 +0200
|
||||
@@ -1654,7 +1654,7 @@ static struct symtabs_and_lines
|
||||
find_method (int funfirstline, char ***canonical, char *saved_arg,
|
||||
char *copy, struct type *t, struct symbol *sym_class)
|
||||
{
|
||||
- struct symtabs_and_lines values;
|
||||
+ struct symtabs_and_lines values = { NULL };
|
||||
struct symbol *sym = NULL;
|
||||
int i1; /* Counter for the symbol array. */
|
||||
struct symbol **sym_arr = alloca (total_number_of_methods (t)
|
||||
Index: gdb-6.7/gdb/top.c
|
||||
===================================================================
|
||||
--- gdb-6.7.orig/gdb/top.c 2007-10-14 23:38:27.000000000 +0200
|
||||
+++ gdb-6.7/gdb/top.c 2007-10-14 23:42:39.000000000 +0200
|
||||
@@ -1636,7 +1636,8 @@ gdb_init (char *argv0)
|
||||
|
||||
/* Run the init function of each source file */
|
||||
|
||||
- getcwd (gdb_dirbuf, sizeof (gdb_dirbuf));
|
||||
+ /* Unused result. */
|
||||
+ 1 && getcwd (gdb_dirbuf, sizeof (gdb_dirbuf));
|
||||
current_directory = gdb_dirbuf;
|
||||
|
||||
#ifdef __MSDOS__
|
||||
--- ./gdb/ui-file.c 1 Jan 2008 22:53:13 -0000 1.15
|
||||
+++ ./gdb/ui-file.c 14 Dec 2008 18:16:56 -0000
|
||||
@@ -481,7 +481,9 @@ stdio_file_write (struct ui_file *file,
|
||||
if (stdio->magic != &stdio_file_magic)
|
||||
internal_error (__FILE__, __LINE__,
|
||||
_("stdio_file_write: bad magic number"));
|
||||
- fwrite (buf, length_buf, 1, stdio->file);
|
||||
+ /* Calling error crashes when we are called from the exception framework. */
|
||||
+ if (fwrite (buf, length_buf, 1, stdio->file))
|
||||
+ ;
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -491,7 +493,9 @@ stdio_file_fputs (const char *linebuffer
|
||||
if (stdio->magic != &stdio_file_magic)
|
||||
internal_error (__FILE__, __LINE__,
|
||||
_("stdio_file_fputs: bad magic number"));
|
||||
- fputs (linebuffer, stdio->file);
|
||||
+ /* Calling error crashes when we are called from the exception framework. */
|
||||
+ if (fputs (linebuffer, stdio->file))
|
||||
+ ;
|
||||
}
|
||||
|
||||
static int
|
@ -30,11 +30,11 @@ glibc-debuginfo-2.7-2.x86_64: /usr/lib/debug/lib64/libc.so.6.debug:
|
||||
<81a2> DW_AT_name : (indirect string, offset: 0x280e): __errno_location
|
||||
<81a8> DW_AT_MIPS_linkage_name: (indirect string, offset: 0x2808): *__GI___errno_location
|
||||
|
||||
Index: gdb-6.8.50.20081128/gdb/dwarf2read.c
|
||||
Index: gdb-6.8.50.20090209/gdb/dwarf2read.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081128.orig/gdb/dwarf2read.c 2008-12-04 10:26:18.000000000 +0100
|
||||
+++ gdb-6.8.50.20081128/gdb/dwarf2read.c 2008-12-04 10:26:40.000000000 +0100
|
||||
@@ -5886,8 +5886,8 @@ read_partial_die (struct partial_die_inf
|
||||
--- gdb-6.8.50.20090209.orig/gdb/dwarf2read.c 2009-02-09 15:50:59.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/dwarf2read.c 2009-02-09 15:51:57.000000000 +0100
|
||||
@@ -6031,8 +6031,8 @@ read_partial_die (struct partial_die_inf
|
||||
{
|
||||
case DW_AT_name:
|
||||
|
||||
@ -45,7 +45,7 @@ Index: gdb-6.8.50.20081128/gdb/dwarf2read.c
|
||||
part_die->name = DW_STRING (&attr);
|
||||
break;
|
||||
case DW_AT_comp_dir:
|
||||
@@ -5895,7 +5895,9 @@ read_partial_die (struct partial_die_inf
|
||||
@@ -6040,7 +6040,9 @@ read_partial_die (struct partial_die_inf
|
||||
part_die->dirname = DW_STRING (&attr);
|
||||
break;
|
||||
case DW_AT_MIPS_linkage_name:
|
||||
@ -56,7 +56,7 @@ Index: gdb-6.8.50.20081128/gdb/dwarf2read.c
|
||||
break;
|
||||
case DW_AT_low_pc:
|
||||
has_low_pc_attr = 1;
|
||||
@@ -8129,9 +8131,13 @@ dwarf2_linkage_name (struct die_info *di
|
||||
@@ -8278,9 +8280,13 @@ dwarf2_linkage_name (struct die_info *di
|
||||
{
|
||||
struct attribute *attr;
|
||||
|
||||
@ -73,36 +73,37 @@ Index: gdb-6.8.50.20081128/gdb/dwarf2read.c
|
||||
attr = dwarf2_attr (die, DW_AT_name, cu);
|
||||
if (attr && DW_STRING (attr))
|
||||
return DW_STRING (attr);
|
||||
Index: gdb-6.8.50.20081128/gdb/gdbtypes.c
|
||||
Index: gdb-6.8.50.20090209/gdb/gdbtypes.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081128.orig/gdb/gdbtypes.c 2008-11-10 21:53:43.000000000 +0100
|
||||
+++ gdb-6.8.50.20081128/gdb/gdbtypes.c 2008-12-04 10:26:40.000000000 +0100
|
||||
@@ -3141,6 +3141,8 @@ gdbtypes_post_init (struct gdbarch *gdba
|
||||
--- gdb-6.8.50.20090209.orig/gdb/gdbtypes.c 2009-02-09 15:38:54.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/gdbtypes.c 2009-02-09 15:56:14.000000000 +0100
|
||||
@@ -3643,6 +3643,8 @@ gdbtypes_post_init (struct gdbarch *gdba
|
||||
init_type (TYPE_CODE_INT,
|
||||
gdbarch_int_bit (gdbarch) / TARGET_CHAR_BIT,
|
||||
0, "int", (struct objfile *) NULL);
|
||||
0, "int", OBJFILE_INTERNAL);
|
||||
+ builtin_type->builtin_int_ptr =
|
||||
+ make_pointer_type (builtin_type->builtin_int, NULL);
|
||||
builtin_type->builtin_unsigned_int =
|
||||
init_type (TYPE_CODE_INT,
|
||||
gdbarch_int_bit (gdbarch) / TARGET_CHAR_BIT,
|
||||
@@ -3250,6 +3252,11 @@ gdbtypes_post_init (struct gdbarch *gdba
|
||||
"<text variable, no debug info>", NULL);
|
||||
@@ -3752,6 +3754,12 @@ gdbtypes_post_init (struct gdbarch *gdba
|
||||
"<text variable, no debug info>", OBJFILE_INTERNAL);
|
||||
TYPE_TARGET_TYPE (builtin_type->nodebug_text_symbol) =
|
||||
builtin_type->builtin_int;
|
||||
+ builtin_type->nodebug_text_symbol_errno_location =
|
||||
+ init_type (TYPE_CODE_FUNC, 1, 0,
|
||||
+ "<text variable for __errno_location, no debug info>", NULL);
|
||||
+ "<text variable for __errno_location, no debug info>",
|
||||
+ OBJFILE_INTERNAL);
|
||||
+ TYPE_TARGET_TYPE (builtin_type->nodebug_text_symbol_errno_location) =
|
||||
+ builtin_type->builtin_int_ptr;
|
||||
builtin_type->nodebug_data_symbol =
|
||||
init_type (TYPE_CODE_INT,
|
||||
gdbarch_int_bit (gdbarch) / HOST_CHAR_BIT, 0,
|
||||
Index: gdb-6.8.50.20081128/gdb/gdbtypes.h
|
||||
Index: gdb-6.8.50.20090209/gdb/gdbtypes.h
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081128.orig/gdb/gdbtypes.h 2008-10-28 18:19:56.000000000 +0100
|
||||
+++ gdb-6.8.50.20081128/gdb/gdbtypes.h 2008-12-04 10:26:40.000000000 +0100
|
||||
@@ -975,6 +975,7 @@ struct builtin_type
|
||||
--- gdb-6.8.50.20090209.orig/gdb/gdbtypes.h 2009-02-09 15:38:54.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/gdbtypes.h 2009-02-09 15:51:57.000000000 +0100
|
||||
@@ -1050,6 +1050,7 @@ struct builtin_type
|
||||
|
||||
/* Types used for symbols with no debug information. */
|
||||
struct type *nodebug_text_symbol;
|
||||
@ -110,7 +111,7 @@ Index: gdb-6.8.50.20081128/gdb/gdbtypes.h
|
||||
struct type *nodebug_data_symbol;
|
||||
struct type *nodebug_unknown_symbol;
|
||||
struct type *nodebug_tls_symbol;
|
||||
@@ -987,6 +988,7 @@ struct builtin_type
|
||||
@@ -1062,6 +1063,7 @@ struct builtin_type
|
||||
struct type *builtin_char;
|
||||
struct type *builtin_short;
|
||||
struct type *builtin_int;
|
||||
@ -118,10 +119,10 @@ Index: gdb-6.8.50.20081128/gdb/gdbtypes.h
|
||||
struct type *builtin_long;
|
||||
struct type *builtin_signed_char;
|
||||
struct type *builtin_unsigned_char;
|
||||
Index: gdb-6.8.50.20081128/gdb/parse.c
|
||||
Index: gdb-6.8.50.20090209/gdb/parse.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081128.orig/gdb/parse.c 2008-11-24 18:05:43.000000000 +0100
|
||||
+++ gdb-6.8.50.20081128/gdb/parse.c 2008-12-04 10:26:40.000000000 +0100
|
||||
--- gdb-6.8.50.20090209.orig/gdb/parse.c 2009-01-03 06:57:52.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/parse.c 2009-02-09 15:51:57.000000000 +0100
|
||||
@@ -449,7 +449,12 @@ write_exp_msymbol (struct minimal_symbol
|
||||
case mst_text:
|
||||
case mst_file_text:
|
||||
@ -136,11 +137,11 @@ Index: gdb-6.8.50.20081128/gdb/parse.c
|
||||
break;
|
||||
|
||||
case mst_data:
|
||||
Index: gdb-6.8.50.20081128/gdb/target.c
|
||||
Index: gdb-6.8.50.20090209/gdb/target.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081128.orig/gdb/target.c 2008-12-04 10:24:58.000000000 +0100
|
||||
+++ gdb-6.8.50.20081128/gdb/target.c 2008-12-04 10:29:07.000000000 +0100
|
||||
@@ -850,6 +850,25 @@ pop_all_targets (int quitting)
|
||||
--- gdb-6.8.50.20090209.orig/gdb/target.c 2009-02-09 15:50:39.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/target.c 2009-02-09 15:51:57.000000000 +0100
|
||||
@@ -842,6 +842,25 @@ pop_all_targets (int quitting)
|
||||
pop_all_targets_above (dummy_stratum, quitting);
|
||||
}
|
||||
|
||||
@ -166,7 +167,7 @@ Index: gdb-6.8.50.20081128/gdb/target.c
|
||||
/* Using the objfile specified in OBJFILE, find the address for the
|
||||
current thread's thread-local storage with offset OFFSET. */
|
||||
CORE_ADDR
|
||||
@@ -931,7 +950,28 @@ target_translate_tls_address (struct obj
|
||||
@@ -932,7 +951,28 @@ target_translate_tls_address (struct obj
|
||||
/* It wouldn't be wrong here to try a gdbarch method, too; finding
|
||||
TLS is an ABI-specific thing. But we don't do that yet. */
|
||||
else
|
||||
@ -196,10 +197,10 @@ Index: gdb-6.8.50.20081128/gdb/target.c
|
||||
|
||||
return addr;
|
||||
}
|
||||
Index: gdb-6.8.50.20081128/gdb/testsuite/gdb.dwarf2/dw2-errno.c
|
||||
Index: gdb-6.8.50.20090209/gdb/testsuite/gdb.dwarf2/dw2-errno.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-6.8.50.20081128/gdb/testsuite/gdb.dwarf2/dw2-errno.c 2008-12-04 10:26:40.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/testsuite/gdb.dwarf2/dw2-errno.c 2009-02-09 15:51:57.000000000 +0100
|
||||
@@ -0,0 +1,28 @@
|
||||
+/* This testcase is part of GDB, the GNU debugger.
|
||||
+
|
||||
@ -229,10 +230,10 @@ Index: gdb-6.8.50.20081128/gdb/testsuite/gdb.dwarf2/dw2-errno.c
|
||||
+
|
||||
+ return 0; /* breakpoint */
|
||||
+}
|
||||
Index: gdb-6.8.50.20081128/gdb/testsuite/gdb.dwarf2/dw2-errno.exp
|
||||
Index: gdb-6.8.50.20090209/gdb/testsuite/gdb.dwarf2/dw2-errno.exp
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-6.8.50.20081128/gdb/testsuite/gdb.dwarf2/dw2-errno.exp 2008-12-04 10:26:40.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/testsuite/gdb.dwarf2/dw2-errno.exp 2009-02-09 15:51:57.000000000 +0100
|
||||
@@ -0,0 +1,67 @@
|
||||
+# Copyright 2007 Free Software Foundation, Inc.
|
||||
+
|
||||
|
@ -80,11 +80,9 @@ Index: gdb-6.7.50.20080227/gdb/testsuite/gdb.threads/tls-sepdebug-shared.c
|
||||
+ bug-gdb@prep.ai.mit.edu */
|
||||
+
|
||||
+__thread int var = 42;
|
||||
Index: gdb-6.7.50.20080227/gdb/testsuite/gdb.threads/tls-sepdebug.exp
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-6.7.50.20080227/gdb/testsuite/gdb.threads/tls-sepdebug.exp 2008-02-27 09:00:15.000000000 +0100
|
||||
@@ -0,0 +1,81 @@
|
||||
--- /dev/null 2009-02-10 00:19:00.494289687 +0100
|
||||
+++ gdb-6.8.50.20090209-x/gdb/testsuite/gdb.threads/tls-sepdebug.exp 2009-02-10 00:49:38.000000000 +0100
|
||||
@@ -0,0 +1,86 @@
|
||||
+# Copyright 2006 Free Software Foundation, Inc.
|
||||
+
|
||||
+# This program is free software; you can redistribute it and/or modify
|
||||
@ -109,14 +107,17 @@ Index: gdb-6.7.50.20080227/gdb/testsuite/gdb.threads/tls-sepdebug.exp
|
||||
+set srcmainfile ${testfile}-main.c
|
||||
+set srcsharedfile ${testfile}-shared.c
|
||||
+
|
||||
+# DO NOT use ${objdir} obsolute reference here as we test relative directories
|
||||
+# below and the absolute pathnames must not get encoded to the binaries.
|
||||
+set binmainfile ${objdir}/${subdir}/${testfile}-main
|
||||
+set binsharedbase ${testfile}-shared.so
|
||||
+set binsharedfile ${objdir}/${subdir}/${binsharedbase}
|
||||
+set binshareddebugfile ${objdir}/${subdir}/${binsharedbase}.debug
|
||||
+
|
||||
+set binmainfile ${testfile}-main
|
||||
+set binsharedfile ${testfile}-shared.so
|
||||
+set binshareddebugfile ${testfile}-shared.so.debug
|
||||
+# Use explicit -soname as otherwise the full path to the library would get
|
||||
+# encoded into ${binmainfile} making LD_LIBRARY_PATH tests useless.
|
||||
+
|
||||
+if { [gdb_compile_shlib "${srcdir}/${subdir}/${srcsharedfile}" "${binsharedfile}" {debug}] != "" } {
|
||||
+# FIXME: gcc dependency (-Wl,-soname).
|
||||
+
|
||||
+if { [gdb_compile_shlib "${srcdir}/${subdir}/${srcsharedfile}" "${binsharedfile}" [list debug additional_flags=-Wl,-soname=${binsharedbase}]] != "" } {
|
||||
+ untested "Couldn't compile test library"
|
||||
+ return -1
|
||||
+}
|
||||
@ -130,7 +131,9 @@ Index: gdb-6.7.50.20080227/gdb/testsuite/gdb.threads/tls-sepdebug.exp
|
||||
+ remote_exec build "objcopy --add-gnu-debuglink=${binshareddebugfile} ${binsharedfile}"
|
||||
+}
|
||||
+
|
||||
+if { [gdb_compile_pthreads "${srcdir}/${subdir}/${srcmainfile}" "${binmainfile}" executable [list debug shlib=${binsharedfile}]] != "" } {
|
||||
+# Do not use `shlib=' as it will automatically add also -rpath for gcc.
|
||||
+
|
||||
+if { [gdb_compile_pthreads "${srcdir}/${subdir}/${srcmainfile} ${binsharedfile}" "${binmainfile}" executable {debug}] != "" } {
|
||||
+ untested "Couldn't compile test program"
|
||||
+ return -1
|
||||
+}
|
||||
@ -141,7 +144,7 @@ Index: gdb-6.7.50.20080227/gdb/testsuite/gdb.threads/tls-sepdebug.exp
|
||||
+# \$PWD is easy - it is the absolute way
|
||||
+# ${subdir} would fail on "print var"
|
||||
+
|
||||
+foreach ld_library_path { \$PWD ${subdir} } name { absolute relative } {
|
||||
+foreach ld_library_path [list [pwd]/${subdir} ./${subdir}] name { absolute relative } {
|
||||
+
|
||||
+ gdb_exit
|
||||
+ gdb_start
|
||||
|
@ -28,10 +28,10 @@ http://sourceware.org/ml/gdb-patches/2008-01/msg00042.html
|
||||
* s390-nat.c (s390_fix_watch_points): Fix its compilation failure
|
||||
- rename it to S390_FIX_WATCH_POINTS_LIST.
|
||||
|
||||
Index: gdb-6.8.50.20081128/gdb/amd64-linux-nat.c
|
||||
Index: gdb-6.8.50.20090209/gdb/amd64-linux-nat.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081128.orig/gdb/amd64-linux-nat.c 2008-12-07 10:09:19.000000000 +0100
|
||||
+++ gdb-6.8.50.20081128/gdb/amd64-linux-nat.c 2008-12-07 10:10:20.000000000 +0100
|
||||
--- gdb-6.8.50.20090209.orig/gdb/amd64-linux-nat.c 2009-02-09 16:02:27.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/amd64-linux-nat.c 2009-02-09 16:03:30.000000000 +0100
|
||||
@@ -408,25 +408,43 @@ amd64_linux_dr_set (ptid_t ptid, int reg
|
||||
void
|
||||
amd64_linux_dr_set_control (unsigned long control)
|
||||
@ -128,11 +128,10 @@ Index: gdb-6.8.50.20081128/gdb/amd64-linux-nat.c
|
||||
|
||||
|
||||
/* This function is called by libthread_db as part of its handling of
|
||||
@@ -520,6 +573,43 @@ amd64_linux_child_post_startup_inferior
|
||||
i386_cleanup_dregs ();
|
||||
super_post_startup_inferior (ptid);
|
||||
@@ -755,6 +808,42 @@ amd64_linux_siginfo_fixup (struct siginf
|
||||
return 0;
|
||||
}
|
||||
+
|
||||
|
||||
+static int (*amd64_linux_super_follow_fork) (struct target_ops *ops,
|
||||
+ int follow_child);
|
||||
+
|
||||
@ -169,10 +168,10 @@ Index: gdb-6.8.50.20081128/gdb/amd64-linux-nat.c
|
||||
+ return (*amd64_linux_super_follow_fork) (ops, follow_child);
|
||||
+}
|
||||
+
|
||||
|
||||
|
||||
/* Provide a prototype to silence -Wmissing-prototypes. */
|
||||
@@ -558,6 +648,9 @@ _initialize_amd64_linux_nat (void)
|
||||
void _initialize_amd64_linux_nat (void);
|
||||
|
||||
@@ -791,6 +880,9 @@ _initialize_amd64_linux_nat (void)
|
||||
linux_elfcore_write_prstatus = amd64_linux_elfcore_write_prstatus;
|
||||
linux_elfcore_write_prfpreg = amd64_linux_elfcore_write_prfpreg;
|
||||
|
||||
@ -182,10 +181,10 @@ Index: gdb-6.8.50.20081128/gdb/amd64-linux-nat.c
|
||||
/* Register the target. */
|
||||
linux_nat_add_target (t);
|
||||
linux_nat_set_new_thread (t, amd64_linux_new_thread);
|
||||
Index: gdb-6.8.50.20081128/gdb/config/i386/nm-i386.h
|
||||
Index: gdb-6.8.50.20090209/gdb/config/i386/nm-i386.h
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081128.orig/gdb/config/i386/nm-i386.h 2008-03-01 05:39:36.000000000 +0100
|
||||
+++ gdb-6.8.50.20081128/gdb/config/i386/nm-i386.h 2008-12-07 10:09:20.000000000 +0100
|
||||
--- gdb-6.8.50.20090209.orig/gdb/config/i386/nm-i386.h 2009-01-03 06:57:54.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/config/i386/nm-i386.h 2009-02-09 16:02:42.000000000 +0100
|
||||
@@ -120,6 +120,8 @@ extern int i386_stopped_by_watchpoint (v
|
||||
|
||||
#endif /* I386_WATCHPOINTS_IN_TARGET_VECTOR */
|
||||
@ -195,10 +194,10 @@ Index: gdb-6.8.50.20081128/gdb/config/i386/nm-i386.h
|
||||
#endif /* I386_USE_GENERIC_WATCHPOINTS */
|
||||
|
||||
#endif /* NM_I386_H */
|
||||
Index: gdb-6.8.50.20081128/gdb/i386-linux-nat.c
|
||||
Index: gdb-6.8.50.20090209/gdb/i386-linux-nat.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081128.orig/gdb/i386-linux-nat.c 2008-03-13 13:22:13.000000000 +0100
|
||||
+++ gdb-6.8.50.20081128/gdb/i386-linux-nat.c 2008-12-07 10:09:20.000000000 +0100
|
||||
--- gdb-6.8.50.20090209.orig/gdb/i386-linux-nat.c 2009-01-03 06:57:51.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/i386-linux-nat.c 2009-02-09 16:02:42.000000000 +0100
|
||||
@@ -634,21 +634,42 @@ i386_linux_dr_set_control (unsigned long
|
||||
ptid_t ptid;
|
||||
|
||||
@ -342,11 +341,11 @@ Index: gdb-6.8.50.20081128/gdb/i386-linux-nat.c
|
||||
/* Register the target. */
|
||||
linux_nat_add_target (t);
|
||||
linux_nat_set_new_thread (t, i386_linux_new_thread);
|
||||
Index: gdb-6.8.50.20081128/gdb/i386-nat.c
|
||||
Index: gdb-6.8.50.20090209/gdb/i386-nat.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081128.orig/gdb/i386-nat.c 2008-03-01 05:39:36.000000000 +0100
|
||||
+++ gdb-6.8.50.20081128/gdb/i386-nat.c 2008-12-07 10:09:20.000000000 +0100
|
||||
@@ -545,6 +545,17 @@ i386_remove_watchpoint (CORE_ADDR addr,
|
||||
--- gdb-6.8.50.20090209.orig/gdb/i386-nat.c 2009-01-03 06:57:51.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/i386-nat.c 2009-02-09 16:02:42.000000000 +0100
|
||||
@@ -546,6 +546,17 @@ i386_remove_watchpoint (CORE_ADDR addr,
|
||||
return retval;
|
||||
}
|
||||
|
||||
@ -364,10 +363,10 @@ Index: gdb-6.8.50.20081128/gdb/i386-nat.c
|
||||
/* Return non-zero if we can watch a memory region that starts at
|
||||
address ADDR and whose length is LEN bytes. */
|
||||
|
||||
Index: gdb-6.8.50.20081128/gdb/ia64-linux-nat.c
|
||||
Index: gdb-6.8.50.20090209/gdb/ia64-linux-nat.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081128.orig/gdb/ia64-linux-nat.c 2008-12-07 10:06:03.000000000 +0100
|
||||
+++ gdb-6.8.50.20081128/gdb/ia64-linux-nat.c 2008-12-07 10:09:20.000000000 +0100
|
||||
--- gdb-6.8.50.20090209.orig/gdb/ia64-linux-nat.c 2009-02-09 15:48:43.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/ia64-linux-nat.c 2009-02-09 16:02:42.000000000 +0100
|
||||
@@ -583,6 +583,12 @@ ia64_linux_insert_watchpoint (CORE_ADDR
|
||||
return 0;
|
||||
}
|
||||
@ -467,10 +466,10 @@ Index: gdb-6.8.50.20081128/gdb/ia64-linux-nat.c
|
||||
/* Register the target. */
|
||||
linux_nat_add_target (t);
|
||||
linux_nat_set_new_thread (t, ia64_linux_new_thread);
|
||||
Index: gdb-6.8.50.20081128/gdb/ppc-linux-nat.c
|
||||
Index: gdb-6.8.50.20090209/gdb/ppc-linux-nat.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081128.orig/gdb/ppc-linux-nat.c 2008-11-18 22:39:47.000000000 +0100
|
||||
+++ gdb-6.8.50.20081128/gdb/ppc-linux-nat.c 2008-12-07 10:09:20.000000000 +0100
|
||||
--- gdb-6.8.50.20090209.orig/gdb/ppc-linux-nat.c 2009-01-03 06:57:52.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/ppc-linux-nat.c 2009-02-09 16:02:42.000000000 +0100
|
||||
@@ -1118,6 +1118,12 @@ ppc_linux_insert_watchpoint (CORE_ADDR a
|
||||
return 0;
|
||||
}
|
||||
@ -563,10 +562,10 @@ Index: gdb-6.8.50.20081128/gdb/ppc-linux-nat.c
|
||||
/* Register the target. */
|
||||
linux_nat_add_target (t);
|
||||
linux_nat_set_new_thread (t, ppc_linux_new_thread);
|
||||
Index: gdb-6.8.50.20081128/gdb/s390-nat.c
|
||||
Index: gdb-6.8.50.20090209/gdb/s390-nat.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081128.orig/gdb/s390-nat.c 2007-11-07 07:36:57.000000000 +0100
|
||||
+++ gdb-6.8.50.20081128/gdb/s390-nat.c 2008-12-07 10:09:20.000000000 +0100
|
||||
--- gdb-6.8.50.20090209.orig/gdb/s390-nat.c 2007-11-07 07:36:57.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/s390-nat.c 2009-02-09 16:02:42.000000000 +0100
|
||||
@@ -283,21 +283,15 @@ s390_stopped_by_watchpoint (void)
|
||||
}
|
||||
|
||||
@ -721,10 +720,10 @@ Index: gdb-6.8.50.20081128/gdb/s390-nat.c
|
||||
/* Register the target. */
|
||||
linux_nat_add_target (t);
|
||||
linux_nat_set_new_thread (t, s390_fix_watch_points);
|
||||
Index: gdb-6.8.50.20081128/gdb/testsuite/gdb.threads/watchpoint-fork-forkoff.c
|
||||
Index: gdb-6.8.50.20090209/gdb/testsuite/gdb.threads/watchpoint-fork-forkoff.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-6.8.50.20081128/gdb/testsuite/gdb.threads/watchpoint-fork-forkoff.c 2008-12-07 10:09:20.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/testsuite/gdb.threads/watchpoint-fork-forkoff.c 2009-02-09 16:02:42.000000000 +0100
|
||||
@@ -0,0 +1,172 @@
|
||||
+/* Test case for forgotten hw-watchpoints after fork()-off of a process.
|
||||
+
|
||||
@ -898,10 +897,10 @@ Index: gdb-6.8.50.20081128/gdb/testsuite/gdb.threads/watchpoint-fork-forkoff.c
|
||||
+#else
|
||||
+# error "!FOLLOW_PARENT && !FOLLOW_CHILD"
|
||||
+#endif
|
||||
Index: gdb-6.8.50.20081128/gdb/testsuite/gdb.threads/watchpoint-fork-mt.c
|
||||
Index: gdb-6.8.50.20090209/gdb/testsuite/gdb.threads/watchpoint-fork-mt.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-6.8.50.20081128/gdb/testsuite/gdb.threads/watchpoint-fork-mt.c 2008-12-07 10:09:20.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/testsuite/gdb.threads/watchpoint-fork-mt.c 2009-02-09 16:02:42.000000000 +0100
|
||||
@@ -0,0 +1,154 @@
|
||||
+/* Test case for forgotten hw-watchpoints after fork()-off of a process.
|
||||
+
|
||||
@ -1057,10 +1056,10 @@ Index: gdb-6.8.50.20081128/gdb/testsuite/gdb.threads/watchpoint-fork-mt.c
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
Index: gdb-6.8.50.20081128/gdb/testsuite/gdb.threads/watchpoint-fork.c
|
||||
Index: gdb-6.8.50.20090209/gdb/testsuite/gdb.threads/watchpoint-fork.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-6.8.50.20081128/gdb/testsuite/gdb.threads/watchpoint-fork.c 2008-12-07 10:09:20.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/testsuite/gdb.threads/watchpoint-fork.c 2009-02-09 16:02:42.000000000 +0100
|
||||
@@ -0,0 +1,56 @@
|
||||
+/* Test case for forgotten hw-watchpoints after fork()-off of a process.
|
||||
+
|
||||
@ -1118,10 +1117,10 @@ Index: gdb-6.8.50.20081128/gdb/testsuite/gdb.threads/watchpoint-fork.c
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
Index: gdb-6.8.50.20081128/gdb/testsuite/gdb.threads/watchpoint-fork.exp
|
||||
Index: gdb-6.8.50.20090209/gdb/testsuite/gdb.threads/watchpoint-fork.exp
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-6.8.50.20081128/gdb/testsuite/gdb.threads/watchpoint-fork.exp 2008-12-07 10:09:20.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/testsuite/gdb.threads/watchpoint-fork.exp 2009-02-09 16:02:42.000000000 +0100
|
||||
@@ -0,0 +1,140 @@
|
||||
+# Copyright 2008 Free Software Foundation, Inc.
|
||||
+
|
||||
@ -1263,11 +1262,11 @@ Index: gdb-6.8.50.20081128/gdb/testsuite/gdb.threads/watchpoint-fork.exp
|
||||
+if {[istarget "*-*-linux*"]} {
|
||||
+ test child FOLLOW_CHILD
|
||||
+}
|
||||
Index: gdb-6.8.50.20081128/gdb/doc/gdb.texinfo
|
||||
Index: gdb-6.8.50.20090209/gdb/doc/gdb.texinfo
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081128.orig/gdb/doc/gdb.texinfo 2008-12-07 10:09:20.000000000 +0100
|
||||
+++ gdb-6.8.50.20081128/gdb/doc/gdb.texinfo 2008-12-07 10:10:20.000000000 +0100
|
||||
@@ -3587,6 +3587,14 @@ confident that no other thread can becom
|
||||
--- gdb-6.8.50.20090209.orig/gdb/doc/gdb.texinfo 2009-02-09 16:02:35.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/doc/gdb.texinfo 2009-02-09 16:02:42.000000000 +0100
|
||||
@@ -3588,6 +3588,14 @@ confident that no other thread can becom
|
||||
software watchpoints as usual. However, @value{GDBN} may not notice
|
||||
when a non-current thread's activity changes the expression. (Hardware
|
||||
watchpoints, in contrast, watch an expression in all threads.)
|
||||
@ -1282,11 +1281,11 @@ Index: gdb-6.8.50.20081128/gdb/doc/gdb.texinfo
|
||||
@end quotation
|
||||
|
||||
@xref{set remote hardware-watchpoint-limit}.
|
||||
Index: gdb-6.8.50.20081128/gdb/config/i386/nm-linux.h
|
||||
Index: gdb-6.8.50.20090209/gdb/config/i386/nm-linux.h
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081128.orig/gdb/config/i386/nm-linux.h 2008-03-01 05:39:36.000000000 +0100
|
||||
+++ gdb-6.8.50.20081128/gdb/config/i386/nm-linux.h 2008-12-07 10:09:20.000000000 +0100
|
||||
@@ -45,6 +45,16 @@ extern void i386_linux_dr_reset_addr (in
|
||||
--- gdb-6.8.50.20090209.orig/gdb/config/i386/nm-linux.h 2009-01-03 06:57:54.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/config/i386/nm-linux.h 2009-02-09 16:02:42.000000000 +0100
|
||||
@@ -46,6 +46,16 @@ extern void i386_linux_dr_reset_addr (in
|
||||
extern unsigned long i386_linux_dr_get_status (void);
|
||||
#define I386_DR_LOW_GET_STATUS() \
|
||||
i386_linux_dr_get_status ()
|
||||
@ -1303,10 +1302,10 @@ Index: gdb-6.8.50.20081128/gdb/config/i386/nm-linux.h
|
||||
|
||||
|
||||
#ifdef HAVE_PTRACE_GETFPXREGS
|
||||
Index: gdb-6.8.50.20081128/gdb/config/i386/nm-linux64.h
|
||||
Index: gdb-6.8.50.20090209/gdb/config/i386/nm-linux64.h
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081128.orig/gdb/config/i386/nm-linux64.h 2008-03-01 05:39:36.000000000 +0100
|
||||
+++ gdb-6.8.50.20081128/gdb/config/i386/nm-linux64.h 2008-12-07 10:09:20.000000000 +0100
|
||||
--- gdb-6.8.50.20090209.orig/gdb/config/i386/nm-linux64.h 2009-01-03 06:57:54.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/config/i386/nm-linux64.h 2009-02-09 16:02:42.000000000 +0100
|
||||
@@ -51,4 +51,14 @@ extern unsigned long amd64_linux_dr_get_
|
||||
#define I386_DR_LOW_GET_STATUS() \
|
||||
amd64_linux_dr_get_status ()
|
||||
@ -1322,11 +1321,11 @@ Index: gdb-6.8.50.20081128/gdb/config/i386/nm-linux64.h
|
||||
+ amd64_linux_remove_watchpoint (addr, len, type)
|
||||
+
|
||||
#endif /* nm-linux64.h */
|
||||
Index: gdb-6.8.50.20081128/gdb/target.h
|
||||
Index: gdb-6.8.50.20090209/gdb/target.h
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081128.orig/gdb/target.h 2008-12-07 10:09:19.000000000 +0100
|
||||
+++ gdb-6.8.50.20081128/gdb/target.h 2008-12-07 10:10:38.000000000 +0100
|
||||
@@ -1123,7 +1123,9 @@ extern char *normal_pid_to_str (ptid_t p
|
||||
--- gdb-6.8.50.20090209.orig/gdb/target.h 2009-02-09 15:49:25.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/target.h 2009-02-09 16:02:42.000000000 +0100
|
||||
@@ -1113,7 +1113,9 @@ extern char *normal_pid_to_str (ptid_t p
|
||||
#ifndef target_insert_watchpoint
|
||||
#define target_insert_watchpoint(addr, len, type) \
|
||||
(*current_target.to_insert_watchpoint) (addr, len, type)
|
||||
|
@ -1,3 +1,5 @@
|
||||
gdb/testsuite/gdb.base/fileio.c:
|
||||
gdb/testsuite/gdb.base/fileio.exp:
|
||||
2007-12-08 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
* gdb.base/fileio.c (ROOTSUBDIR): New macro.
|
||||
@ -6,6 +8,18 @@
|
||||
* gdb.base/fileio.exp: Change the startup and finish cleanup.
|
||||
Change the test file reference to be into the `fileio.dir' directory.
|
||||
|
||||
|
||||
sources/gdb/testsuite/gdb.base/dump.exp:
|
||||
Found on RHEL-5.s390x.
|
||||
|
||||
|
||||
gdb-6.8.50.20090209/gdb/testsuite/gdb.base/auxv.exp:
|
||||
random FAIL: gdb.base/auxv.exp: matching auxv data from live and gcore
|
||||
|
||||
|
||||
gdb-6.8.50.20090209/gdb/testsuite/gdb.base/annota1.exp:
|
||||
frames-invalid can happen asynchronously.
|
||||
|
||||
--- ./gdb/testsuite/gdb.base/fileio.c 13 Jun 2006 08:55:22 -0000 1.10
|
||||
+++ ./gdb/testsuite/gdb.base/fileio.c 8 Dec 2007 16:04:10 -0000
|
||||
@@ -58,6 +58,8 @@ system (const char * string);
|
||||
@ -88,11 +102,6 @@
|
||||
|
||||
set timeout $oldtimeout
|
||||
return 0
|
||||
|
||||
|
||||
|
||||
Found on RHEL-5.s390x.
|
||||
|
||||
--- sources/gdb/testsuite/gdb.base/dump.exp-orig 2008-08-28 11:44:40.000000000 +0200
|
||||
+++ sources/gdb/testsuite/gdb.base/dump.exp 2008-08-28 11:44:49.000000000 +0200
|
||||
@@ -493,8 +493,10 @@ if ![string compare $is64bitonly "no"] t
|
||||
@ -107,3 +116,93 @@ Found on RHEL-5.s390x.
|
||||
"array partial with expressions" 4 "intarray2\[3\]"
|
||||
|
||||
gdb_test "print intarray2\[2\] == 0" " = 1" "element 2 not changed, == 4"
|
||||
--- gdb-6.8.50.20090209/gdb/testsuite/gdb.base/annota1.exp-orig 2009-02-09 16:31:11.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/testsuite/gdb.base/annota1.exp 2009-02-09 21:27:38.000000000 +0100
|
||||
@@ -286,7 +286,7 @@ if [target_info exists gdb,nosignals] {
|
||||
} else {
|
||||
send_gdb "signal SIGUSR1\n"
|
||||
gdb_expect {
|
||||
- -re "\r\n\032\032post-prompt\r\nContinuing with signal SIGUSR1.\r\n\r\n\032\032starting\r\n\r\n\032\032frames-invalid\r\n\r\n\032\032breakpoint 2\r\n\r\nBreakpoint 2, \r\n\032\032frame-begin 0 $hex\r\n\r\n\032\032frame-function-name\r\nhandle_USR1\r\n\032\032frame-args\r\n \\(\r\n\032\032arg-begin\r\nsig\r\n\032\032arg-name-end\r\n=\r\n\032\032arg-value -\r\n$decimal\r\n\032\032arg-end\r\n\\)\r\n\032\032frame-source-begin\r\n at \r\n\032\032frame-source-file\r\n${escapedsrcfile}\r\n\032\032frame-source-file-end\r\n:\r\n\032\032frame-source-line\r\n.*\r\n\032\032frame-source-end\r\n\r\n\r\n\032\032source.*annota1.c:.*:.*:beg:$hex\r\n\r\n\032\032frame-end\r\n\r\n\032\032stopped\r\n$gdb_prompt$" \
|
||||
+ -re "\r\n\032\032post-prompt\r\nContinuing with signal SIGUSR1.\r\n\r\n\032\032starting\r\n(\r\n\032\032frames-invalid\r\n)*\r\n\032\032breakpoint 2\r\n\r\nBreakpoint 2, \r\n\032\032frame-begin 0 $hex\r\n\r\n\032\032frame-function-name\r\nhandle_USR1\r\n\032\032frame-args\r\n \\(\r\n\032\032arg-begin\r\nsig\r\n\032\032arg-name-end\r\n=\r\n\032\032arg-value -\r\n$decimal\r\n\032\032arg-end\r\n\\)\r\n\032\032frame-source-begin\r\n at \r\n\032\032frame-source-file\r\n${escapedsrcfile}\r\n\032\032frame-source-file-end\r\n:\r\n\032\032frame-source-line\r\n.*\r\n\032\032frame-source-end\r\n\r\n\r\n\032\032source.*annota1.c:.*:.*:beg:$hex\r\n\r\n\032\032frame-end\r\n\r\n\032\032stopped\r\n$gdb_prompt$" \
|
||||
{ pass "send SIGUSR1" }
|
||||
-re "\r\n\032\032post-prompt\r\nContinuing with signal SIGUSR1.\r\n\r\n\032\032starting\r\n\r\n\032\032frames-invalid\r\n\r\n\032\032breakpoint 2\r\n\r\nBreakpoint 2, \r\n\032\032frame-begin 0 $hex\r\n\r\n\032\032frame-function-name\r\nhandle_USR1\r\n\032\032frame-args\r\n \\(\r\n\032\032arg-begin\r\nsig\r\n\032\032arg-name-end\r\n=\r\n\032\032arg-value -\r\n$decimal\r\n\032\032arg-end\r\n\\)\r\n\032\032frame-source-begin\r\n at \r\n\032\032frame-source-file\r\n.*${srcfile}\r\n\032\032frame-source-file-end\r\n:\r\n\032\032frame-source-line\r\n.*\r\n\032\032frame-source-end\r\n\r\n\r\n\032\032source.*annota1.c:.*:.*:beg:$hex\r\n\r\n\032\032frame-end\r\n\r\n\032\032stopped\r\n$gdb_prompt$" \
|
||||
{ setup_xfail "*-*-*" 1270
|
||||
--- ./gdb/testsuite/gdb.base/auxv.exp 2009-02-11 00:54:54.000000000 +0100
|
||||
+++ ./gdb/testsuite/gdb.base/auxv.exp 2009-02-11 00:51:30.000000000 +0100
|
||||
@@ -78,8 +78,10 @@ proc fetch_auxv {test} {
|
||||
|
||||
set auxv_lines {}
|
||||
set bad -1
|
||||
+ # Former trailing `\[\r\n\]+' may eat just \r leaving \n in the buffer
|
||||
+ # corrupting the next matches.
|
||||
if {[gdb_test_multiple "info auxv" $test {
|
||||
- -re "info auxv\[\r\n\]+" {
|
||||
+ -re "info auxv\r\n" {
|
||||
exp_continue
|
||||
}
|
||||
-ex "The program has no auxiliary information now" {
|
||||
@@ -94,20 +96,20 @@ proc fetch_auxv {test} {
|
||||
set bad 1
|
||||
exp_continue
|
||||
}
|
||||
- -re "^\[0-9\]+\[ \t\]+(AT_\[^ \t\]+)\[^\r\n\]+\[\r\n\]+" {
|
||||
+ -re "^\[0-9\]+\[ \t\]+(AT_\[^ \t\]+)\[^\r\n\]+\r\n" {
|
||||
lappend auxv_lines $expect_out(0,string)
|
||||
exp_continue
|
||||
}
|
||||
- -re "^\[0-9\]+\[ \t\]+\\?\\?\\?\[^\r\n\]+\[\r\n\]+" {
|
||||
+ -re "^\[0-9\]+\[ \t\]+\\?\\?\\?\[^\r\n\]+\r\n" {
|
||||
warning "Unrecognized tag value: $expect_out(0,string)"
|
||||
set bad 1
|
||||
lappend auxv_lines $expect_out(0,string)
|
||||
exp_continue
|
||||
}
|
||||
- -re ".*$gdb_prompt $" {
|
||||
+ -re "$gdb_prompt $" {
|
||||
incr bad
|
||||
}
|
||||
- -re "^\[^\r\n\]+\[\r\n\]+" {
|
||||
+ -re "^\[^\r\n\]+\r\n" {
|
||||
if {!$bad} {
|
||||
warning "Unrecognized output: $expect_out(0,string)"
|
||||
set bad 1
|
||||
--- ./gdb/testsuite/gdb.base/callfuncs.exp 2009-01-03 06:58:03.000000000 +0100
|
||||
+++ ./gdb/testsuite/gdb.base/callfuncs.exp 2009-02-11 00:51:42.000000000 +0100
|
||||
@@ -249,15 +249,17 @@ proc fetch_all_registers {test} {
|
||||
|
||||
set all_registers_lines {}
|
||||
set bad -1
|
||||
+ # Former trailing `\[\r\n\]+' may eat just \r leaving \n in the buffer
|
||||
+ # corrupting the next matches.
|
||||
if {[gdb_test_multiple "info all-registers" $test {
|
||||
- -re "info all-registers\[\r\n\]+" {
|
||||
+ -re "info all-registers\r\n" {
|
||||
exp_continue
|
||||
}
|
||||
-ex "The program has no registers now" {
|
||||
set bad 1
|
||||
exp_continue
|
||||
}
|
||||
- -re "^bspstore\[ \t\]+\[^\r\n\]+\[\r\n\]+" {
|
||||
+ -re "^bspstore\[ \t\]+\[^\r\n\]+\r\n" {
|
||||
if [istarget "ia64-*-*"] {
|
||||
# Filter out bspstore which is specially tied to bsp,
|
||||
# giving spurious differences.
|
||||
@@ -266,14 +268,14 @@ proc fetch_all_registers {test} {
|
||||
}
|
||||
exp_continue
|
||||
}
|
||||
- -re "^\[^ \t\]+\[ \t\]+\[^\r\n\]+\[\r\n\]+" {
|
||||
+ -re "^\[^ \t\]+\[ \t\]+\[^\r\n\]+\r\n" {
|
||||
lappend all_registers_lines $expect_out(0,string)
|
||||
exp_continue
|
||||
}
|
||||
- -re ".*$gdb_prompt $" {
|
||||
+ -re "$gdb_prompt $" {
|
||||
incr bad
|
||||
}
|
||||
- -re "^\[^\r\n\]+\[\r\n\]+" {
|
||||
+ -re "^\[^\r\n\]+\r\n" {
|
||||
if {!$bad} {
|
||||
warning "Unrecognized output: $expect_out(0,string)"
|
||||
set bad 1
|
||||
|
@ -1,8 +1,8 @@
|
||||
Index: gdb-6.8.50.20081128/gdb/linux-nat.c
|
||||
Index: gdb-6.8.50.20090209/gdb/linux-nat.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081128.orig/gdb/linux-nat.c 2008-12-06 21:48:18.000000000 +0100
|
||||
+++ gdb-6.8.50.20081128/gdb/linux-nat.c 2008-12-06 22:00:42.000000000 +0100
|
||||
@@ -199,6 +199,9 @@ blocked. */
|
||||
--- gdb-6.8.50.20090209.orig/gdb/linux-nat.c 2009-02-09 16:12:23.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/linux-nat.c 2009-02-09 16:15:30.000000000 +0100
|
||||
@@ -204,6 +204,9 @@ blocked. */
|
||||
static struct target_ops *linux_ops;
|
||||
static struct target_ops linux_ops_saved;
|
||||
|
||||
@ -12,7 +12,7 @@ Index: gdb-6.8.50.20081128/gdb/linux-nat.c
|
||||
/* The method to call, if any, when a new thread is attached. */
|
||||
static void (*linux_nat_new_thread) (ptid_t);
|
||||
|
||||
@@ -871,7 +874,14 @@ linux_child_follow_fork (struct target_o
|
||||
@@ -902,7 +905,14 @@ linux_child_follow_fork (struct target_o
|
||||
fork_save_infrun_state (fp, 0);
|
||||
}
|
||||
else
|
||||
@ -27,8 +27,8 @@ Index: gdb-6.8.50.20081128/gdb/linux-nat.c
|
||||
+ }
|
||||
|
||||
inferior_ptid = ptid_build (child_pid, child_pid, 0);
|
||||
add_inferior (child_pid);
|
||||
@@ -1203,6 +1213,7 @@ linux_nat_post_attach_wait (ptid_t ptid,
|
||||
|
||||
@@ -1229,6 +1239,7 @@ linux_nat_post_attach_wait (ptid_t ptid,
|
||||
if (debug_linux_nat)
|
||||
fprintf_unfiltered (gdb_stdlog,
|
||||
"LNPAW: Attaching to a stopped process\n");
|
||||
@ -36,7 +36,7 @@ Index: gdb-6.8.50.20081128/gdb/linux-nat.c
|
||||
|
||||
/* The process is definitely stopped. It is in a job control
|
||||
stop, unless the kernel predates the TASK_STOPPED /
|
||||
@@ -1535,6 +1546,9 @@ GPT: lwp %s had signal %s, but it is in
|
||||
@@ -1561,6 +1572,9 @@ GPT: lwp %s had signal %s, but it is in
|
||||
*status = lp->status;
|
||||
}
|
||||
|
||||
@ -46,16 +46,16 @@ Index: gdb-6.8.50.20081128/gdb/linux-nat.c
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1631,6 +1645,8 @@ linux_nat_detach (struct target_ops *ops
|
||||
inferior_ptid = pid_to_ptid (pid);
|
||||
linux_ops->to_detach (ops, args, from_tty);
|
||||
|
||||
+ pid_was_stopped = 0;
|
||||
@@ -1671,6 +1685,8 @@ linux_nat_detach (struct target_ops *ops
|
||||
}
|
||||
else
|
||||
linux_ops->to_detach (ops, args, from_tty);
|
||||
+
|
||||
if (target_can_async_p ())
|
||||
drain_queued_events (pid);
|
||||
+ pid_was_stopped = 0;
|
||||
}
|
||||
@@ -1787,6 +1803,14 @@ linux_nat_resume (ptid_t ptid, int step_
|
||||
|
||||
/* Resume LP. */
|
||||
@@ -1825,6 +1841,14 @@ linux_nat_resume (ptid_t ptid, int step_
|
||||
resume_callback. */
|
||||
lp->stopped = 0;
|
||||
|
||||
@ -70,7 +70,7 @@ Index: gdb-6.8.50.20081128/gdb/linux-nat.c
|
||||
if (resume_all)
|
||||
iterate_over_lwps (resume_callback, NULL);
|
||||
|
||||
@@ -3281,6 +3305,8 @@ linux_nat_mourn_inferior (struct target_
|
||||
@@ -3316,6 +3340,8 @@ linux_nat_mourn_inferior (struct target_
|
||||
there are other viable forks to debug. Delete the exiting
|
||||
one and context-switch to the first available. */
|
||||
linux_fork_mourn_inferior ();
|
||||
@ -78,83 +78,12 @@ Index: gdb-6.8.50.20081128/gdb/linux-nat.c
|
||||
+ pid_was_stopped = 0;
|
||||
}
|
||||
|
||||
static LONGEST
|
||||
Index: gdb-6.8.50.20081128/gdb/testsuite/gdb.threads/attach-stopped.c
|
||||
/* Convert a native/host siginfo object, into/from the siginfo in the
|
||||
Index: gdb-6.8.50.20090209/gdb/testsuite/gdb.threads/attach-stopped.exp
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081128.orig/gdb/testsuite/gdb.threads/attach-stopped.c 2008-05-01 20:50:14.000000000 +0200
|
||||
+++ gdb-6.8.50.20081128/gdb/testsuite/gdb.threads/attach-stopped.c 2008-12-06 21:57:23.000000000 +0100
|
||||
@@ -1,19 +1,20 @@
|
||||
/* This testcase is part of GDB, the GNU debugger.
|
||||
|
||||
- Copyright 2008 Free Software Foundation, Inc.
|
||||
+ Copyright 2005-2007 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
- the Free Software Foundation; either version 3 of the License, or
|
||||
+ the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
-
|
||||
+
|
||||
You should have received a copy of the GNU General Public License
|
||||
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||
+ along with this program; if not, write to the Free Software
|
||||
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* This program is intended to be started outside of gdb, then
|
||||
manually stopped via a signal. */
|
||||
Index: gdb-6.8.50.20081128/gdb/testsuite/gdb.threads/attach-stopped.exp
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081128.orig/gdb/testsuite/gdb.threads/attach-stopped.exp 2008-05-01 20:50:14.000000000 +0200
|
||||
+++ gdb-6.8.50.20081128/gdb/testsuite/gdb.threads/attach-stopped.exp 2008-12-06 21:57:23.000000000 +0100
|
||||
@@ -1,26 +1,33 @@
|
||||
-# Copyright 2008
|
||||
-# Free Software Foundation, Inc.
|
||||
+# Copyright 2005-2007
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
-# the Free Software Foundation; either version 3 of the License, or
|
||||
+# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
-#
|
||||
+#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
-#
|
||||
+#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
+# along with this program; if not, write to the Free Software
|
||||
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
# This test was created by modifying attach.exp.
|
||||
# This file was created by Jeff Johnston <jjohnstn@redhat.com>.
|
||||
# This file was updated by Jan Kratochvil <jan.kratochvil@redhat.com>.
|
||||
|
||||
+if $tracelevel then {
|
||||
+ strace $tracelevel
|
||||
+}
|
||||
+
|
||||
+set prms_id 0
|
||||
+set bug_id 0
|
||||
+
|
||||
# This test only works on Linux
|
||||
-if { ![isnative] || [is_remote host] || ![istarget *-linux*] } {
|
||||
- continue
|
||||
+if { ![istarget "*-*-linux-gnu*"] } {
|
||||
+ return 0
|
||||
}
|
||||
|
||||
set testfile "attach-stopped"
|
||||
@@ -63,7 +70,65 @@ proc corefunc { threadtype } {
|
||||
--- gdb-6.8.50.20090209.orig/gdb/testsuite/gdb.threads/attach-stopped.exp 2009-01-03 06:58:07.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/testsuite/gdb.threads/attach-stopped.exp 2009-02-09 16:12:41.000000000 +0100
|
||||
@@ -62,7 +62,65 @@ proc corefunc { threadtype } {
|
||||
gdb_reinitialize_dir $srcdir/$subdir
|
||||
gdb_load ${binfile}
|
||||
|
||||
@ -221,39 +150,10 @@ Index: gdb-6.8.50.20081128/gdb/testsuite/gdb.threads/attach-stopped.exp
|
||||
|
||||
set test "$threadtype: attach2 to stopped, after setting file"
|
||||
gdb_test_multiple "attach $testpid" "$test" {
|
||||
Index: gdb-6.8.50.20081128/gdb/testsuite/gdb.threads/attachstop-mt.c
|
||||
Index: gdb-6.8.50.20090209/gdb/testsuite/gdb.threads/attachstop-mt.exp
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081128.orig/gdb/testsuite/gdb.threads/attachstop-mt.c 2008-05-01 20:50:14.000000000 +0200
|
||||
+++ gdb-6.8.50.20081128/gdb/testsuite/gdb.threads/attachstop-mt.c 2008-12-06 21:57:23.000000000 +0100
|
||||
@@ -1,19 +1,20 @@
|
||||
/* This testcase is part of GDB, the GNU debugger.
|
||||
|
||||
- Copyright 2008 Free Software Foundation, Inc.
|
||||
+ Copyright 2005 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
- the Free Software Foundation; either version 3 of the License, or
|
||||
+ the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
-
|
||||
+
|
||||
You should have received a copy of the GNU General Public License
|
||||
- along with this program. If not, see <http://www.gnu.org/licenses/>. */
|
||||
+ along with this program; if not, write to the Free Software
|
||||
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
/* This program is intended to be started outside of gdb, then
|
||||
manually stopped via a signal. */
|
||||
Index: gdb-6.8.50.20081128/gdb/testsuite/gdb.threads/attachstop-mt.exp
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081128.orig/gdb/testsuite/gdb.threads/attachstop-mt.exp 2008-09-28 13:39:45.000000000 +0200
|
||||
+++ gdb-6.8.50.20081128/gdb/testsuite/gdb.threads/attachstop-mt.exp 2008-12-06 21:57:23.000000000 +0100
|
||||
--- gdb-6.8.50.20090209.orig/gdb/testsuite/gdb.threads/attachstop-mt.exp 2009-01-03 06:58:07.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/testsuite/gdb.threads/attachstop-mt.exp 2009-02-09 16:12:41.000000000 +0100
|
||||
@@ -176,12 +176,23 @@ gdb_test "bt" ".*sleep.*(func|main).*" "
|
||||
# Exit and detach the process.
|
||||
gdb_exit
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -121,7 +121,7 @@ Index: gdb-6.8.50.20081128/gdb/testsuite/gdb.dwarf2/dw2-loclist-prelinked.exp
|
||||
+# No locals.
|
||||
+
|
||||
+# `abort' can get expressed as `*__GI_abort'.
|
||||
+gdb_test "bt full" "in \[^ \]*abort \\(.*in func \\(.*\ti = -?\[0-9\].*in main \\(.*" "Backtrace after 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.20081128/gdb/testsuite/gdb.dwarf2/dw2-loclist-prelinked-main.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
|
@ -18,11 +18,11 @@
|
||||
gdb.base/watchpoint.c (global_ptr_ptr): New variable.
|
||||
(func4): New testing code for GLOBAL_PTR_PTR.
|
||||
|
||||
Index: gdb-6.8.50.20081128/gdb/breakpoint.c
|
||||
Index: gdb-6.8.50.20090209/gdb/breakpoint.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081128.orig/gdb/breakpoint.c 2008-12-01 16:13:12.000000000 +0100
|
||||
+++ gdb-6.8.50.20081128/gdb/breakpoint.c 2008-12-03 00:00:08.000000000 +0100
|
||||
@@ -770,7 +770,15 @@ is_hardware_watchpoint (struct breakpoin
|
||||
--- gdb-6.8.50.20090209.orig/gdb/breakpoint.c 2009-02-09 15:39:01.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/breakpoint.c 2009-02-09 16:04:10.000000000 +0100
|
||||
@@ -769,7 +769,15 @@ is_hardware_watchpoint (struct breakpoin
|
||||
If VAL_CHAIN is non-NULL, *VAL_CHAIN will be released from the
|
||||
value chain. The caller must free the values individually. If
|
||||
VAL_CHAIN is NULL, all generated values will be left on the value
|
||||
@ -39,7 +39,7 @@ Index: gdb-6.8.50.20081128/gdb/breakpoint.c
|
||||
|
||||
static void
|
||||
fetch_watchpoint_value (struct expression *exp, struct value **valp,
|
||||
@@ -5824,7 +5832,7 @@ watch_command_1 (char *arg, int accessfl
|
||||
@@ -5862,7 +5870,7 @@ watch_command_1 (char *arg, int accessfl
|
||||
struct symtab_and_line sal;
|
||||
struct expression *exp;
|
||||
struct block *exp_valid_block;
|
||||
@ -48,7 +48,7 @@ Index: gdb-6.8.50.20081128/gdb/breakpoint.c
|
||||
struct frame_info *frame;
|
||||
struct frame_info *prev_frame = NULL;
|
||||
char *exp_start = NULL;
|
||||
@@ -5910,6 +5918,27 @@ watch_command_1 (char *arg, int accessfl
|
||||
@@ -5954,6 +5962,27 @@ watch_command_1 (char *arg, int accessfl
|
||||
exp_valid_block = innermost_block;
|
||||
mark = value_mark ();
|
||||
fetch_watchpoint_value (exp, &val, NULL, NULL);
|
||||
@ -76,10 +76,10 @@ Index: gdb-6.8.50.20081128/gdb/breakpoint.c
|
||||
if (val != NULL)
|
||||
release_value (val);
|
||||
|
||||
Index: gdb-6.8.50.20081128/gdb/gdbtypes.h
|
||||
Index: gdb-6.8.50.20090209/gdb/gdbtypes.h
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081128.orig/gdb/gdbtypes.h 2008-12-02 22:53:14.000000000 +0100
|
||||
+++ gdb-6.8.50.20081128/gdb/gdbtypes.h 2008-12-03 00:00:08.000000000 +0100
|
||||
--- gdb-6.8.50.20090209.orig/gdb/gdbtypes.h 2009-02-09 15:51:57.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/gdbtypes.h 2009-02-09 16:04:10.000000000 +0100
|
||||
@@ -70,7 +70,22 @@ enum type_code
|
||||
TYPE_CODE_UNION, /* C union or Pascal variant part */
|
||||
TYPE_CODE_ENUM, /* Enumeration type */
|
||||
@ -104,11 +104,11 @@ Index: gdb-6.8.50.20081128/gdb/gdbtypes.h
|
||||
TYPE_CODE_INT, /* Integer type */
|
||||
|
||||
/* Floating type. This is *NOT* a complex type. Beware, there are parts
|
||||
Index: gdb-6.8.50.20081128/gdb/doc/gdb.texinfo
|
||||
Index: gdb-6.8.50.20090209/gdb/doc/gdb.texinfo
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081128.orig/gdb/doc/gdb.texinfo 2008-12-02 23:43:49.000000000 +0100
|
||||
+++ gdb-6.8.50.20081128/gdb/doc/gdb.texinfo 2008-12-03 00:00:08.000000000 +0100
|
||||
@@ -3479,6 +3479,18 @@ This command prints a list of watchpoint
|
||||
--- gdb-6.8.50.20090209.orig/gdb/doc/gdb.texinfo 2009-02-09 16:02:42.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/doc/gdb.texinfo 2009-02-09 16:04:10.000000000 +0100
|
||||
@@ -3480,6 +3480,18 @@ This command prints a list of watchpoint
|
||||
it is the same as @code{info break} (@pxref{Set Breaks}).
|
||||
@end table
|
||||
|
||||
@ -127,10 +127,10 @@ Index: gdb-6.8.50.20081128/gdb/doc/gdb.texinfo
|
||||
@value{GDBN} sets a @dfn{hardware watchpoint} if possible. Hardware
|
||||
watchpoints execute very quickly, and the debugger reports a change in
|
||||
value at the exact instruction where the change occurs. If @value{GDBN}
|
||||
Index: gdb-6.8.50.20081128/gdb/testsuite/gdb.base/watchpoint.c
|
||||
Index: gdb-6.8.50.20090209/gdb/testsuite/gdb.base/watchpoint.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081128.orig/gdb/testsuite/gdb.base/watchpoint.c 2008-03-03 14:24:12.000000000 +0100
|
||||
+++ gdb-6.8.50.20081128/gdb/testsuite/gdb.base/watchpoint.c 2008-12-03 00:00:08.000000000 +0100
|
||||
--- gdb-6.8.50.20090209.orig/gdb/testsuite/gdb.base/watchpoint.c 2008-03-03 14:24:12.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/testsuite/gdb.base/watchpoint.c 2009-02-09 16:04:10.000000000 +0100
|
||||
@@ -40,6 +40,7 @@ struct foo struct1, struct2, *ptr1, *ptr
|
||||
int doread = 0;
|
||||
|
||||
@ -150,10 +150,10 @@ Index: gdb-6.8.50.20081128/gdb/testsuite/gdb.base/watchpoint.c
|
||||
}
|
||||
|
||||
int main ()
|
||||
Index: gdb-6.8.50.20081128/gdb/testsuite/gdb.base/watchpoint.exp
|
||||
Index: gdb-6.8.50.20090209/gdb/testsuite/gdb.base/watchpoint.exp
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081128.orig/gdb/testsuite/gdb.base/watchpoint.exp 2008-08-06 14:52:07.000000000 +0200
|
||||
+++ gdb-6.8.50.20081128/gdb/testsuite/gdb.base/watchpoint.exp 2008-12-03 00:01:07.000000000 +0100
|
||||
--- gdb-6.8.50.20090209.orig/gdb/testsuite/gdb.base/watchpoint.exp 2009-01-03 06:58:03.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/testsuite/gdb.base/watchpoint.exp 2009-02-09 16:05:03.000000000 +0100
|
||||
@@ -641,7 +641,21 @@ proc test_watchpoint_and_breakpoint {} {
|
||||
}
|
||||
}
|
||||
@ -177,9 +177,9 @@ Index: gdb-6.8.50.20081128/gdb/testsuite/gdb.base/watchpoint.exp
|
||||
proc test_inaccessible_watchpoint {} {
|
||||
global gdb_prompt
|
||||
|
||||
@@ -650,7 +664,8 @@ proc test_inaccessible_watchpoint {} {
|
||||
@@ -662,7 +676,8 @@ proc test_inaccessible_watchpoint {} {
|
||||
}
|
||||
|
||||
if [runto func4] then {
|
||||
gdb_test "watch *global_ptr" ".*atchpoint \[0-9\]+: \\*global_ptr"
|
||||
- gdb_test "next" ".*global_ptr = buf.*"
|
||||
+ gdb_test "set \$global_ptr_breakpoint_number = \$bpnum" ""
|
||||
@ -187,7 +187,7 @@ Index: gdb-6.8.50.20081128/gdb/testsuite/gdb.base/watchpoint.exp
|
||||
gdb_test_multiple "next" "next over ptr init" {
|
||||
-re ".*atchpoint \[0-9\]+: \\*global_ptr\r\n\r\nOld value = .*\r\nNew value = 3 .*\r\n.*$gdb_prompt $" {
|
||||
# We can not test for <unknown> here because NULL may be readable.
|
||||
@@ -663,6 +678,28 @@ proc test_inaccessible_watchpoint {} {
|
||||
@@ -675,6 +690,28 @@ proc test_inaccessible_watchpoint {} {
|
||||
pass "next over buffer set"
|
||||
}
|
||||
}
|
||||
@ -216,7 +216,7 @@ Index: gdb-6.8.50.20081128/gdb/testsuite/gdb.base/watchpoint.exp
|
||||
}
|
||||
}
|
||||
|
||||
@@ -830,6 +867,17 @@ if [initialize] then {
|
||||
@@ -842,6 +879,17 @@ if [initialize] then {
|
||||
}
|
||||
|
||||
test_watchpoint_and_breakpoint
|
||||
|
@ -1,3 +1,10 @@
|
||||
infcall.c <unwind_on_signal_p>:
|
||||
Revert the change of: gdb-6.8-inlining.patch
|
||||
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.20081214/gdb/testsuite/gdb.opt/inline-bt.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081214.orig/gdb/testsuite/gdb.opt/inline-bt.c 2009-02-09 13:28:48.000000000 +0100
|
||||
@ -597,6 +604,15 @@ Index: gdb-6.8.50.20081214/gdb/infrun.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081214.orig/gdb/infrun.c 2009-02-09 13:29:51.000000000 +0100
|
||||
+++ gdb-6.8.50.20081214/gdb/infrun.c 2009-02-09 13:30:16.000000000 +0100
|
||||
@@ -1147,8 +1150,6 @@ a command like `return' or `jump' to con
|
||||
step = 0;
|
||||
}
|
||||
|
||||
- clear_inline_frame_state (resume_ptid);
|
||||
-
|
||||
if (debug_displaced
|
||||
&& use_displaced_stepping (gdbarch)
|
||||
&& tp->trap_expected)
|
||||
@@ -1201,6 +1201,8 @@ clear_proceed_status_thread (struct thre
|
||||
|
||||
/* Discard any remaining commands or status from previous stop. */
|
||||
@ -606,6 +622,24 @@ Index: gdb-6.8.50.20081214/gdb/infrun.c
|
||||
}
|
||||
|
||||
static int
|
||||
--- ./gdb/target.c 2009-02-10 23:45:59.000000000 +0100
|
||||
+++ ./gdb/target.c 2009-02-10 23:43:29.000000000 +0100
|
||||
@@ -41,6 +41,7 @@
|
||||
#include "target-descriptions.h"
|
||||
#include "gdbthread.h"
|
||||
#include "solib.h"
|
||||
+#include "inline-frame.h"
|
||||
|
||||
static void target_info (char *, int);
|
||||
|
||||
@@ -1938,6 +1939,7 @@ target_pid_to_str (ptid_t ptid)
|
||||
void
|
||||
target_resume (ptid_t ptid, int step, enum target_signal signal)
|
||||
{
|
||||
+ clear_inline_frame_state (ptid);
|
||||
dcache_invalidate (target_dcache);
|
||||
(*current_target.to_resume) (ptid, step, signal);
|
||||
set_executing (ptid, 1);
|
||||
Index: gdb-6.8.50.20081214/gdb/inline-frame.h
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081214.orig/gdb/inline-frame.h 2009-02-09 13:28:48.000000000 +0100
|
||||
@ -621,3 +655,23 @@ Index: gdb-6.8.50.20081214/gdb/inline-frame.h
|
||||
/* Return the number of hidden functions inlined into the current
|
||||
frame. */
|
||||
|
||||
--- gdb-6.8.50.20090209/gdb/infcall.c 2009-02-10 00:16:10.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/infcall.c-removed 2009-02-10 00:15:58.000000000 +0100
|
||||
@@ -841,8 +841,15 @@ When the function is done executing, GDB
|
||||
|
||||
if (unwind_on_signal_p)
|
||||
{
|
||||
- /* The user wants the context restored. Calling error will
|
||||
- run inf_status_cleanup, which does all the work. */
|
||||
+ /* The user wants the context restored. */
|
||||
+
|
||||
+ /* We must get back to the frame we were before the
|
||||
+ dummy call. */
|
||||
+ dummy_frame_pop (dummy_id);
|
||||
+
|
||||
+ /* We also need to restore inferior status to that before the
|
||||
+ dummy call. */
|
||||
+ restore_inferior_status (inf_status);
|
||||
|
||||
/* FIXME: Insert a bunch of wrap_here; name can be very
|
||||
long if it's a C++ name with arguments and stuff. */
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,56 +0,0 @@
|
||||
http://sourceware.org/ml/gdb-patches/2008-12/msg00155.html
|
||||
|
||||
2008-12-08 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
* gdb.fortran/subarray.exp: Expect also the strings type output.
|
||||
* gdb.fortran/derived-type.exp: Likewise. Expect also the kind=X types.
|
||||
Update for the f-valprint.c modification from 2008-04-22.
|
||||
|
||||
--- ./gdb/testsuite/gdb.fortran/derived-type.exp 1 Jan 2008 22:53:19 -0000 1.6
|
||||
+++ ./gdb/testsuite/gdb.fortran/derived-type.exp 8 Dec 2008 18:04:34 -0000
|
||||
@@ -42,23 +42,22 @@ if ![runto MAIN__] then {
|
||||
}
|
||||
|
||||
gdb_test "ptype p" \
|
||||
- "type = Type bar.*int4.*\:\: c.*real.*\:\: d.*End Type bar" \
|
||||
+ "type = Type bar.*int.*\:\: c.*real.*\:\: d.*End Type bar" \
|
||||
"ptype p"
|
||||
gdb_test "ptype q" \
|
||||
- "type = Type foo.*real.*\:\: a.*Type bar.*int4.*\:\: c.*real.*\:\: d.*End Type bar \:\: x.*character.*\\(7\\) \:\: b.*End Type foo" \
|
||||
+ "type = Type foo.*real.*\:\: *a.*Type bar.*int.*\:\: *c.*real.*\:\: *d.*End Type bar \:\: *x.*character.*7.* \:\: *b.*End Type foo" \
|
||||
"type-printing for derived type"
|
||||
|
||||
gdb_breakpoint [gdb_get_line_number "print"]
|
||||
gdb_continue_to_breakpoint "print"
|
||||
|
||||
-gdb_test "print p" "\\$\[0-9\]+ = \\{ 1, 2.375\\}"
|
||||
+gdb_test "print p" "\\$\[0-9\]+ = \\( 1, 2.375 \\)"
|
||||
gdb_test "print p%c" "\\$\[0-9\]+ = 1"
|
||||
gdb_test "print p%d" "\\$\[0-9\]+ = 2.375"
|
||||
gdb_test "print q%a" "\\$\[0-9\]+ = 3.125"
|
||||
-gdb_test "print q%b" "\\$\[0-9\]+ = \\(.*a.*b.*c.*d.*e.*f.*g.*\\)"
|
||||
+gdb_test "print q%b" "\\$\[0-9\]+ = (\\(.*a.*b.*c.*d.*e.*f.*g.*\\)|'abcdefg')"
|
||||
gdb_test "print q%x%c" "\\$\[0-9\]+ = 1"
|
||||
gdb_test "print q%x%d" "\\$\[0-9\]+ = 2.375"
|
||||
gdb_test "print q" \
|
||||
- "\\$\[0-9\]+ = \\{ 3.125, \\{ 1, 2.375\\}, \\(.*a.*b.*c.*d.*e.*f.*g.*\\)\\}" \
|
||||
+ "\\$\[0-9\]+ = \\( 3.125, \\( 1, 2.375 \\), (\\(.*a.*b.*c.*d.*e.*f.*g.*\\)|'abcdefg') \\)" \
|
||||
"print q"
|
||||
-
|
||||
--- ./gdb/testsuite/gdb.fortran/subarray.exp 1 Jan 2008 22:53:19 -0000 1.6
|
||||
+++ ./gdb/testsuite/gdb.fortran/subarray.exp 8 Dec 2008 18:04:34 -0000
|
||||
@@ -53,10 +53,10 @@ gdb_test "continue" \
|
||||
|
||||
# Test four different kinds of subarray expression evaluation.
|
||||
|
||||
-gdb_test "print str(2:4)" ".*1 = \\(98 'b', 99 'c', 100 'd'\\).*" "print str(2:4)"
|
||||
-gdb_test "print str(:3)" ".*2 = \\(97 'a', 98 'b', 99 'c'\\).*" "print str(:3)"
|
||||
-gdb_test "print str(5:)" ".*3 = \\(101 'e', 102 'f', 103 'g'\\).*" "print str(5:)"
|
||||
-gdb_test "print str(:)" ".*4 = \\(97 'a', 98 'b', 99 'c', 100 'd', 101 'e', 102 'f', 103 'g'\\).*" "print str(:)"
|
||||
+gdb_test "print str(2:4)" ".*1 = (\\(98 'b', 99 'c', 100 'd'\\)|'bcd').*" "print str(2:4)"
|
||||
+gdb_test "print str(:3)" ".*2 = (\\(97 'a', 98 'b', 99 'c'\\)|'abc').*" "print str(:3)"
|
||||
+gdb_test "print str(5:)" ".*3 = (\\(101 'e', 102 'f', 103 'g'\\)|'efg').*" "print str(5:)"
|
||||
+gdb_test "print str(:)" ".*4 = (\\(97 'a', 98 'b', 99 'c', 100 'd', 101 'e', 102 'f', 103 'g'\\)|'abcdefg').*" "print str(:)"
|
||||
|
||||
gdb_test "print array(2:4)" ".*5 = \\(2, 3, 4\\).*" "print array(2:4)"
|
||||
gdb_test "print array(:3)" ".*6 = \\(1, 2, 3\\).*" "print array(:3)"
|
@ -1,136 +0,0 @@
|
||||
2008-12-07 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
Fix hw watchpoints created before the inferior was started.
|
||||
* breakpoint.c (update_watchpoint): Convert the bp_watchpoint and
|
||||
bp_hardware_watchpoint types according to the current runtime state.
|
||||
(insert_breakpoints): Call update_watchpoint even for `bp_watchpoint's.
|
||||
|
||||
2008-12-07 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||
|
||||
* gdb.base/watchpoint-hw.exp, gdb.base/watchpoint-hw.c: New.
|
||||
|
||||
--- ./gdb/breakpoint.c 7 Dec 2008 15:59:51 -0000 1.364
|
||||
+++ ./gdb/breakpoint.c 7 Dec 2008 21:20:54 -0000
|
||||
@@ -892,6 +892,28 @@ update_watchpoint (struct breakpoint *b,
|
||||
b->val_valid = 1;
|
||||
}
|
||||
|
||||
+ /* Change the type of breakpoint between hardware assisted or an
|
||||
+ ordinary watchpoint depending on the hardware support and free
|
||||
+ hardware slots. */
|
||||
+ if (b->type == bp_watchpoint || b->type == bp_hardware_watchpoint)
|
||||
+ {
|
||||
+ int i, mem_cnt, target_resources_ok, other_type_used;
|
||||
+
|
||||
+ i = hw_watchpoint_used_count (bp_hardware_watchpoint,
|
||||
+ &other_type_used);
|
||||
+ mem_cnt = can_use_hardware_watchpoint (val_chain);
|
||||
+
|
||||
+ /* Hack around 'unused var' error for some targets here. */
|
||||
+ (void) i;
|
||||
+ if (mem_cnt)
|
||||
+ target_resources_ok = TARGET_CAN_USE_HARDWARE_WATCHPOINT
|
||||
+ (bp_hardware_watchpoint, i + mem_cnt, other_type_used);
|
||||
+ if (!mem_cnt || target_resources_ok <= 0)
|
||||
+ b->type = bp_watchpoint;
|
||||
+ else
|
||||
+ b->type = bp_hardware_watchpoint;
|
||||
+ }
|
||||
+
|
||||
/* Look at each value on the value chain. */
|
||||
for (v = val_chain; v; v = next)
|
||||
{
|
||||
@@ -1204,8 +1226,9 @@ insert_breakpoints (void)
|
||||
{
|
||||
struct breakpoint *bpt;
|
||||
|
||||
+ /* Software watchpoint may get converted to hardware ones. */
|
||||
ALL_BREAKPOINTS (bpt)
|
||||
- if (is_hardware_watchpoint (bpt))
|
||||
+ if (is_hardware_watchpoint (bpt) || bpt->type == bp_watchpoint)
|
||||
update_watchpoint (bpt, 0 /* don't reparse. */);
|
||||
|
||||
update_global_location_list (1);
|
||||
--- /dev/null 1 Jan 1970 00:00:00 -0000
|
||||
+++ ./gdb/testsuite/gdb.base/watchpoint-hw.c 7 Dec 2008 21:20:56 -0000
|
||||
@@ -0,0 +1,27 @@
|
||||
+/* This testcase is part of GDB, the GNU debugger.
|
||||
+
|
||||
+ Copyright 2008 Free Software Foundation, Inc.
|
||||
+
|
||||
+ This program is free software; you can redistribute it and/or modify
|
||||
+ it under the terms of the GNU General Public License as published by
|
||||
+ the Free Software Foundation; either version 3 of the License, or
|
||||
+ (at your option) any later version.
|
||||
+
|
||||
+ This program is distributed in the hope that it will be useful,
|
||||
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+ GNU General Public License for more details.
|
||||
+
|
||||
+ You should have received a copy of the GNU General Public License
|
||||
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
+
|
||||
+ Please email any bugs, comments, and/or additions to this file to:
|
||||
+ bug-gdb@prep.ai.mit.edu */
|
||||
+
|
||||
+int watchee;
|
||||
+
|
||||
+int
|
||||
+main (void)
|
||||
+{
|
||||
+ return 0;
|
||||
+}
|
||||
--- /dev/null 1 Jan 1970 00:00:00 -0000
|
||||
+++ ./gdb/testsuite/gdb.base/watchpoint-hw.exp 7 Dec 2008 21:20:56 -0000
|
||||
@@ -0,0 +1,50 @@
|
||||
+# Copyright 2008 Free Software Foundation, Inc.
|
||||
+
|
||||
+# This program is free software; you can redistribute it and/or modify
|
||||
+# it under the terms of the GNU General Public License as published by
|
||||
+# the Free Software Foundation; either version 3 of the License, or
|
||||
+# (at your option) any later version.
|
||||
+#
|
||||
+# This program is distributed in the hope that it will be useful,
|
||||
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+# GNU General Public License for more details.
|
||||
+#
|
||||
+# You should have received a copy of the GNU General Public License
|
||||
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
+
|
||||
+if {![istarget "i?86-*-*"] && ![istarget "x86_64-*-*"] && ![istarget "ia64-*-*"]
|
||||
+ && ![istarget "s390*-*-*"]} then {
|
||||
+ verbose "Skipping watchpoint-hw test."
|
||||
+ return
|
||||
+}
|
||||
+
|
||||
+set testfile watchpoint-hw
|
||||
+set srcfile ${testfile}.c
|
||||
+set binfile ${objdir}/${subdir}/${testfile}
|
||||
+if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } {
|
||||
+ untested "Couldn't compile test program"
|
||||
+ return -1
|
||||
+}
|
||||
+
|
||||
+gdb_exit
|
||||
+gdb_start
|
||||
+gdb_reinitialize_dir $srcdir/$subdir
|
||||
+gdb_load ${binfile}
|
||||
+
|
||||
+# Create the watchpoint before the inferior gets started. Now the native CPU
|
||||
+# target is still not active and its `to_can_use_hw_breakpoint' is not
|
||||
+# installed, therefore only a software watchpoint gets created.
|
||||
+
|
||||
+gdb_test "watch watchee" "atchpoint 1: watchee"
|
||||
+
|
||||
+# `runto_main' or `runto main' would delete the watchpoint created above.
|
||||
+
|
||||
+if { [gdb_start_cmd] < 0 } {
|
||||
+ untested start
|
||||
+ return -1
|
||||
+}
|
||||
+gdb_test "" "main .* at .*" "start"
|
||||
+
|
||||
+# Check it is really a `hw'-watchpoint.
|
||||
+gdb_test "info watchpoints" "1 *hw watchpoint .* watchee"
|
19
gdb.spec
19
gdb.spec
@ -9,11 +9,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.20081214
|
||||
Version: 6.8.50.20090209
|
||||
|
||||
# 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: 2%{?_with_upstream:.upstream}%{?dist}
|
||||
Release: 1%{?_with_upstream:.upstream}%{?dist}
|
||||
|
||||
License: GPLv3+
|
||||
Group: Development/Debuggers
|
||||
@ -125,9 +125,6 @@ Patch142: gdb-6.3-terminal-fix-20050214.patch
|
||||
# Test sibling threads to set threaded watchpoints for x86 and x86-64
|
||||
Patch145: gdb-6.3-threaded-watchpoints2-20050225.patch
|
||||
|
||||
# Fix unexpected compiler warning messages.
|
||||
Patch147: gdb-6.3-warnings-20050317.patch
|
||||
|
||||
# Fix printing of inherited members
|
||||
Patch148: gdb-6.3-inheritance-20050324.patch
|
||||
|
||||
@ -377,12 +374,6 @@ Patch343: gdb-6.8-watchpoint-conditionals-test.patch
|
||||
# Fix resolving of variables at locations lists in prelinked libs (BZ 466901).
|
||||
Patch348: gdb-6.8-bz466901-backtrace-full-prelinked.patch
|
||||
|
||||
# Enable hardware watchpoints if created before starting inferior.
|
||||
Patch349: gdb-watchpoint-hw-without-inferior.patch
|
||||
|
||||
# Fix upstream testsuite regression + make Fortran tests gfortran compatible.
|
||||
Patch351: gdb-fortran-testsuite-gfortran.patch
|
||||
|
||||
BuildRequires: ncurses-devel texinfo gettext flex bison expat-devel
|
||||
Requires: readline
|
||||
BuildRequires: readline-devel
|
||||
@ -484,7 +475,6 @@ rm -f gdb/jv-exp.c gdb/m2-exp.c gdb/objc-exp.c gdb/p-exp.c
|
||||
%patch259 -p1
|
||||
%patch142 -p1
|
||||
%patch145 -p1
|
||||
%patch147 -p1
|
||||
%patch148 -p1
|
||||
%patch150 -p1
|
||||
%patch151 -p1
|
||||
@ -569,8 +559,6 @@ rm -f gdb/jv-exp.c gdb/m2-exp.c gdb/objc-exp.c gdb/p-exp.c
|
||||
%patch337 -p1
|
||||
%patch343 -p1
|
||||
%patch348 -p1
|
||||
%patch349 -p1
|
||||
%patch351 -p1
|
||||
%patch124 -p1
|
||||
|
||||
find -name "*.orig" | xargs rm -f
|
||||
@ -834,6 +822,9 @@ fi
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Wed Feb 11 2009 Jan Kratochvil <jan.kratochvil@redhat.com> - 6.8.50.20090209-1
|
||||
- Upgrade to the FSF GDB gdb-6.8.50 snapshot.
|
||||
|
||||
* Mon Feb 9 2009 Jan Kratochvil <jan.kratochvil@redhat.com> - 6.8.50.20081214-2
|
||||
- Fix crash / implement `finish' into inlined functions (BZ 479781).
|
||||
- Drop the gdb.threads/attach-into-signal.exp change as obsolete.
|
||||
|
Loading…
Reference in New Issue
Block a user