- 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,23 +1138,35 @@ 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)
|
||||
{
|
||||
@ -1152,7 +1174,7 @@ Index: gdb-6.8.50.20081209/gdb/solib.c
|
||||
+ /* Found an already loaded shared library. */
|
||||
+ if (strcmp (so->objfile->name, so->so_name) == 0
|
||||
+ && !so->main)
|
||||
return 1;
|
||||
+ return 1;
|
||||
+ /* Found an already loaded main executable. This could happen in
|
||||
+ two circumstances.
|
||||
+ First case: the main file has already been read in
|
||||
@ -1164,31 +1186,31 @@ Index: gdb-6.8.50.20081209/gdb/solib.c
|
||||
+ if (strcmp (so->objfile->name, so->so_name) == 0
|
||||
+ && so->main
|
||||
+ && so->main_relocated)
|
||||
+ return 1;
|
||||
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;
|
||||
+
|
||||
if (target_can_async_p ())
|
||||
drain_queued_events (pid);
|
||||
@@ -1671,6 +1685,8 @@ linux_nat_detach (struct target_ops *ops
|
||||
}
|
||||
@@ -1787,6 +1803,14 @@ linux_nat_resume (ptid_t ptid, int step_
|
||||
else
|
||||
linux_ops->to_detach (ops, args, from_tty);
|
||||
+
|
||||
+ pid_was_stopped = 0;
|
||||
}
|
||||
|
||||
/* 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. */
|
||||
|
@ -5,24 +5,26 @@ http://sourceware.org/ml/gdb-patches/2008-07/msg00317.html
|
||||
|
||||
Removed dwarf_expr_frame_base NULL check duplicity with *-vla.patch.
|
||||
|
||||
Index: gdb-6.8.50.20081214/gdb/NEWS
|
||||
Index: gdb-6.8.50.20090209/gdb/NEWS
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081214.orig/gdb/NEWS 2008-12-14 15:30:03.000000000 +0100
|
||||
+++ gdb-6.8.50.20081214/gdb/NEWS 2008-12-14 15:31:03.000000000 +0100
|
||||
@@ -26,6 +26,9 @@ completions will be "f1" and "f2".
|
||||
operators when expanding macros. It also supports variable-arity
|
||||
macros.
|
||||
--- gdb-6.8.50.20090209.orig/gdb/NEWS 2009-02-07 16:00:57.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/NEWS 2009-02-09 16:06:54.000000000 +0100
|
||||
@@ -1,6 +1,11 @@
|
||||
What has changed in GDB?
|
||||
(Organized release by release)
|
||||
|
||||
+*** Fedora changes
|
||||
+
|
||||
+* Inlined functions are now supported. They show up in backtraces, and
|
||||
+the "step", "next", and "finish" commands handle them automatically.
|
||||
+
|
||||
* New remote packets
|
||||
*** Changes since GDB 6.8
|
||||
|
||||
qSearch:memory:
|
||||
Index: gdb-6.8.50.20081214/gdb/block.c
|
||||
* GDB now supports automatic retrieval of shared library files from
|
||||
Index: gdb-6.8.50.20090209/gdb/block.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081214.orig/gdb/block.c 2008-12-14 15:30:03.000000000 +0100
|
||||
+++ gdb-6.8.50.20081214/gdb/block.c 2008-12-14 15:31:03.000000000 +0100
|
||||
--- gdb-6.8.50.20090209.orig/gdb/block.c 2009-01-03 06:57:50.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/block.c 2009-02-09 16:06:00.000000000 +0100
|
||||
@@ -47,8 +47,16 @@ contained_in (const struct block *a, con
|
||||
{
|
||||
if (!a || !b)
|
||||
@ -65,10 +67,10 @@ Index: gdb-6.8.50.20081214/gdb/block.c
|
||||
/* Return the blockvector immediately containing the innermost lexical
|
||||
block containing the specified pc value and section, or 0 if there
|
||||
is none. PBLOCK is a pointer to the block. If PBLOCK is NULL, we
|
||||
Index: gdb-6.8.50.20081214/gdb/block.h
|
||||
Index: gdb-6.8.50.20090209/gdb/block.h
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081214.orig/gdb/block.h 2008-12-14 15:30:03.000000000 +0100
|
||||
+++ gdb-6.8.50.20081214/gdb/block.h 2008-12-14 15:31:03.000000000 +0100
|
||||
--- gdb-6.8.50.20090209.orig/gdb/block.h 2009-01-03 06:57:50.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/block.h 2009-02-09 16:06:00.000000000 +0100
|
||||
@@ -65,7 +65,7 @@ struct block
|
||||
CORE_ADDR endaddr;
|
||||
|
||||
@ -87,10 +89,10 @@ Index: gdb-6.8.50.20081214/gdb/block.h
|
||||
extern int contained_in (const struct block *, const struct block *);
|
||||
|
||||
extern struct blockvector *blockvector_for_pc (CORE_ADDR, struct block **);
|
||||
Index: gdb-6.8.50.20081214/gdb/blockframe.c
|
||||
Index: gdb-6.8.50.20090209/gdb/blockframe.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081214.orig/gdb/blockframe.c 2008-12-14 15:30:03.000000000 +0100
|
||||
+++ gdb-6.8.50.20081214/gdb/blockframe.c 2008-12-14 15:31:03.000000000 +0100
|
||||
--- gdb-6.8.50.20090209.orig/gdb/blockframe.c 2009-01-03 06:57:50.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/blockframe.c 2009-02-09 16:06:00.000000000 +0100
|
||||
@@ -36,6 +36,7 @@
|
||||
#include "command.h"
|
||||
#include "gdbcmd.h"
|
||||
@ -159,11 +161,11 @@ Index: gdb-6.8.50.20081214/gdb/blockframe.c
|
||||
return frame;
|
||||
|
||||
frame = get_prev_frame (frame);
|
||||
Index: gdb-6.8.50.20081214/gdb/breakpoint.c
|
||||
Index: gdb-6.8.50.20090209/gdb/breakpoint.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081214.orig/gdb/breakpoint.c 2008-12-14 15:30:03.000000000 +0100
|
||||
+++ gdb-6.8.50.20081214/gdb/breakpoint.c 2008-12-14 15:31:03.000000000 +0100
|
||||
@@ -2572,19 +2572,21 @@ watchpoint_check (void *p)
|
||||
--- gdb-6.8.50.20090209.orig/gdb/breakpoint.c 2009-02-09 16:04:10.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/breakpoint.c 2009-02-09 16:06:00.000000000 +0100
|
||||
@@ -2615,19 +2615,21 @@ watchpoint_check (void *p)
|
||||
within_current_scope = 1;
|
||||
else
|
||||
{
|
||||
@ -193,7 +195,7 @@ Index: gdb-6.8.50.20081214/gdb/breakpoint.c
|
||||
|
||||
/* in_function_epilogue_p() returns a non-zero value if we're still
|
||||
in the function but the stack frame has already been invalidated.
|
||||
@@ -2596,10 +2598,9 @@ watchpoint_check (void *p)
|
||||
@@ -2639,10 +2641,9 @@ watchpoint_check (void *p)
|
||||
that the watchpoint frame couldn't be found by frame_find_by_id()
|
||||
because the current PC is currently in an epilogue. Calling
|
||||
gdbarch_in_function_epilogue_p() also when fr == NULL fixes that. */
|
||||
@ -206,7 +208,7 @@ Index: gdb-6.8.50.20081214/gdb/breakpoint.c
|
||||
/* If we end up stopping, the current frame will get selected
|
||||
in normal_stop. So this call to select_frame won't affect
|
||||
the user. */
|
||||
@@ -2833,7 +2834,7 @@ bpstat_check_breakpoint_conditions (bpst
|
||||
@@ -2876,7 +2877,7 @@ bpstat_check_breakpoint_conditions (bpst
|
||||
struct breakpoint *b = bl->owner;
|
||||
|
||||
if (frame_id_p (b->frame_id)
|
||||
@ -215,7 +217,7 @@ Index: gdb-6.8.50.20081214/gdb/breakpoint.c
|
||||
bs->stop = 0;
|
||||
else if (bs->stop)
|
||||
{
|
||||
@@ -2848,8 +2849,12 @@ bpstat_check_breakpoint_conditions (bpst
|
||||
@@ -2891,8 +2892,12 @@ bpstat_check_breakpoint_conditions (bpst
|
||||
|
||||
if (bl->cond && bl->owner->disposition != disp_del_at_next_stop)
|
||||
{
|
||||
@ -230,7 +232,7 @@ Index: gdb-6.8.50.20081214/gdb/breakpoint.c
|
||||
select_frame (get_current_frame ());
|
||||
value_is_zero
|
||||
= catch_errors (breakpoint_cond_eval, (bl->cond),
|
||||
@@ -4820,6 +4825,11 @@ set_momentary_breakpoint (struct symtab_
|
||||
@@ -4862,6 +4867,11 @@ set_momentary_breakpoint (struct symtab_
|
||||
enum bptype type)
|
||||
{
|
||||
struct breakpoint *b;
|
||||
@ -242,7 +244,7 @@ Index: gdb-6.8.50.20081214/gdb/breakpoint.c
|
||||
b = set_raw_breakpoint (sal, type);
|
||||
b->enable_state = bp_enabled;
|
||||
b->disposition = disp_donttouch;
|
||||
@@ -5832,7 +5842,6 @@ watch_command_1 (char *arg, int accessfl
|
||||
@@ -5872,7 +5882,6 @@ watch_command_1 (char *arg, int accessfl
|
||||
struct block *exp_valid_block;
|
||||
struct value *val, *mark, *val_chain;
|
||||
struct frame_info *frame;
|
||||
@ -250,7 +252,7 @@ Index: gdb-6.8.50.20081214/gdb/breakpoint.c
|
||||
char *exp_start = NULL;
|
||||
char *exp_end = NULL;
|
||||
char *tok, *id_tok_start, *end_tok;
|
||||
@@ -5987,34 +5996,34 @@ watch_command_1 (char *arg, int accessfl
|
||||
@@ -6033,34 +6042,34 @@ watch_command_1 (char *arg, int accessfl
|
||||
bp_type = bp_watchpoint;
|
||||
|
||||
frame = block_innermost_frame (exp_valid_block);
|
||||
@ -303,7 +305,7 @@ Index: gdb-6.8.50.20081214/gdb/breakpoint.c
|
||||
}
|
||||
|
||||
/* Now set up the breakpoint. */
|
||||
@@ -6195,7 +6204,6 @@ until_break_command (char *arg, int from
|
||||
@@ -6241,7 +6250,6 @@ until_break_command (char *arg, int from
|
||||
struct symtabs_and_lines sals;
|
||||
struct symtab_and_line sal;
|
||||
struct frame_info *frame = get_selected_frame (NULL);
|
||||
@ -311,7 +313,7 @@ Index: gdb-6.8.50.20081214/gdb/breakpoint.c
|
||||
struct breakpoint *breakpoint;
|
||||
struct breakpoint *breakpoint2 = NULL;
|
||||
struct cleanup *old_chain;
|
||||
@@ -6228,20 +6236,22 @@ until_break_command (char *arg, int from
|
||||
@@ -6274,20 +6282,22 @@ until_break_command (char *arg, int from
|
||||
we don't specify a frame at which we need to stop. */
|
||||
breakpoint = set_momentary_breakpoint (sal, null_frame_id, bp_until);
|
||||
else
|
||||
@ -340,10 +342,10 @@ Index: gdb-6.8.50.20081214/gdb/breakpoint.c
|
||||
bp_until);
|
||||
make_cleanup_delete_breakpoint (breakpoint2);
|
||||
}
|
||||
Index: gdb-6.8.50.20081214/gdb/buildsym.c
|
||||
Index: gdb-6.8.50.20090209/gdb/buildsym.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081214.orig/gdb/buildsym.c 2008-12-14 15:30:03.000000000 +0100
|
||||
+++ gdb-6.8.50.20081214/gdb/buildsym.c 2008-12-14 15:31:03.000000000 +0100
|
||||
--- gdb-6.8.50.20090209.orig/gdb/buildsym.c 2009-01-03 06:57:50.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/buildsym.c 2009-02-09 16:06:00.000000000 +0100
|
||||
@@ -1159,6 +1159,12 @@ end_symtab (CORE_ADDR end_addr, struct o
|
||||
struct symbol *sym;
|
||||
struct dict_iterator iter;
|
||||
@ -357,11 +359,11 @@ Index: gdb-6.8.50.20081214/gdb/buildsym.c
|
||||
for (sym = dict_iterator_first (BLOCK_DICT (block), &iter);
|
||||
sym != NULL;
|
||||
sym = dict_iterator_next (&iter))
|
||||
Index: gdb-6.8.50.20081214/gdb/doc/gdb.texinfo
|
||||
Index: gdb-6.8.50.20090209/gdb/doc/gdb.texinfo
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081214.orig/gdb/doc/gdb.texinfo 2008-12-14 15:30:03.000000000 +0100
|
||||
+++ gdb-6.8.50.20081214/gdb/doc/gdb.texinfo 2008-12-14 15:31:03.000000000 +0100
|
||||
@@ -147,6 +147,7 @@ software in general. We will miss him.
|
||||
--- gdb-6.8.50.20090209.orig/gdb/doc/gdb.texinfo 2009-02-09 16:04:10.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/doc/gdb.texinfo 2009-02-09 16:06:00.000000000 +0100
|
||||
@@ -137,6 +137,7 @@ software in general. We will miss him.
|
||||
* Stack:: Examining the stack
|
||||
* Source:: Examining source files
|
||||
* Data:: Examining data
|
||||
@ -369,7 +371,7 @@ Index: gdb-6.8.50.20081214/gdb/doc/gdb.texinfo
|
||||
* Macros:: Preprocessor Macros
|
||||
* Tracepoints:: Debugging remote targets non-intrusively
|
||||
* Overlays:: Debugging programs that use overlays
|
||||
@@ -1813,7 +1814,7 @@ To request debugging information, specif
|
||||
@@ -1812,7 +1813,7 @@ To request debugging information, specif
|
||||
the compiler.
|
||||
|
||||
Programs that are to be shipped to your customers are compiled with
|
||||
@ -378,7 +380,7 @@ Index: gdb-6.8.50.20081214/gdb/doc/gdb.texinfo
|
||||
compilers are unable to handle the @samp{-g} and @samp{-O} options
|
||||
together. Using those compilers, you cannot generate optimized
|
||||
executables containing debugging information.
|
||||
@@ -1822,22 +1823,7 @@ executables containing debugging informa
|
||||
@@ -1821,22 +1822,7 @@ executables containing debugging informa
|
||||
without @samp{-O}, making it possible to debug optimized code. We
|
||||
recommend that you @emph{always} use @samp{-g} whenever you compile a
|
||||
program. You may think your program is correct, but there is no sense
|
||||
@ -402,7 +404,7 @@ Index: gdb-6.8.50.20081214/gdb/doc/gdb.texinfo
|
||||
|
||||
Older versions of the @sc{gnu} C compiler permitted a variant option
|
||||
@w{@samp{-gg}} for debugging information. @value{GDBN} no longer supports this
|
||||
@@ -8271,6 +8257,107 @@ $1 = 1
|
||||
@@ -8297,6 +8283,107 @@ $1 = 1
|
||||
$2 = (void *) 0x8049560
|
||||
@end smallexample
|
||||
|
||||
@ -510,10 +512,10 @@ Index: gdb-6.8.50.20081214/gdb/doc/gdb.texinfo
|
||||
@node Macros
|
||||
@chapter C Preprocessor Macros
|
||||
|
||||
Index: gdb-6.8.50.20081214/gdb/dwarf2loc.c
|
||||
Index: gdb-6.8.50.20090209/gdb/dwarf2loc.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081214.orig/gdb/dwarf2loc.c 2008-12-14 15:30:03.000000000 +0100
|
||||
+++ gdb-6.8.50.20081214/gdb/dwarf2loc.c 2008-12-14 15:31:03.000000000 +0100
|
||||
--- gdb-6.8.50.20090209.orig/gdb/dwarf2loc.c 2009-02-09 15:38:54.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/dwarf2loc.c 2009-02-09 16:06:00.000000000 +0100
|
||||
@@ -31,6 +31,7 @@
|
||||
#include "regcache.h"
|
||||
#include "objfiles.h"
|
||||
@ -534,11 +536,11 @@ Index: gdb-6.8.50.20081214/gdb/dwarf2loc.c
|
||||
|
||||
/* If we found a frame-relative symbol then it was certainly within
|
||||
some function associated with a frame. If we can't find the frame,
|
||||
Index: gdb-6.8.50.20081214/gdb/dwarf2read.c
|
||||
Index: gdb-6.8.50.20090209/gdb/dwarf2read.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081214.orig/gdb/dwarf2read.c 2008-12-14 15:30:03.000000000 +0100
|
||||
+++ gdb-6.8.50.20081214/gdb/dwarf2read.c 2008-12-14 15:31:03.000000000 +0100
|
||||
@@ -45,6 +45,7 @@
|
||||
--- gdb-6.8.50.20090209.orig/gdb/dwarf2read.c 2009-02-09 16:03:46.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/dwarf2read.c 2009-02-09 16:06:00.000000000 +0100
|
||||
@@ -46,6 +46,7 @@
|
||||
#include "hashtab.h"
|
||||
#include "command.h"
|
||||
#include "gdbcmd.h"
|
||||
@ -546,7 +548,7 @@ Index: gdb-6.8.50.20081214/gdb/dwarf2read.c
|
||||
#include "addrmap.h"
|
||||
#include "top.h"
|
||||
|
||||
@@ -2787,12 +2788,8 @@ process_die (struct die_info *die, struc
|
||||
@@ -2788,12 +2789,8 @@ process_die (struct die_info *die, struc
|
||||
read_file_scope (die, cu);
|
||||
break;
|
||||
case DW_TAG_subprogram:
|
||||
@ -560,7 +562,7 @@ Index: gdb-6.8.50.20081214/gdb/dwarf2read.c
|
||||
break;
|
||||
case DW_TAG_lexical_block:
|
||||
case DW_TAG_try_block:
|
||||
@@ -3055,10 +3052,25 @@ read_func_scope (struct die_info *die, s
|
||||
@@ -3056,10 +3053,25 @@ read_func_scope (struct die_info *die, s
|
||||
CORE_ADDR lowpc;
|
||||
CORE_ADDR highpc;
|
||||
struct die_info *child_die;
|
||||
@ -587,7 +589,7 @@ Index: gdb-6.8.50.20081214/gdb/dwarf2read.c
|
||||
|
||||
baseaddr = ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
|
||||
|
||||
@@ -6942,6 +6954,9 @@ die_specification (struct die_info *die,
|
||||
@@ -6949,6 +6961,9 @@ die_specification (struct die_info *die,
|
||||
*spec_cu);
|
||||
|
||||
if (spec_attr == NULL)
|
||||
@ -597,7 +599,7 @@ Index: gdb-6.8.50.20081214/gdb/dwarf2read.c
|
||||
return NULL;
|
||||
else
|
||||
return follow_die_ref (die, spec_attr, spec_cu);
|
||||
@@ -7625,6 +7640,7 @@ new_symbol (struct die_info *die, struct
|
||||
@@ -7632,6 +7647,7 @@ new_symbol (struct die_info *die, struct
|
||||
struct attribute *attr = NULL;
|
||||
struct attribute *attr2 = NULL;
|
||||
CORE_ADDR baseaddr;
|
||||
@ -605,7 +607,7 @@ Index: gdb-6.8.50.20081214/gdb/dwarf2read.c
|
||||
|
||||
baseaddr = ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
|
||||
|
||||
@@ -7654,13 +7670,17 @@ new_symbol (struct die_info *die, struct
|
||||
@@ -7661,13 +7677,17 @@ new_symbol (struct die_info *die, struct
|
||||
SYMBOL_TYPE (sym) = type;
|
||||
else
|
||||
SYMBOL_TYPE (sym) = die_type (die, cu);
|
||||
@ -625,7 +627,7 @@ Index: gdb-6.8.50.20081214/gdb/dwarf2read.c
|
||||
if (attr)
|
||||
{
|
||||
int file_index = DW_UNSND (attr);
|
||||
@@ -7707,6 +7727,14 @@ new_symbol (struct die_info *die, struct
|
||||
@@ -7714,6 +7734,14 @@ new_symbol (struct die_info *die, struct
|
||||
add_symbol_to_list (sym, cu->list_in_scope);
|
||||
}
|
||||
break;
|
||||
@ -640,7 +642,7 @@ Index: gdb-6.8.50.20081214/gdb/dwarf2read.c
|
||||
case DW_TAG_variable:
|
||||
/* Compilation with minimal debug info may result in variables
|
||||
with missing type entries. Change the misleading `void' type
|
||||
@@ -7754,7 +7782,14 @@ new_symbol (struct die_info *die, struct
|
||||
@@ -7761,7 +7789,14 @@ new_symbol (struct die_info *die, struct
|
||||
}
|
||||
break;
|
||||
case DW_TAG_formal_parameter:
|
||||
@ -656,10 +658,10 @@ Index: gdb-6.8.50.20081214/gdb/dwarf2read.c
|
||||
attr = dwarf2_attr (die, DW_AT_location, cu);
|
||||
if (attr)
|
||||
{
|
||||
Index: gdb-6.8.50.20081214/gdb/frame-unwind.c
|
||||
Index: gdb-6.8.50.20090209/gdb/frame-unwind.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081214.orig/gdb/frame-unwind.c 2008-12-14 15:30:03.000000000 +0100
|
||||
+++ gdb-6.8.50.20081214/gdb/frame-unwind.c 2008-12-14 15:31:03.000000000 +0100
|
||||
--- gdb-6.8.50.20090209.orig/gdb/frame-unwind.c 2009-01-03 06:57:51.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/frame-unwind.c 2009-02-09 16:06:00.000000000 +0100
|
||||
@@ -21,6 +21,7 @@
|
||||
#include "frame.h"
|
||||
#include "frame-unwind.h"
|
||||
@ -680,10 +682,10 @@ Index: gdb-6.8.50.20081214/gdb/frame-unwind.c
|
||||
return table;
|
||||
}
|
||||
|
||||
Index: gdb-6.8.50.20081214/gdb/frame.c
|
||||
Index: gdb-6.8.50.20090209/gdb/frame.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081214.orig/gdb/frame.c 2008-12-14 15:30:03.000000000 +0100
|
||||
+++ gdb-6.8.50.20081214/gdb/frame.c 2008-12-14 15:31:03.000000000 +0100
|
||||
--- gdb-6.8.50.20090209.orig/gdb/frame.c 2009-02-09 15:48:46.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/frame.c 2009-02-09 16:06:00.000000000 +0100
|
||||
@@ -41,8 +41,14 @@
|
||||
#include "objfiles.h"
|
||||
#include "exceptions.h"
|
||||
@ -868,7 +870,7 @@ Index: gdb-6.8.50.20081214/gdb/frame.c
|
||||
get_frame_func (struct frame_info *this_frame)
|
||||
{
|
||||
struct frame_info *next_frame = this_frame->next;
|
||||
@@ -1217,7 +1290,6 @@ frame_register_unwind_location (struct f
|
||||
@@ -1226,7 +1299,6 @@ frame_register_unwind_location (struct f
|
||||
static struct frame_info *
|
||||
get_prev_frame_1 (struct frame_info *this_frame)
|
||||
{
|
||||
@ -876,7 +878,7 @@ Index: gdb-6.8.50.20081214/gdb/frame.c
|
||||
struct frame_id this_id;
|
||||
struct gdbarch *gdbarch;
|
||||
|
||||
@@ -1257,6 +1329,14 @@ get_prev_frame_1 (struct frame_info *thi
|
||||
@@ -1266,6 +1338,14 @@ get_prev_frame_1 (struct frame_info *thi
|
||||
this_frame->prev_p = 1;
|
||||
this_frame->stop_reason = UNWIND_NO_REASON;
|
||||
|
||||
@ -891,7 +893,7 @@ Index: gdb-6.8.50.20081214/gdb/frame.c
|
||||
/* Check that this frame's ID was valid. If it wasn't, don't try to
|
||||
unwind to the prev frame. Be careful to not apply this test to
|
||||
the sentinel frame. */
|
||||
@@ -1324,7 +1404,8 @@ get_prev_frame_1 (struct frame_info *thi
|
||||
@@ -1333,7 +1413,8 @@ get_prev_frame_1 (struct frame_info *thi
|
||||
if (this_frame->level > 0
|
||||
&& gdbarch_pc_regnum (gdbarch) >= 0
|
||||
&& get_frame_type (this_frame) == NORMAL_FRAME
|
||||
@ -901,7 +903,7 @@ Index: gdb-6.8.50.20081214/gdb/frame.c
|
||||
{
|
||||
int optimized, realnum, nrealnum;
|
||||
enum lval_type lval, nlval;
|
||||
@@ -1353,6 +1434,17 @@ get_prev_frame_1 (struct frame_info *thi
|
||||
@@ -1362,6 +1443,17 @@ get_prev_frame_1 (struct frame_info *thi
|
||||
}
|
||||
}
|
||||
|
||||
@ -919,7 +921,7 @@ Index: gdb-6.8.50.20081214/gdb/frame.c
|
||||
/* Allocate the new frame but do not wire it in to the frame chain.
|
||||
Some (bad) code in INIT_FRAME_EXTRA_INFO tries to look along
|
||||
frame->next to pull some fancy tricks (of course such code is, by
|
||||
@@ -1511,7 +1603,7 @@ get_prev_frame (struct frame_info *this_
|
||||
@@ -1484,7 +1576,7 @@ get_prev_frame (struct frame_info *this_
|
||||
the main function when we created the dummy frame, the dummy frame will
|
||||
point inside the main function. */
|
||||
if (this_frame->level >= 0
|
||||
@ -928,7 +930,7 @@ Index: gdb-6.8.50.20081214/gdb/frame.c
|
||||
&& !backtrace_past_main
|
||||
&& inside_main_func (this_frame))
|
||||
/* Don't unwind past main(). Note, this is done _before_ the
|
||||
@@ -1556,8 +1648,9 @@ get_prev_frame (struct frame_info *this_
|
||||
@@ -1529,8 +1621,9 @@ get_prev_frame (struct frame_info *this_
|
||||
from main returns directly to the caller of main. Since we don't
|
||||
stop at main, we should at least stop at the entry point of the
|
||||
application. */
|
||||
@ -940,7 +942,7 @@ Index: gdb-6.8.50.20081214/gdb/frame.c
|
||||
&& inside_entry_func (this_frame))
|
||||
{
|
||||
frame_debug_got_null_frame (this_frame, "inside entry func");
|
||||
@@ -1568,7 +1661,8 @@ get_prev_frame (struct frame_info *this_
|
||||
@@ -1541,7 +1634,8 @@ get_prev_frame (struct frame_info *this_
|
||||
like a SIGSEGV or a dummy frame, and hence that NORMAL frames
|
||||
will never unwind a zero PC. */
|
||||
if (this_frame->level > 0
|
||||
@ -950,7 +952,7 @@ Index: gdb-6.8.50.20081214/gdb/frame.c
|
||||
&& get_frame_type (get_next_frame (this_frame)) == NORMAL_FRAME
|
||||
&& get_frame_pc (this_frame) == 0)
|
||||
{
|
||||
@@ -1593,7 +1687,7 @@ CORE_ADDR
|
||||
@@ -1566,7 +1660,7 @@ CORE_ADDR
|
||||
get_frame_pc (struct frame_info *frame)
|
||||
{
|
||||
gdb_assert (frame->next != NULL);
|
||||
@ -959,7 +961,7 @@ Index: gdb-6.8.50.20081214/gdb/frame.c
|
||||
}
|
||||
|
||||
/* Return an address that falls within THIS_FRAME's code block. */
|
||||
@@ -1638,17 +1732,58 @@ get_frame_address_in_block (struct frame
|
||||
@@ -1611,17 +1705,58 @@ get_frame_address_in_block (struct frame
|
||||
We check the type of NEXT_FRAME first, since it is already
|
||||
known; frame type is determined by the unwinder, and since
|
||||
we have THIS_FRAME we've already selected an unwinder for
|
||||
@ -1022,7 +1024,7 @@ Index: gdb-6.8.50.20081214/gdb/frame.c
|
||||
/* If FRAME is not the innermost frame, that normally means that
|
||||
FRAME->pc points at the return instruction (which is *after* the
|
||||
call instruction), and we want to get the line containing the
|
||||
@@ -1658,15 +1793,8 @@ pc_notcurrent (struct frame_info *frame)
|
||||
@@ -1631,15 +1766,8 @@ pc_notcurrent (struct frame_info *frame)
|
||||
PC and such a PC indicates the current (rather than next)
|
||||
instruction/line, consequently, for such cases, want to get the
|
||||
line containing fi->pc. */
|
||||
@ -1040,19 +1042,10 @@ Index: gdb-6.8.50.20081214/gdb/frame.c
|
||||
}
|
||||
|
||||
/* Per "frame.h", return the ``address'' of the frame. Code should
|
||||
@@ -1747,7 +1875,7 @@ get_frame_type (struct frame_info *frame
|
||||
return frame->unwind->type;
|
||||
}
|
||||
|
||||
-void
|
||||
+static void
|
||||
deprecated_update_frame_pc_hack (struct frame_info *frame, CORE_ADDR pc)
|
||||
{
|
||||
if (frame_debug)
|
||||
Index: gdb-6.8.50.20081214/gdb/frame.h
|
||||
Index: gdb-6.8.50.20090209/gdb/frame.h
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081214.orig/gdb/frame.h 2008-12-14 15:30:03.000000000 +0100
|
||||
+++ gdb-6.8.50.20081214/gdb/frame.h 2008-12-14 15:31:03.000000000 +0100
|
||||
--- gdb-6.8.50.20090209.orig/gdb/frame.h 2009-02-05 18:28:20.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/frame.h 2009-02-09 16:06:00.000000000 +0100
|
||||
@@ -34,6 +34,9 @@
|
||||
frame_unwind_WHAT...(): Unwind THIS frame's WHAT from the NEXT
|
||||
frame.
|
||||
@ -1106,7 +1099,7 @@ Index: gdb-6.8.50.20081214/gdb/frame.h
|
||||
/* In a signal handler, various OSs handle this in various ways.
|
||||
The main thing is that the frame may be far from normal. */
|
||||
SIGTRAMP_FRAME,
|
||||
@@ -340,6 +358,7 @@ extern CORE_ADDR get_frame_base (struct
|
||||
@@ -345,6 +363,7 @@ extern CORE_ADDR get_frame_base (struct
|
||||
|
||||
instead, since that avoids the bug. */
|
||||
extern struct frame_id get_frame_id (struct frame_info *fi);
|
||||
@ -1114,25 +1107,10 @@ Index: gdb-6.8.50.20081214/gdb/frame.h
|
||||
extern struct frame_id frame_unwind_id (struct frame_info *next_frame);
|
||||
|
||||
/* Assuming that a frame is `normal', return its base-address, or 0 if
|
||||
@@ -660,14 +679,6 @@ extern struct frame_info *deprecated_saf
|
||||
|
||||
extern struct frame_info *create_new_frame (CORE_ADDR base, CORE_ADDR pc);
|
||||
|
||||
-/* FIXME: cagney/2002-12-06: Has the PC in the current frame changed?
|
||||
- "infrun.c", Thanks to gdbarch_decr_pc_after_break, can change the PC after
|
||||
- the initial frame create. This puts things back in sync.
|
||||
-
|
||||
- This replaced: frame->pc = ....; */
|
||||
-extern void deprecated_update_frame_pc_hack (struct frame_info *frame,
|
||||
- CORE_ADDR pc);
|
||||
-
|
||||
/* FIXME: cagney/2002-12-18: Has the frame's base changed? Or to be
|
||||
more exact, was that initial guess at the frame's base as returned
|
||||
by the deleted read_fp() wrong? If it was, fix it. This shouldn't
|
||||
Index: gdb-6.8.50.20081214/gdb/gdbthread.h
|
||||
Index: gdb-6.8.50.20090209/gdb/gdbthread.h
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081214.orig/gdb/gdbthread.h 2008-12-14 15:30:03.000000000 +0100
|
||||
+++ gdb-6.8.50.20081214/gdb/gdbthread.h 2008-12-14 15:31:03.000000000 +0100
|
||||
--- gdb-6.8.50.20090209.orig/gdb/gdbthread.h 2009-01-18 18:42:16.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/gdbthread.h 2009-02-09 16:06:00.000000000 +0100
|
||||
@@ -83,6 +83,13 @@ struct thread_info
|
||||
This is how we know when we step into a subroutine call, and how
|
||||
to set the frame for the breakpoint used to step out. */
|
||||
@ -1147,11 +1125,11 @@ Index: gdb-6.8.50.20081214/gdb/gdbthread.h
|
||||
int current_line;
|
||||
struct symtab *current_symtab;
|
||||
|
||||
Index: gdb-6.8.50.20081214/gdb/infcall.c
|
||||
Index: gdb-6.8.50.20090209/gdb/infcall.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081214.orig/gdb/infcall.c 2008-12-14 15:30:03.000000000 +0100
|
||||
+++ gdb-6.8.50.20081214/gdb/infcall.c 2008-12-14 15:31:03.000000000 +0100
|
||||
@@ -734,11 +734,8 @@ The program being debugged exited while
|
||||
--- gdb-6.8.50.20090209.orig/gdb/infcall.c 2009-01-19 20:05:00.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/infcall.c 2009-02-09 16:08:45.000000000 +0100
|
||||
@@ -841,15 +841,8 @@ When the function is done executing, GDB
|
||||
|
||||
if (unwind_on_signal_p)
|
||||
{
|
||||
@ -1159,16 +1137,20 @@ Index: gdb-6.8.50.20081214/gdb/infcall.c
|
||||
-
|
||||
- /* We must get back to the frame we were before the
|
||||
- dummy call. */
|
||||
- frame_pop (get_current_frame ());
|
||||
- dummy_frame_pop (dummy_id);
|
||||
-
|
||||
- /* We also need to restore inferior status to that before the
|
||||
- dummy call. */
|
||||
- restore_inferior_status (inf_status);
|
||||
+ /* The user wants the context restored. Calling error will
|
||||
+ run inf_status_cleanup, which does all the work. */
|
||||
|
||||
/* FIXME: Insert a bunch of wrap_here; name can be very
|
||||
long if it's a C++ name with arguments and stuff. */
|
||||
Index: gdb-6.8.50.20081214/gdb/infcmd.c
|
||||
Index: gdb-6.8.50.20090209/gdb/infcmd.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081214.orig/gdb/infcmd.c 2008-12-14 15:30:03.000000000 +0100
|
||||
+++ gdb-6.8.50.20081214/gdb/infcmd.c 2008-12-14 15:37:04.000000000 +0100
|
||||
--- gdb-6.8.50.20090209.orig/gdb/infcmd.c 2009-01-26 00:35:51.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/infcmd.c 2009-02-09 16:06:00.000000000 +0100
|
||||
@@ -52,6 +52,7 @@
|
||||
#include "cli/cli-decode.h"
|
||||
#include "gdbthread.h"
|
||||
@ -1177,7 +1159,7 @@ Index: gdb-6.8.50.20081214/gdb/infcmd.c
|
||||
|
||||
/* Functions exported for general use, in inferior.h: */
|
||||
|
||||
@@ -722,6 +723,17 @@ Can't resume all threads and specify pro
|
||||
@@ -739,6 +740,17 @@ Can't resume all threads and specify pro
|
||||
continue_1 (all_threads);
|
||||
}
|
||||
|
||||
@ -1195,7 +1177,7 @@ Index: gdb-6.8.50.20081214/gdb/infcmd.c
|
||||
/* Step until outside of current statement. */
|
||||
|
||||
static void
|
||||
@@ -899,6 +911,20 @@ step_once (int skip_subroutines, int sin
|
||||
@@ -916,6 +928,20 @@ step_once (int skip_subroutines, int sin
|
||||
THREAD is set. */
|
||||
struct thread_info *tp = inferior_thread ();
|
||||
clear_proceed_status ();
|
||||
@ -1216,7 +1198,7 @@ Index: gdb-6.8.50.20081214/gdb/infcmd.c
|
||||
|
||||
frame = get_current_frame ();
|
||||
tp->step_frame_id = get_frame_id (frame);
|
||||
@@ -1155,6 +1181,7 @@ until_next_command (int from_tty)
|
||||
@@ -1168,6 +1194,7 @@ until_next_command (int from_tty)
|
||||
clear_proceed_status ();
|
||||
|
||||
frame = get_current_frame ();
|
||||
@ -1224,7 +1206,7 @@ Index: gdb-6.8.50.20081214/gdb/infcmd.c
|
||||
|
||||
/* Step until either exited from this function or greater
|
||||
than the current line (if in symbolic section) or pc (if
|
||||
@@ -1182,7 +1209,6 @@ until_next_command (int from_tty)
|
||||
@@ -1195,7 +1222,6 @@ until_next_command (int from_tty)
|
||||
}
|
||||
|
||||
tp->step_over_calls = STEP_OVER_ALL;
|
||||
@ -1232,7 +1214,7 @@ Index: gdb-6.8.50.20081214/gdb/infcmd.c
|
||||
|
||||
tp->step_multi = 0; /* Only one call to proceed */
|
||||
|
||||
@@ -1515,6 +1541,37 @@ finish_command (char *arg, int from_tty)
|
||||
@@ -1528,6 +1554,37 @@ finish_command (char *arg, int from_tty)
|
||||
|
||||
clear_proceed_status ();
|
||||
|
||||
@ -1270,11 +1252,11 @@ Index: gdb-6.8.50.20081214/gdb/infcmd.c
|
||||
/* Find the function we will return from. */
|
||||
|
||||
function = find_pc_function (get_frame_pc (get_selected_frame (NULL)));
|
||||
Index: gdb-6.8.50.20081214/gdb/inferior.h
|
||||
Index: gdb-6.8.50.20090209/gdb/inferior.h
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081214.orig/gdb/inferior.h 2008-12-14 15:30:03.000000000 +0100
|
||||
+++ gdb-6.8.50.20081214/gdb/inferior.h 2008-12-14 15:31:03.000000000 +0100
|
||||
@@ -249,6 +249,9 @@ extern void error_is_running (void);
|
||||
--- gdb-6.8.50.20090209.orig/gdb/inferior.h 2009-02-09 15:39:01.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/inferior.h 2009-02-09 16:06:00.000000000 +0100
|
||||
@@ -259,6 +259,9 @@ extern void error_is_running (void);
|
||||
/* Calls error_is_running if the current thread is running. */
|
||||
extern void ensure_not_running (void);
|
||||
|
||||
@ -1284,19 +1266,19 @@ Index: gdb-6.8.50.20081214/gdb/inferior.h
|
||||
/* From infcmd.c */
|
||||
|
||||
extern void tty_command (char *, int);
|
||||
Index: gdb-6.8.50.20081214/gdb/infrun.c
|
||||
Index: gdb-6.8.50.20090209/gdb/infrun.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081214.orig/gdb/infrun.c 2008-12-14 15:30:03.000000000 +0100
|
||||
+++ gdb-6.8.50.20081214/gdb/infrun.c 2008-12-14 15:31:03.000000000 +0100
|
||||
@@ -45,6 +45,7 @@
|
||||
#include "language.h"
|
||||
#include "solib.h"
|
||||
#include "main.h"
|
||||
+#include "inline-frame.h"
|
||||
|
||||
--- gdb-6.8.50.20090209.orig/gdb/infrun.c 2009-02-09 16:02:31.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/infrun.c 2009-02-09 16:09:19.000000000 +0100
|
||||
@@ -48,6 +48,7 @@
|
||||
#include "gdb_assert.h"
|
||||
#include "mi/mi-common.h"
|
||||
@@ -206,7 +207,7 @@ static unsigned char *signal_program;
|
||||
#include "event-top.h"
|
||||
+#include "inline-frame.h"
|
||||
|
||||
/* Prototypes for local functions */
|
||||
|
||||
@@ -205,7 +206,7 @@ static unsigned char *signal_program;
|
||||
|
||||
/* Value to pass to target_resume() to cause all threads to resume */
|
||||
|
||||
@ -1305,7 +1287,7 @@ Index: gdb-6.8.50.20081214/gdb/infrun.c
|
||||
|
||||
/* Command list pointer for the "stop" placeholder. */
|
||||
|
||||
@@ -1147,6 +1148,8 @@ a command like `return' or `jump' to con
|
||||
@@ -1146,6 +1147,8 @@ a command like `return' or `jump' to con
|
||||
step = 0;
|
||||
}
|
||||
|
||||
@ -1314,7 +1296,7 @@ Index: gdb-6.8.50.20081214/gdb/infrun.c
|
||||
if (debug_displaced
|
||||
&& use_displaced_stepping (gdbarch)
|
||||
&& tp->trap_expected)
|
||||
@@ -1188,6 +1191,7 @@ clear_proceed_status_thread (struct thre
|
||||
@@ -1187,6 +1190,7 @@ clear_proceed_status_thread (struct thre
|
||||
tp->step_range_start = 0;
|
||||
tp->step_range_end = 0;
|
||||
tp->step_frame_id = null_frame_id;
|
||||
@ -1322,7 +1304,7 @@ Index: gdb-6.8.50.20081214/gdb/infrun.c
|
||||
tp->step_over_calls = STEP_OVER_UNDEBUGGABLE;
|
||||
tp->stop_requested = 0;
|
||||
|
||||
@@ -1532,6 +1536,9 @@ init_wait_for_inferior (void)
|
||||
@@ -1531,6 +1535,9 @@ init_wait_for_inferior (void)
|
||||
init_infwait_state ();
|
||||
|
||||
displaced_step_clear ();
|
||||
@ -1332,7 +1314,7 @@ Index: gdb-6.8.50.20081214/gdb/infrun.c
|
||||
}
|
||||
|
||||
|
||||
@@ -1587,7 +1594,7 @@ struct execution_control_state
|
||||
@@ -1586,7 +1593,7 @@ struct execution_control_state
|
||||
int wait_some_more;
|
||||
};
|
||||
|
||||
@ -1341,7 +1323,7 @@ Index: gdb-6.8.50.20081214/gdb/infrun.c
|
||||
|
||||
void handle_inferior_event (struct execution_control_state *ecs);
|
||||
|
||||
@@ -1903,10 +1910,21 @@ fetch_inferior_event (void *client_data)
|
||||
@@ -1944,10 +1951,21 @@ fetch_inferior_event (void *client_data)
|
||||
display_gdb_prompt (0);
|
||||
}
|
||||
|
||||
@ -1364,7 +1346,7 @@ Index: gdb-6.8.50.20081214/gdb/infrun.c
|
||||
init_execution_control_state (struct execution_control_state *ecs)
|
||||
{
|
||||
ecs->random_signal = 0;
|
||||
@@ -1917,16 +1935,10 @@ init_execution_control_state (struct exe
|
||||
@@ -1958,16 +1976,10 @@ init_execution_control_state (struct exe
|
||||
void
|
||||
init_thread_stepping_state (struct thread_info *tss)
|
||||
{
|
||||
@ -1381,7 +1363,7 @@ Index: gdb-6.8.50.20081214/gdb/infrun.c
|
||||
}
|
||||
|
||||
/* Return the cached copy of the last pid/waitstatus returned by
|
||||
@@ -2096,6 +2108,22 @@ ensure_not_running (void)
|
||||
@@ -2137,6 +2149,22 @@ ensure_not_running (void)
|
||||
error_is_running ();
|
||||
}
|
||||
|
||||
@ -1404,7 +1386,7 @@ Index: gdb-6.8.50.20081214/gdb/infrun.c
|
||||
/* Given an execution control state that has been freshly filled in
|
||||
by an event from the inferior, figure out what it means and take
|
||||
appropriate action. */
|
||||
@@ -2787,6 +2815,12 @@ targets should add new threads to the th
|
||||
@@ -2828,6 +2856,12 @@ targets should add new threads to the th
|
||||
ecs->random_signal = 0;
|
||||
stopped_by_random_signal = 0;
|
||||
|
||||
@ -1417,7 +1399,7 @@ Index: gdb-6.8.50.20081214/gdb/infrun.c
|
||||
if (ecs->event_thread->stop_signal == TARGET_SIGNAL_TRAP
|
||||
&& ecs->event_thread->trap_expected
|
||||
&& gdbarch_single_step_through_delay_p (current_gdbarch)
|
||||
@@ -3019,8 +3053,8 @@ process_event_stop_test:
|
||||
@@ -3060,8 +3094,8 @@ process_event_stop_test:
|
||||
&& ecs->event_thread->stop_signal != TARGET_SIGNAL_0
|
||||
&& (ecs->event_thread->step_range_start <= stop_pc
|
||||
&& stop_pc < ecs->event_thread->step_range_end)
|
||||
@ -1428,7 +1410,7 @@ Index: gdb-6.8.50.20081214/gdb/infrun.c
|
||||
&& ecs->event_thread->step_resume_breakpoint == NULL)
|
||||
{
|
||||
/* The inferior is about to take a signal that will take it
|
||||
@@ -3406,10 +3440,10 @@ infrun: BPSTAT_WHAT_SET_LONGJMP_RESUME (
|
||||
@@ -3447,10 +3481,10 @@ infrun: BPSTAT_WHAT_SET_LONGJMP_RESUME (
|
||||
NOTE: frame_id_eq will never report two invalid frame IDs as
|
||||
being equal, so to get into this block, both the current and
|
||||
previous frame must have valid frame IDs. */
|
||||
@ -1442,7 +1424,7 @@ Index: gdb-6.8.50.20081214/gdb/infrun.c
|
||||
|| execution_direction == EXEC_REVERSE))
|
||||
{
|
||||
CORE_ADDR real_stop_pc;
|
||||
@@ -3652,6 +3686,82 @@ infrun: BPSTAT_WHAT_SET_LONGJMP_RESUME (
|
||||
@@ -3693,6 +3727,82 @@ infrun: BPSTAT_WHAT_SET_LONGJMP_RESUME (
|
||||
return;
|
||||
}
|
||||
|
||||
@ -1525,7 +1507,7 @@ Index: gdb-6.8.50.20081214/gdb/infrun.c
|
||||
if ((stop_pc == stop_pc_sal.pc)
|
||||
&& (ecs->event_thread->current_line != stop_pc_sal.line
|
||||
|| ecs->event_thread->current_symtab != stop_pc_sal.symtab))
|
||||
@@ -3677,9 +3787,7 @@ infrun: BPSTAT_WHAT_SET_LONGJMP_RESUME (
|
||||
@@ -3718,9 +3828,7 @@ infrun: BPSTAT_WHAT_SET_LONGJMP_RESUME (
|
||||
|
||||
ecs->event_thread->step_range_start = stop_pc_sal.pc;
|
||||
ecs->event_thread->step_range_end = stop_pc_sal.end;
|
||||
@ -1536,25 +1518,7 @@ Index: gdb-6.8.50.20081214/gdb/infrun.c
|
||||
|
||||
if (debug_infrun)
|
||||
fprintf_unfiltered (gdb_stdlog, "infrun: keep going\n");
|
||||
@@ -4203,17 +4311,6 @@ normal_stop (void)
|
||||
previous_inferior_ptid = inferior_ptid;
|
||||
}
|
||||
|
||||
- /* NOTE drow/2004-01-17: Is this still necessary? */
|
||||
- /* Make sure that the current_frame's pc is correct. This
|
||||
- is a correction for setting up the frame info before doing
|
||||
- gdbarch_decr_pc_after_break */
|
||||
- if (target_has_execution)
|
||||
- /* FIXME: cagney/2002-12-06: Has the PC changed? Thanks to
|
||||
- gdbarch_decr_pc_after_break, the program counter can change. Ask the
|
||||
- frame code to check for this and sort out any resultant mess.
|
||||
- gdbarch_decr_pc_after_break needs to just go away. */
|
||||
- deprecated_update_frame_pc_hack (get_current_frame (), read_pc ());
|
||||
-
|
||||
if (!breakpoints_always_inserted_mode () && target_has_execution)
|
||||
{
|
||||
if (remove_breakpoints ())
|
||||
@@ -4790,6 +4887,7 @@ struct inferior_status
|
||||
@@ -4987,6 +5095,7 @@ struct inferior_status
|
||||
CORE_ADDR step_range_start;
|
||||
CORE_ADDR step_range_end;
|
||||
struct frame_id step_frame_id;
|
||||
@ -1562,7 +1526,7 @@ Index: gdb-6.8.50.20081214/gdb/infrun.c
|
||||
enum step_over_calls_kind step_over_calls;
|
||||
CORE_ADDR step_resume_break_address;
|
||||
int stop_after_trap;
|
||||
@@ -4828,6 +4926,7 @@ save_inferior_status (int restore_stack_
|
||||
@@ -5016,6 +5125,7 @@ save_inferior_status (void)
|
||||
inf_status->step_range_start = tp->step_range_start;
|
||||
inf_status->step_range_end = tp->step_range_end;
|
||||
inf_status->step_frame_id = tp->step_frame_id;
|
||||
@ -1570,7 +1534,7 @@ Index: gdb-6.8.50.20081214/gdb/infrun.c
|
||||
inf_status->step_over_calls = tp->step_over_calls;
|
||||
inf_status->stop_after_trap = stop_after_trap;
|
||||
inf_status->stop_soon = inf->stop_soon;
|
||||
@@ -4883,6 +4982,7 @@ restore_inferior_status (struct inferior
|
||||
@@ -5069,6 +5179,7 @@ restore_inferior_status (struct inferior
|
||||
tp->step_range_start = inf_status->step_range_start;
|
||||
tp->step_range_end = inf_status->step_range_end;
|
||||
tp->step_frame_id = inf_status->step_frame_id;
|
||||
@ -1578,10 +1542,10 @@ Index: gdb-6.8.50.20081214/gdb/infrun.c
|
||||
tp->step_over_calls = inf_status->step_over_calls;
|
||||
stop_after_trap = inf_status->stop_after_trap;
|
||||
inf->stop_soon = inf_status->stop_soon;
|
||||
Index: gdb-6.8.50.20081214/gdb/inline-frame.c
|
||||
Index: gdb-6.8.50.20090209/gdb/inline-frame.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-6.8.50.20081214/gdb/inline-frame.c 2008-12-14 15:31:03.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/inline-frame.c 2009-02-09 16:06:00.000000000 +0100
|
||||
@@ -0,0 +1,382 @@
|
||||
+/* Inline frame unwinder for GDB.
|
||||
+
|
||||
@ -1965,10 +1929,10 @@ Index: gdb-6.8.50.20081214/gdb/inline-frame.c
|
||||
+
|
||||
+ return inline_count;
|
||||
+}
|
||||
Index: gdb-6.8.50.20081214/gdb/inline-frame.h
|
||||
Index: gdb-6.8.50.20090209/gdb/inline-frame.h
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-6.8.50.20081214/gdb/inline-frame.h 2008-12-14 15:31:03.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/inline-frame.h 2009-02-09 16:06:00.000000000 +0100
|
||||
@@ -0,0 +1,62 @@
|
||||
+/* Definitions for inline frame support.
|
||||
+
|
||||
@ -2032,10 +1996,10 @@ Index: gdb-6.8.50.20081214/gdb/inline-frame.h
|
||||
+int frame_inlined_callees (struct frame_info *this_frame);
|
||||
+
|
||||
+#endif /* !defined (INLINE_FRAME_H) */
|
||||
Index: gdb-6.8.50.20081214/gdb/minsyms.c
|
||||
Index: gdb-6.8.50.20090209/gdb/minsyms.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081214.orig/gdb/minsyms.c 2008-12-14 15:30:03.000000000 +0100
|
||||
+++ gdb-6.8.50.20081214/gdb/minsyms.c 2008-12-14 15:31:03.000000000 +0100
|
||||
--- gdb-6.8.50.20090209.orig/gdb/minsyms.c 2009-02-09 16:02:28.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/minsyms.c 2009-02-09 16:06:00.000000000 +0100
|
||||
@@ -767,7 +767,7 @@ prim_record_minimal_symbol_and_info (con
|
||||
|
||||
if (msym_bunch_index == BUNCH_SIZE)
|
||||
@ -2045,10 +2009,10 @@ Index: gdb-6.8.50.20081214/gdb/minsyms.c
|
||||
msym_bunch_index = 0;
|
||||
new->next = msym_bunch;
|
||||
msym_bunch = new;
|
||||
Index: gdb-6.8.50.20081214/gdb/s390-tdep.c
|
||||
Index: gdb-6.8.50.20090209/gdb/s390-tdep.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081214.orig/gdb/s390-tdep.c 2008-12-14 15:30:03.000000000 +0100
|
||||
+++ gdb-6.8.50.20081214/gdb/s390-tdep.c 2008-12-14 15:31:03.000000000 +0100
|
||||
--- gdb-6.8.50.20090209.orig/gdb/s390-tdep.c 2009-01-03 06:57:53.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/s390-tdep.c 2009-02-09 16:06:00.000000000 +0100
|
||||
@@ -1182,6 +1182,7 @@ s390_prologue_frame_unwind_cache (struct
|
||||
CORE_ADDR prev_sp;
|
||||
int frame_pointer;
|
||||
@ -2082,10 +2046,10 @@ Index: gdb-6.8.50.20081214/gdb/s390-tdep.c
|
||||
|| get_frame_type (get_next_frame (this_frame)) != NORMAL_FRAME))
|
||||
{
|
||||
/* See the comment in s390_in_function_epilogue_p on why this is
|
||||
Index: gdb-6.8.50.20081214/gdb/stack.c
|
||||
Index: gdb-6.8.50.20090209/gdb/stack.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081214.orig/gdb/stack.c 2008-12-14 15:30:03.000000000 +0100
|
||||
+++ gdb-6.8.50.20081214/gdb/stack.c 2008-12-14 15:31:03.000000000 +0100
|
||||
--- gdb-6.8.50.20090209.orig/gdb/stack.c 2009-01-26 20:09:58.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/stack.c 2009-02-09 16:06:00.000000000 +0100
|
||||
@@ -45,6 +45,7 @@
|
||||
#include "valprint.h"
|
||||
#include "gdbthread.h"
|
||||
@ -2200,7 +2164,7 @@ Index: gdb-6.8.50.20081214/gdb/stack.c
|
||||
{
|
||||
printf_filtered (" called by frame at ");
|
||||
fputs_filtered (paddress (get_frame_base (calling_frame_info)),
|
||||
@@ -1453,7 +1493,9 @@ print_frame_local_vars (struct frame_inf
|
||||
@@ -1449,7 +1489,9 @@ print_frame_local_vars (struct frame_inf
|
||||
if (print_block_frame_locals (block, frame, num_tabs, stream))
|
||||
values_printed = 1;
|
||||
/* After handling the function's top-level block, stop. Don't
|
||||
@ -2211,7 +2175,7 @@ Index: gdb-6.8.50.20081214/gdb/stack.c
|
||||
if (BLOCK_FUNCTION (block))
|
||||
break;
|
||||
block = BLOCK_SUPERBLOCK (block);
|
||||
@@ -1524,7 +1566,9 @@ print_frame_label_vars (struct frame_inf
|
||||
@@ -1520,7 +1562,9 @@ print_frame_label_vars (struct frame_inf
|
||||
return;
|
||||
|
||||
/* After handling the function's top-level block, stop. Don't
|
||||
@ -2222,7 +2186,7 @@ Index: gdb-6.8.50.20081214/gdb/stack.c
|
||||
if (BLOCK_FUNCTION (block))
|
||||
break;
|
||||
block = BLOCK_SUPERBLOCK (block);
|
||||
@@ -1795,6 +1839,9 @@ return_command (char *retval_exp, int fr
|
||||
@@ -1790,6 +1834,9 @@ return_command (char *retval_exp, int fr
|
||||
thisframe = get_selected_frame ("No selected frame.");
|
||||
thisfun = get_frame_function (thisframe);
|
||||
|
||||
@ -2232,10 +2196,10 @@ Index: gdb-6.8.50.20081214/gdb/stack.c
|
||||
/* Compute the return value. If the computation triggers an error,
|
||||
let it bail. If the return type can't be handled, set
|
||||
RETURN_VALUE to NULL, and QUERY_PREFIX to an informational
|
||||
Index: gdb-6.8.50.20081214/gdb/symtab.c
|
||||
Index: gdb-6.8.50.20090209/gdb/symtab.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081214.orig/gdb/symtab.c 2008-12-14 15:30:03.000000000 +0100
|
||||
+++ gdb-6.8.50.20081214/gdb/symtab.c 2008-12-14 15:31:03.000000000 +0100
|
||||
--- gdb-6.8.50.20090209.orig/gdb/symtab.c 2009-02-09 16:02:29.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/symtab.c 2009-02-09 16:06:00.000000000 +0100
|
||||
@@ -1373,10 +1373,13 @@ lookup_symbol_aux_local (const char *nam
|
||||
sym = lookup_symbol_aux_block (name, linkage_name, block, domain);
|
||||
if (sym != NULL)
|
||||
@ -2407,7 +2371,7 @@ Index: gdb-6.8.50.20081214/gdb/symtab.c
|
||||
ALL_BLOCK_SYMBOLS (b, iter, sym)
|
||||
{
|
||||
COMPLETION_LIST_ADD_SYMBOL (sym, sym_text, sym_text_len, text, word);
|
||||
@@ -4305,6 +4345,25 @@ skip_prologue_using_sal (CORE_ADDR func_
|
||||
@@ -4315,6 +4355,25 @@ skip_prologue_using_sal (CORE_ADDR func_
|
||||
line mark the prologue -> body transition. */
|
||||
if (sal.line >= prologue_sal.line)
|
||||
break;
|
||||
@ -2433,10 +2397,10 @@ Index: gdb-6.8.50.20081214/gdb/symtab.c
|
||||
/* The case in which compiler's optimizer/scheduler has
|
||||
moved instructions into the prologue. We look ahead in
|
||||
the function looking for address ranges whose
|
||||
Index: gdb-6.8.50.20081214/gdb/symtab.h
|
||||
Index: gdb-6.8.50.20090209/gdb/symtab.h
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081214.orig/gdb/symtab.h 2008-12-14 15:30:03.000000000 +0100
|
||||
+++ gdb-6.8.50.20081214/gdb/symtab.h 2008-12-14 15:31:03.000000000 +0100
|
||||
--- gdb-6.8.50.20090209.orig/gdb/symtab.h 2009-02-06 22:33:58.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/symtab.h 2009-02-09 16:06:00.000000000 +0100
|
||||
@@ -556,9 +556,18 @@ struct symbol
|
||||
|
||||
unsigned is_argument : 1;
|
||||
@ -2467,10 +2431,10 @@ Index: gdb-6.8.50.20081214/gdb/symtab.h
|
||||
#define SYMBOL_TYPE(symbol) (symbol)->type
|
||||
#define SYMBOL_LINE(symbol) (symbol)->line
|
||||
#define SYMBOL_SYMTAB(symbol) (symbol)->symtab
|
||||
Index: gdb-6.8.50.20081214/gdb/testsuite/gdb.base/break.exp
|
||||
Index: gdb-6.8.50.20090209/gdb/testsuite/gdb.base/break.exp
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081214.orig/gdb/testsuite/gdb.base/break.exp 2008-12-14 15:30:03.000000000 +0100
|
||||
+++ gdb-6.8.50.20081214/gdb/testsuite/gdb.base/break.exp 2008-12-14 15:31:03.000000000 +0100
|
||||
--- gdb-6.8.50.20090209.orig/gdb/testsuite/gdb.base/break.exp 2009-01-19 20:05:01.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/testsuite/gdb.base/break.exp 2009-02-09 16:06:00.000000000 +0100
|
||||
@@ -880,6 +880,13 @@ gdb_expect {
|
||||
# marker4() is defined at line 46 when compiled with -DPROTOTYPES
|
||||
pass "run until breakpoint set at small function, optimized file (line bp_location14)"
|
||||
@ -2485,10 +2449,10 @@ Index: gdb-6.8.50.20081214/gdb/testsuite/gdb.base/break.exp
|
||||
-re ".*$gdb_prompt " {
|
||||
fail "run until breakpoint set at small function, optimized file"
|
||||
}
|
||||
Index: gdb-6.8.50.20081214/gdb/testsuite/gdb.cp/annota2.exp
|
||||
Index: gdb-6.8.50.20090209/gdb/testsuite/gdb.cp/annota2.exp
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081214.orig/gdb/testsuite/gdb.cp/annota2.exp 2008-12-14 15:30:03.000000000 +0100
|
||||
+++ gdb-6.8.50.20081214/gdb/testsuite/gdb.cp/annota2.exp 2008-12-14 15:31:03.000000000 +0100
|
||||
--- gdb-6.8.50.20090209.orig/gdb/testsuite/gdb.cp/annota2.exp 2009-01-03 06:58:04.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/testsuite/gdb.cp/annota2.exp 2009-02-09 16:06:00.000000000 +0100
|
||||
@@ -119,10 +119,11 @@ gdb_expect {
|
||||
# continue until exit
|
||||
# this will test:
|
||||
@ -2502,10 +2466,10 @@ Index: gdb-6.8.50.20081214/gdb/testsuite/gdb.cp/annota2.exp
|
||||
{ pass "continue until exit" }
|
||||
-re ".*$gdb_prompt$" { fail "continue to exit" }
|
||||
timeout { fail "continue to exit (timeout)" }
|
||||
Index: gdb-6.8.50.20081214/gdb/testsuite/gdb.opt/inline-bt.c
|
||||
Index: gdb-6.8.50.20090209/gdb/testsuite/gdb.opt/inline-bt.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-6.8.50.20081214/gdb/testsuite/gdb.opt/inline-bt.c 2008-12-14 15:31:03.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/testsuite/gdb.opt/inline-bt.c 2009-02-09 16:06:00.000000000 +0100
|
||||
@@ -0,0 +1,47 @@
|
||||
+/* Copyright (C) 2008 Free Software Foundation, Inc.
|
||||
+
|
||||
@ -2554,10 +2518,10 @@ Index: gdb-6.8.50.20081214/gdb/testsuite/gdb.opt/inline-bt.c
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
Index: gdb-6.8.50.20081214/gdb/testsuite/gdb.opt/inline-bt.exp
|
||||
Index: gdb-6.8.50.20090209/gdb/testsuite/gdb.opt/inline-bt.exp
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-6.8.50.20081214/gdb/testsuite/gdb.opt/inline-bt.exp 2008-12-14 15:31:03.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/testsuite/gdb.opt/inline-bt.exp 2009-02-09 16:06:00.000000000 +0100
|
||||
@@ -0,0 +1,63 @@
|
||||
+# Copyright 2008 Free Software Foundation, Inc.
|
||||
+
|
||||
@ -2622,10 +2586,10 @@ Index: gdb-6.8.50.20081214/gdb/testsuite/gdb.opt/inline-bt.exp
|
||||
+gdb_test "info frame" ".*inlined into frame.*" "func1 inlined (3)"
|
||||
+gdb_test "up" "#2 .*func2.*" "up from func1 (3)"
|
||||
+gdb_test "info frame" ".*inlined into frame.*" "func2 inlined (3)"
|
||||
Index: gdb-6.8.50.20081214/gdb/testsuite/gdb.opt/inline-cmds.c
|
||||
Index: gdb-6.8.50.20090209/gdb/testsuite/gdb.opt/inline-cmds.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-6.8.50.20081214/gdb/testsuite/gdb.opt/inline-cmds.c 2008-12-14 15:31:03.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/testsuite/gdb.opt/inline-cmds.c 2009-02-09 16:06:00.000000000 +0100
|
||||
@@ -0,0 +1,85 @@
|
||||
+/* Copyright (C) 2008 Free Software Foundation, Inc.
|
||||
+
|
||||
@ -2712,10 +2676,10 @@ Index: gdb-6.8.50.20081214/gdb/testsuite/gdb.opt/inline-cmds.c
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
Index: gdb-6.8.50.20081214/gdb/testsuite/gdb.opt/inline-cmds.exp
|
||||
Index: gdb-6.8.50.20090209/gdb/testsuite/gdb.opt/inline-cmds.exp
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-6.8.50.20081214/gdb/testsuite/gdb.opt/inline-cmds.exp 2008-12-14 15:31:03.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/testsuite/gdb.opt/inline-cmds.exp 2009-02-09 16:06:00.000000000 +0100
|
||||
@@ -0,0 +1,279 @@
|
||||
+# Copyright 2008 Free Software Foundation, Inc.
|
||||
+
|
||||
@ -2996,10 +2960,10 @@ Index: gdb-6.8.50.20081214/gdb/testsuite/gdb.opt/inline-cmds.exp
|
||||
+gdb_test "info frame" ".*inlined into frame.*" "outer_inline2 inlined"
|
||||
+gdb_test "up" "#4 main.*" "up from outer_inline2"
|
||||
+gdb_test "info frame" ".*\n caller of frame.*" "main not inlined"
|
||||
Index: gdb-6.8.50.20081214/gdb/testsuite/gdb.opt/inline-locals.c
|
||||
Index: gdb-6.8.50.20090209/gdb/testsuite/gdb.opt/inline-locals.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-6.8.50.20081214/gdb/testsuite/gdb.opt/inline-locals.c 2008-12-14 15:31:03.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/testsuite/gdb.opt/inline-locals.c 2009-02-09 16:06:00.000000000 +0100
|
||||
@@ -0,0 +1,52 @@
|
||||
+/* Copyright (C) 2008 Free Software Foundation, Inc.
|
||||
+
|
||||
@ -3053,10 +3017,10 @@ Index: gdb-6.8.50.20081214/gdb/testsuite/gdb.opt/inline-locals.c
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
Index: gdb-6.8.50.20081214/gdb/testsuite/gdb.opt/inline-locals.exp
|
||||
Index: gdb-6.8.50.20090209/gdb/testsuite/gdb.opt/inline-locals.exp
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-6.8.50.20081214/gdb/testsuite/gdb.opt/inline-locals.exp 2008-12-14 15:31:03.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/testsuite/gdb.opt/inline-locals.exp 2009-02-09 16:06:00.000000000 +0100
|
||||
@@ -0,0 +1,118 @@
|
||||
+# Copyright 2008 Free Software Foundation, Inc.
|
||||
+
|
||||
@ -3176,10 +3140,10 @@ Index: gdb-6.8.50.20081214/gdb/testsuite/gdb.opt/inline-locals.exp
|
||||
+}
|
||||
+
|
||||
+gdb_test "print array\[0\]" "\\\$$decimal = 184" "print local (3)"
|
||||
Index: gdb-6.8.50.20081214/gdb/testsuite/gdb.opt/inline-markers.c
|
||||
Index: gdb-6.8.50.20090209/gdb/testsuite/gdb.opt/inline-markers.c
|
||||
===================================================================
|
||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||
+++ gdb-6.8.50.20081214/gdb/testsuite/gdb.opt/inline-markers.c 2008-12-14 15:31:03.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/testsuite/gdb.opt/inline-markers.c 2009-02-09 16:06:00.000000000 +0100
|
||||
@@ -0,0 +1,36 @@
|
||||
+/* Copyright (C) 2008 Free Software Foundation, Inc.
|
||||
+
|
||||
@ -3217,10 +3181,10 @@ Index: gdb-6.8.50.20081214/gdb/testsuite/gdb.opt/inline-markers.c
|
||||
+{
|
||||
+ inlined_fn (); /* inlined */
|
||||
+}
|
||||
Index: gdb-6.8.50.20081214/gdb/testsuite/lib/gdb.exp
|
||||
Index: gdb-6.8.50.20090209/gdb/testsuite/lib/gdb.exp
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081214.orig/gdb/testsuite/lib/gdb.exp 2008-12-14 15:30:03.000000000 +0100
|
||||
+++ gdb-6.8.50.20081214/gdb/testsuite/lib/gdb.exp 2008-12-14 15:31:03.000000000 +0100
|
||||
--- gdb-6.8.50.20090209.orig/gdb/testsuite/lib/gdb.exp 2009-02-09 16:02:35.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/testsuite/lib/gdb.exp 2009-02-09 16:06:00.000000000 +0100
|
||||
@@ -1471,6 +1471,37 @@ proc skip_hp_tests {} {
|
||||
return $skip_hp
|
||||
}
|
||||
@ -3259,11 +3223,11 @@ Index: gdb-6.8.50.20081214/gdb/testsuite/lib/gdb.exp
|
||||
set compiler_info "unknown"
|
||||
set gcc_compiled 0
|
||||
set hp_cc_compiler 0
|
||||
Index: gdb-6.8.50.20081214/gdb/valops.c
|
||||
Index: gdb-6.8.50.20090209/gdb/valops.c
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081214.orig/gdb/valops.c 2008-12-14 15:30:03.000000000 +0100
|
||||
+++ gdb-6.8.50.20081214/gdb/valops.c 2008-12-14 15:31:03.000000000 +0100
|
||||
@@ -1051,7 +1051,7 @@ value_of_variable (struct symbol *var, s
|
||||
--- gdb-6.8.50.20090209.orig/gdb/valops.c 2009-02-09 15:40:36.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/valops.c 2009-02-09 16:06:00.000000000 +0100
|
||||
@@ -1074,7 +1074,7 @@ value_of_variable (struct symbol *var, s
|
||||
frame = block_innermost_frame (b);
|
||||
if (!frame)
|
||||
{
|
||||
@ -3272,11 +3236,11 @@ Index: gdb-6.8.50.20081214/gdb/valops.c
|
||||
&& SYMBOL_PRINT_NAME (BLOCK_FUNCTION (b)))
|
||||
error (_("No frame is currently executing in block %s."),
|
||||
SYMBOL_PRINT_NAME (BLOCK_FUNCTION (b)));
|
||||
Index: gdb-6.8.50.20081214/gdb/Makefile.in
|
||||
Index: gdb-6.8.50.20090209/gdb/Makefile.in
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081214.orig/gdb/Makefile.in 2008-12-14 15:30:03.000000000 +0100
|
||||
+++ gdb-6.8.50.20081214/gdb/Makefile.in 2008-12-14 15:31:03.000000000 +0100
|
||||
@@ -630,6 +630,7 @@ SFILES = ada-exp.y ada-lang.c ada-typepr
|
||||
--- gdb-6.8.50.20090209.orig/gdb/Makefile.in 2009-02-09 16:02:35.000000000 +0100
|
||||
+++ gdb-6.8.50.20090209/gdb/Makefile.in 2009-02-09 16:06:00.000000000 +0100
|
||||
@@ -634,6 +634,7 @@ SFILES = ada-exp.y ada-lang.c ada-typepr
|
||||
inf-loop.c \
|
||||
infcall.c \
|
||||
infcmd.c inflow.c infrun.c \
|
||||
@ -3284,7 +3248,7 @@ Index: gdb-6.8.50.20081214/gdb/Makefile.in
|
||||
interps.c \
|
||||
jv-exp.y jv-lang.c jv-valprint.c jv-typeprint.c \
|
||||
language.c linespec.c \
|
||||
@@ -800,6 +801,7 @@ COMMON_OBS = $(DEPFILES) $(CONFIG_OBS) $
|
||||
@@ -804,6 +805,7 @@ COMMON_OBS = $(DEPFILES) $(CONFIG_OBS) $
|
||||
user-regs.o \
|
||||
frame.o frame-unwind.o doublest.o \
|
||||
frame-base.o \
|
||||
@ -3292,10 +3256,10 @@ Index: gdb-6.8.50.20081214/gdb/Makefile.in
|
||||
gnu-v2-abi.o gnu-v3-abi.o cp-abi.o cp-support.o \
|
||||
cp-namespace.o \
|
||||
reggroups.o regset.o \
|
||||
Index: gdb-6.8.50.20081214/gdb/testsuite/gdb.opt/Makefile.in
|
||||
Index: gdb-6.8.50.20090209/gdb/testsuite/gdb.opt/Makefile.in
|
||||
===================================================================
|
||||
--- gdb-6.8.50.20081214.orig/gdb/testsuite/gdb.opt/Makefile.in 2008-12-14 15:30:03.000000000 +0100
|
||||
+++ gdb-6.8.50.20081214/gdb/testsuite/gdb.opt/Makefile.in 2008-12-14 15:31:03.000000000 +0100
|
||||
--- gdb-6.8.50.20090209.orig/gdb/testsuite/gdb.opt/Makefile.in 2008-04-18 01:06:54.000000000 +0200
|
||||
+++ gdb-6.8.50.20090209/gdb/testsuite/gdb.opt/Makefile.in 2009-02-09 16:06:00.000000000 +0100
|
||||
@@ -1,7 +1,7 @@
|
||||
VPATH = @srcdir@
|
||||
srcdir = @srcdir@
|
||||
|
@ -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