- 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.
|
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.20090209.orig/gdb/symfile-mem.c 2009-01-03 06:57:53.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081128/gdb/symfile-mem.c 2008-12-02 22:15:53.000000000 +0100
|
+++ gdb-6.8.50.20090209/gdb/symfile-mem.c 2009-02-09 15:49:25.000000000 +0100
|
||||||
@@ -56,6 +56,14 @@
|
@@ -56,6 +56,14 @@
|
||||||
#include "elf/common.h"
|
#include "elf/common.h"
|
||||||
|
|
||||||
@ -53,10 +53,10 @@ Index: gdb-6.8.50.20081128/gdb/symfile-mem.c
|
|||||||
if (nbfd == NULL)
|
if (nbfd == NULL)
|
||||||
error (_("Failed to read a valid object file image from memory."));
|
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.20090209.orig/gdb/target.c 2009-02-06 23:21:26.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081128/gdb/target.c 2008-12-02 22:17:28.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 *
|
@@ -57,7 +57,7 @@ static int nosymbol (char *, CORE_ADDR *
|
||||||
|
|
||||||
static void tcomplain (void) ATTR_NORETURN;
|
static void tcomplain (void) ATTR_NORETURN;
|
||||||
@ -66,7 +66,7 @@ Index: gdb-6.8.50.20081128/gdb/target.c
|
|||||||
|
|
||||||
static int return_zero (void);
|
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,
|
nomemory (CORE_ADDR memaddr, char *myaddr, int len, int write,
|
||||||
struct target_ops *t)
|
struct target_ops *t)
|
||||||
{
|
{
|
||||||
@@ -530,7 +530,7 @@ update_current_target (void)
|
@@ -522,7 +522,7 @@ update_current_target (void)
|
||||||
(void (*) (struct regcache *))
|
(void (*) (struct regcache *))
|
||||||
noprocess);
|
noprocess);
|
||||||
de_fault (deprecated_xfer_memory,
|
de_fault (deprecated_xfer_memory,
|
||||||
@ -84,7 +84,7 @@ Index: gdb-6.8.50.20081128/gdb/target.c
|
|||||||
nomemory);
|
nomemory);
|
||||||
de_fault (to_files_info,
|
de_fault (to_files_info,
|
||||||
(void (*) (struct target_ops *))
|
(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). */
|
it makes no progress, and then return how much was transferred). */
|
||||||
|
|
||||||
int
|
int
|
||||||
@ -93,7 +93,7 @@ Index: gdb-6.8.50.20081128/gdb/target.c
|
|||||||
{
|
{
|
||||||
if (target_read (¤t_target, TARGET_OBJECT_MEMORY, NULL,
|
if (target_read (¤t_target, TARGET_OBJECT_MEMORY, NULL,
|
||||||
myaddr, memaddr, len) == len)
|
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
|
int
|
||||||
@ -102,7 +102,7 @@ Index: gdb-6.8.50.20081128/gdb/target.c
|
|||||||
{
|
{
|
||||||
if (target_write (¤t_target, TARGET_OBJECT_MEMORY, NULL,
|
if (target_write (¤t_target, TARGET_OBJECT_MEMORY, NULL,
|
||||||
myaddr, memaddr, len) == len)
|
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");
|
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,
|
int write, struct mem_attrib *attrib,
|
||||||
struct target_ops *target)
|
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);
|
attrib, target);
|
||||||
|
|
||||||
fprintf_unfiltered (gdb_stdlog,
|
fprintf_unfiltered (gdb_stdlog,
|
||||||
- "target_xfer_memory (0x%x, xxx, %d, %s, xxx) = %d",
|
- "target_xfer_memory (%s, xxx, %d, %s, xxx) = %d",
|
||||||
+ "target_xfer_memory (0x%x, xxx, %ld, %s, xxx) = %d",
|
- paddress (memaddr), len, write ? "write" : "read",
|
||||||
(unsigned int) memaddr, /* possable truncate long long */
|
+ "target_xfer_memory (%s, xxx, %ld, %s, xxx) = %d",
|
||||||
- len, write ? "write" : "read", retval);
|
+ paddress (memaddr), (long) len, write ? "write" : "read",
|
||||||
+ (long)len, write ? "write" : "read", retval);
|
retval);
|
||||||
|
|
||||||
if (retval > 0)
|
if (retval > 0)
|
||||||
{
|
Index: gdb-6.8.50.20090209/gdb/target.h
|
||||||
Index: gdb-6.8.50.20081128/gdb/target.h
|
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-6.8.50.20081128.orig/gdb/target.h 2008-11-09 12:27:18.000000000 +0100
|
--- gdb-6.8.50.20090209.orig/gdb/target.h 2009-02-06 23:59:01.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081128/gdb/target.h 2008-12-02 22:15:53.000000000 +0100
|
+++ gdb-6.8.50.20090209/gdb/target.h 2009-02-09 15:49:25.000000000 +0100
|
||||||
@@ -358,10 +358,10 @@ struct target_ops
|
@@ -360,10 +360,10 @@ struct target_ops
|
||||||
NOTE: cagney/2004-10-01: This has been entirely superseeded by
|
NOTE: cagney/2004-10-01: This has been entirely superseeded by
|
||||||
to_xfer_partial and inferior inheritance. */
|
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 *);
|
void (*to_files_info) (struct target_ops *);
|
||||||
int (*to_insert_breakpoint) (struct bp_target_info *);
|
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 *);
|
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
|
/* Fetches the target's memory map. If one is found it is sorted
|
||||||
and returned, after some consistency checking. Otherwise, NULL
|
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.20090209.orig/gdb/dcache.c 2009-01-03 06:57:51.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081128/gdb/dcache.c 2008-12-02 22:15:53.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)
|
@@ -524,9 +524,9 @@ dcache_free (DCACHE *dcache)
|
||||||
|
|
||||||
This routine is indended to be called by remote_xfer_ functions. */
|
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 i;
|
||||||
int (*xfunc) (DCACHE *dcache, CORE_ADDR addr, gdb_byte *ptr);
|
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.20090209.orig/gdb/dcache.h 2009-01-03 06:57:51.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081128/gdb/dcache.h 2008-12-02 22:15:53.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 *);
|
@@ -35,7 +35,7 @@ void dcache_free (DCACHE *);
|
||||||
|
|
||||||
/* Simple to call from <remote>_xfer_memory */
|
/* 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);
|
+ LONGEST len, int should_write);
|
||||||
|
|
||||||
#endif /* DCACHE_H */
|
#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.20090209.orig/gdb/exec.c 2009-01-08 17:32:29.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081128/gdb/exec.c 2008-12-02 22:15:53.000000000 +0100
|
+++ gdb-6.8.50.20090209/gdb/exec.c 2009-02-09 15:49:25.000000000 +0100
|
||||||
@@ -459,8 +459,8 @@ map_vmap (bfd *abfd, bfd *arch)
|
@@ -466,8 +466,8 @@ map_vmap (bfd *abfd, bfd *arch)
|
||||||
The same routine is used to handle both core and exec files;
|
The same routine is used to handle both core and exec files;
|
||||||
we just tail-call it with more arguments to select between them. */
|
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)
|
struct mem_attrib *attrib, struct target_ops *target)
|
||||||
{
|
{
|
||||||
int res;
|
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.20090209.orig/gdb/linux-nat.c 2009-02-09 15:48:46.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081128/gdb/linux-nat.c 2008-12-02 22:15:53.000000000 +0100
|
+++ gdb-6.8.50.20090209/gdb/linux-nat.c 2009-02-09 15:49:25.000000000 +0100
|
||||||
@@ -4053,7 +4053,7 @@ linux_xfer_partial (struct target_ops *o
|
@@ -4283,7 +4283,7 @@ linux_xfer_partial (struct target_ops *o
|
||||||
Revert when Bugzilla 147436 is fixed. */
|
Revert when Bugzilla 147436 is fixed. */
|
||||||
if (iterate_over_lwps (ia64_linux_check_stack_region, &range) != NULL)
|
if (iterate_over_lwps (ia64_linux_check_stack_region, &range) != NULL)
|
||||||
{ /* This region contains ia64 rse registers, we have to re-read. */
|
{ /* 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. */
|
/* Re-read register stack area. */
|
||||||
xxfer = super_xfer_partial (ops, object, annex,
|
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.20090209.orig/gdb/remote.c 2009-02-06 23:59:00.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081128/gdb/remote.c 2008-12-02 22:17:00.000000000 +0100
|
+++ gdb-6.8.50.20090209/gdb/remote.c 2009-02-09 15:49:25.000000000 +0100
|
||||||
@@ -25,6 +25,7 @@
|
@@ -25,6 +25,7 @@
|
||||||
#include "gdb_string.h"
|
#include "gdb_string.h"
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
@ -233,7 +232,7 @@ Index: gdb-6.8.50.20081128/gdb/remote.c
|
|||||||
#include "inferior.h"
|
#include "inferior.h"
|
||||||
#include "bfd.h"
|
#include "bfd.h"
|
||||||
#include "symfile.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
|
if SHOULD_WRITE is nonzero. Returns length of data written or
|
||||||
read; 0 for error. TARGET is unused. */
|
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);
|
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
|
else
|
||||||
res = remote_read_bytes (mem_addr, buffer, mem_len);
|
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
|
/* 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.20090209.orig/gdb/remote-sim.c 2009-02-06 23:21:26.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081128/gdb/remote-sim.c 2008-12-02 22:15:53.000000000 +0100
|
+++ gdb-6.8.50.20090209/gdb/remote-sim.c 2009-02-09 15:49:25.000000000 +0100
|
||||||
@@ -763,11 +763,14 @@ gdbsim_prepare_to_store (struct regcache
|
@@ -757,11 +757,14 @@ gdbsim_prepare_to_store (struct regcache
|
||||||
|
|
||||||
Returns the number of bytes transferred. */
|
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
|
/* If no program is running yet, then ignore the simulator for
|
||||||
memory. Pass the request down to the next target, hopefully
|
memory. Pass the request down to the next target, hopefully
|
||||||
an exec file. */
|
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");
|
printf_filtered ("gdbsim_xfer_inferior_memory: myaddr 0x");
|
||||||
gdb_print_host_address (myaddr, gdb_stdout);
|
gdb_print_host_address (myaddr, gdb_stdout);
|
||||||
printf_filtered (", memaddr 0x%s, len %d, write %d\n",
|
printf_filtered (", memaddr 0x%s, len %d, write %d\n",
|
||||||
|
@ -26,11 +26,11 @@
|
|||||||
|
|
||||||
Fix scan_dyntag() for binaries provided by valgrind (BZ 460319).
|
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.20090209.orig/gdb/amd64-tdep.c 2009-02-09 16:02:28.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081209/gdb/amd64-tdep.c 2008-12-14 14:56:49.000000000 +0100
|
+++ gdb-6.8.50.20090209/gdb/amd64-tdep.c 2009-02-09 16:21:55.000000000 +0100
|
||||||
@@ -34,6 +34,7 @@
|
@@ -36,6 +36,7 @@
|
||||||
#include "regcache.h"
|
#include "regcache.h"
|
||||||
#include "regset.h"
|
#include "regset.h"
|
||||||
#include "symfile.h"
|
#include "symfile.h"
|
||||||
@ -38,7 +38,7 @@ Index: gdb-6.8.50.20081209/gdb/amd64-tdep.c
|
|||||||
|
|
||||||
#include "gdb_assert.h"
|
#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
|
Any function that doesn't start with this sequence will be assumed
|
||||||
to have no prologue and thus no valid frame pointer in %rbp. */
|
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);
|
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 that's all, return now. */
|
||||||
if (current_pc <= pc + 1)
|
if (current_pc <= pc + 1)
|
||||||
@ -132,11 +132,11 @@ Index: gdb-6.8.50.20081209/gdb/amd64-tdep.c
|
|||||||
return pc;
|
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.20090209.orig/gdb/auxv.c 2009-01-03 06:57:50.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081209/gdb/auxv.c 2008-12-14 14:57:58.000000000 +0100
|
+++ gdb-6.8.50.20090209/gdb/auxv.c 2009-02-09 16:21:55.000000000 +0100
|
||||||
@@ -80,7 +80,7 @@ procfs_xfer_auxv (struct target_ops *ops
|
@@ -81,7 +81,7 @@ procfs_xfer_auxv (struct target_ops *ops
|
||||||
Return 1 if an entry was read into *TYPEP and *VALP. */
|
Return 1 if an entry was read into *TYPEP and *VALP. */
|
||||||
int
|
int
|
||||||
default_auxv_parse (struct target_ops *ops, gdb_byte **readptr,
|
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)
|
const int sizeof_auxv_field = gdbarch_ptr_bit (target_gdbarch)
|
||||||
/ TARGET_CHAR_BIT;
|
/ 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. */
|
Return 1 if an entry was read into *TYPEP and *VALP. */
|
||||||
int
|
int
|
||||||
target_auxv_parse (struct target_ops *ops, gdb_byte **readptr,
|
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;
|
struct target_ops *t;
|
||||||
for (t = ops; t != NULL; t = t->beneath)
|
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
|
an error getting the information. On success, return 1 after
|
||||||
storing the entry's value field in *VALP. */
|
storing the entry's value field in *VALP. */
|
||||||
int
|
int
|
||||||
@ -167,7 +167,7 @@ Index: gdb-6.8.50.20081209/gdb/auxv.c
|
|||||||
gdb_byte *data;
|
gdb_byte *data;
|
||||||
LONGEST n = target_read_alloc (ops, TARGET_OBJECT_AUXV, NULL, &data);
|
LONGEST n = target_read_alloc (ops, TARGET_OBJECT_AUXV, NULL, &data);
|
||||||
gdb_byte *ptr = 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;
|
return n;
|
||||||
|
|
||||||
while (1)
|
while (1)
|
||||||
@ -180,7 +180,7 @@ Index: gdb-6.8.50.20081209/gdb/auxv.c
|
|||||||
{
|
{
|
||||||
xfree (data);
|
xfree (data);
|
||||||
*valp = val;
|
*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
|
int
|
||||||
fprint_target_auxv (struct ui_file *file, struct target_ops *ops)
|
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;
|
gdb_byte *data;
|
||||||
LONGEST len = target_read_alloc (ops, TARGET_OBJECT_AUXV, NULL,
|
LONGEST len = target_read_alloc (ops, TARGET_OBJECT_AUXV, NULL,
|
||||||
&data);
|
&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)
|
if (len <= 0)
|
||||||
return len;
|
return len;
|
||||||
|
|
||||||
@ -206,7 +206,7 @@ Index: gdb-6.8.50.20081209/gdb/auxv.c
|
|||||||
{
|
{
|
||||||
#define TAG(tag, text, kind) \
|
#define TAG(tag, text, kind) \
|
||||||
case tag: name = #tag; description = text; flavor = kind; break
|
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 ",
|
fprintf_filtered (file, "%-4s %-20s %-30s ",
|
||||||
@ -215,7 +215,7 @@ Index: gdb-6.8.50.20081209/gdb/auxv.c
|
|||||||
switch (flavor)
|
switch (flavor)
|
||||||
{
|
{
|
||||||
case dec:
|
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;
|
break;
|
||||||
}
|
}
|
||||||
++ents;
|
++ents;
|
||||||
@ -224,11 +224,11 @@ Index: gdb-6.8.50.20081209/gdb/auxv.c
|
|||||||
break;
|
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.20090209.orig/gdb/auxv.h 2009-01-03 06:57:50.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081209/gdb/auxv.h 2008-12-14 14:56:49.000000000 +0100
|
+++ gdb-6.8.50.20090209/gdb/auxv.h 2009-02-09 16:21:55.000000000 +0100
|
||||||
@@ -35,14 +35,14 @@ struct target_ops; /* Forward declarati
|
@@ -36,14 +36,14 @@ struct target_ops; /* Forward declarati
|
||||||
Return 1 if an entry was read into *TYPEP and *VALP. */
|
Return 1 if an entry was read into *TYPEP and *VALP. */
|
||||||
extern int target_auxv_parse (struct target_ops *ops,
|
extern int target_auxv_parse (struct target_ops *ops,
|
||||||
gdb_byte **readptr, gdb_byte *endptr,
|
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. */
|
/* 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);
|
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.20090209.orig/gdb/breakpoint.c 2009-02-09 16:12:23.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081209/gdb/breakpoint.c 2008-12-14 14:56:49.000000000 +0100
|
+++ gdb-6.8.50.20090209/gdb/breakpoint.c 2009-02-09 16:21:55.000000000 +0100
|
||||||
@@ -3861,7 +3861,8 @@ describe_other_breakpoints (CORE_ADDR pc
|
@@ -3894,7 +3894,8 @@ describe_other_breakpoints (CORE_ADDR pc
|
||||||
printf_filtered (" (thread %d)", b->thread);
|
printf_filtered (" (thread %d)", b->thread);
|
||||||
printf_filtered ("%s%s ",
|
printf_filtered ("%s%s ",
|
||||||
((b->enable_state == bp_disabled ||
|
((b->enable_state == bp_disabled ||
|
||||||
@ -259,7 +259,7 @@ Index: gdb-6.8.50.20081209/gdb/breakpoint.c
|
|||||||
? " (disabled)"
|
? " (disabled)"
|
||||||
: b->enable_state == bp_permanent
|
: b->enable_state == bp_permanent
|
||||||
? " (permanent)"
|
? " (permanent)"
|
||||||
@@ -4692,6 +4693,61 @@ create_catchpoint (int tempflag, char *c
|
@@ -4725,6 +4726,61 @@ create_catchpoint (int tempflag, char *c
|
||||||
return b;
|
return b;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -321,10 +321,10 @@ Index: gdb-6.8.50.20081209/gdb/breakpoint.c
|
|||||||
static void
|
static void
|
||||||
create_fork_vfork_event_catchpoint (int tempflag, char *cond_string,
|
create_fork_vfork_event_catchpoint (int tempflag, char *cond_string,
|
||||||
struct breakpoint_ops *ops)
|
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.20090209.orig/gdb/breakpoint.h 2009-01-30 19:28:00.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081209/gdb/breakpoint.h 2008-12-14 14:56:49.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
|
@@ -126,6 +126,7 @@ enum enable_state
|
||||||
automatically enabled and reset when the call
|
automatically enabled and reset when the call
|
||||||
"lands" (either completes, or stops at another
|
"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
|
bp_permanent /* There is a breakpoint instruction hard-wired into
|
||||||
the target's code. Don't try to write another
|
the target's code. Don't try to write another
|
||||||
breakpoint instruction on top of it, or restore
|
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);
|
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. */
|
/* This function returns TRUE if ep is a catchpoint. */
|
||||||
extern int ep_is_catchpoint (struct breakpoint *);
|
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.20090209.orig/gdb/dwarf2read.c 2009-02-09 16:12:23.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081209/gdb/dwarf2read.c 2008-12-14 14:56:49.000000000 +0100
|
+++ gdb-6.8.50.20090209/gdb/dwarf2read.c 2009-02-09 16:21:55.000000000 +0100
|
||||||
@@ -1295,7 +1295,7 @@ dwarf2_build_psymtabs (struct objfile *o
|
@@ -1296,7 +1296,7 @@ dwarf2_build_psymtabs (struct objfile *o
|
||||||
else
|
else
|
||||||
dwarf2_per_objfile->loc_buffer = NULL;
|
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->global_psymbols.size == 0
|
||||||
&& objfile->static_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.20090209.orig/gdb/elfread.c 2009-01-03 06:57:51.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081209/gdb/elfread.c 2008-12-14 14:56:49.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
|
@@ -680,7 +680,7 @@ elf_symfile_read (struct objfile *objfil
|
||||||
/* If we are reinitializing, or if we have never loaded syms yet,
|
/* If we are reinitializing, or if we have never loaded syms yet,
|
||||||
set table to empty. MAINLINE is cleared so that *_read_psymtab
|
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);
|
init_psymbol_list (objfile, 0);
|
||||||
mainline = 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.20090209.orig/gdb/infrun.c 2009-02-09 16:12:23.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081209/gdb/infrun.c 2008-12-14 14:56:49.000000000 +0100
|
+++ gdb-6.8.50.20090209/gdb/infrun.c 2009-02-09 16:21:55.000000000 +0100
|
||||||
@@ -3229,6 +3229,11 @@ infrun: BPSTAT_WHAT_SET_LONGJMP_RESUME (
|
@@ -3278,6 +3278,11 @@ infrun: BPSTAT_WHAT_SET_LONGJMP_RESUME (
|
||||||
#endif
|
#endif
|
||||||
target_terminal_inferior ();
|
target_terminal_inferior ();
|
||||||
|
|
||||||
@ -386,10 +386,10 @@ Index: gdb-6.8.50.20081209/gdb/infrun.c
|
|||||||
/* If requested, stop when the dynamic linker notifies
|
/* If requested, stop when the dynamic linker notifies
|
||||||
gdb of events. This allows the user to get control
|
gdb of events. This allows the user to get control
|
||||||
and place breakpoints in initializer routines for
|
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.20090209.orig/gdb/objfiles.c 2009-01-15 17:35:22.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081209/gdb/objfiles.c 2008-12-14 14:56:49.000000000 +0100
|
+++ gdb-6.8.50.20090209/gdb/objfiles.c 2009-02-09 16:21:55.000000000 +0100
|
||||||
@@ -51,6 +51,9 @@
|
@@ -51,6 +51,9 @@
|
||||||
#include "arch-utils.h"
|
#include "arch-utils.h"
|
||||||
#include "exec.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.
|
/* 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.20090209.orig/gdb/solib-svr4.c 2009-02-09 16:02:35.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081209/gdb/solib-svr4.c 2008-12-14 14:56:49.000000000 +0100
|
+++ gdb-6.8.50.20090209/gdb/solib-svr4.c 2009-02-09 16:21:55.000000000 +0100
|
||||||
@@ -44,6 +44,7 @@
|
@@ -45,6 +45,7 @@
|
||||||
#include "exec.h"
|
#include "exec.h"
|
||||||
#include "auxv.h"
|
#include "auxv.h"
|
||||||
#include "exceptions.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 struct link_map_offsets *svr4_fetch_link_map_offsets (void);
|
||||||
static int svr4_have_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 */
|
/* 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 *);
|
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;
|
int arch_size, step, sect_size;
|
||||||
long dyn_tag;
|
long dyn_tag;
|
||||||
CORE_ADDR dyn_ptr, dyn_addr;
|
CORE_ADDR dyn_ptr, dyn_addr;
|
||||||
@ -456,7 +466,7 @@ Index: gdb-6.8.50.20081209/gdb/solib-svr4.c
|
|||||||
|
|
||||||
if (abfd == NULL)
|
if (abfd == NULL)
|
||||||
return 0;
|
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)
|
if (arch_size == -1)
|
||||||
return 0;
|
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. */
|
/* Iterate over BUF and scan for DYNTAG. If found, set PTR and return. */
|
||||||
step = (arch_size == 32) ? sizeof (Elf32_External_Dyn)
|
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_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);
|
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;
|
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 link_map_offsets *lmo = svr4_fetch_link_map_offsets ();
|
||||||
struct type *ptr_type = builtin_type (target_gdbarch)->builtin_data_ptr;
|
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);
|
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 *head = 0;
|
||||||
struct so_list **link_ptr = &head;
|
struct so_list **link_ptr = &head;
|
||||||
CORE_ADDR ldsomap = 0;
|
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. */
|
/* Always locate the debug struct, in case it has moved. */
|
||||||
debug_base = 0;
|
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
|
/* If we can't find the dynamic linker's base structure, this
|
||||||
must not be a dynamically linked executable. Hmm. */
|
must not be a dynamically linked executable. Hmm. */
|
||||||
if (! debug_base)
|
if (! debug_base)
|
||||||
@ -709,7 +719,7 @@ Index: gdb-6.8.50.20081209/gdb/solib-svr4.c
|
|||||||
lm = solib_svr4_r_map ();
|
lm = solib_svr4_r_map ();
|
||||||
|
|
||||||
while (lm)
|
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);
|
new->lm_info->lm = xzalloc (lmo->link_map_size);
|
||||||
make_cleanup (xfree, new->lm_info->lm);
|
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,
|
target_read_string (LM_NAME (new), &buffer,
|
||||||
SO_NAME_MAX_PATH_SIZE - 1, &errcode);
|
SO_NAME_MAX_PATH_SIZE - 1, &errcode);
|
||||||
if (errcode != 0)
|
if (errcode != 0)
|
||||||
@@ -999,47 +1241,60 @@ svr4_current_sos (void)
|
@@ -1000,47 +1242,60 @@ svr4_current_sos (void)
|
||||||
safe_strerror (errcode));
|
safe_strerror (errcode));
|
||||||
else
|
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
|
/* 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)
|
if (head == NULL)
|
||||||
return svr4_default_sos ();
|
return svr4_default_sos ();
|
||||||
|
|
||||||
@ -922,7 +932,7 @@ Index: gdb-6.8.50.20081209/gdb/solib-svr4.c
|
|||||||
return head;
|
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
|
/* On some systems, the only way to recognize the link map entry for
|
||||||
the main executable file is by looking at its name. Return
|
the main executable file is by looking at its name. Return
|
||||||
non-zero iff SONAME matches one of the known main executable names. */
|
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
|
static int
|
||||||
match_main (char *soname)
|
match_main (char *soname)
|
||||||
{
|
{
|
||||||
@@ -1100,6 +1358,7 @@ match_main (char *soname)
|
@@ -1101,6 +1359,7 @@ match_main (char *soname)
|
||||||
|
|
||||||
return (0);
|
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
|
/* Return 1 if PC lies in the dynamic symbol resolution code of the
|
||||||
SVR4 run time loader. */
|
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
|
/* Find the program interpreter; if not found, warn the user and drop
|
||||||
into the old breakpoint at symbol code. */
|
into the old breakpoint at symbol code. */
|
||||||
interp_name = find_program_interpreter ();
|
interp_name = find_program_interpreter ();
|
||||||
@ -969,7 +979,7 @@ Index: gdb-6.8.50.20081209/gdb/solib-svr4.c
|
|||||||
|
|
||||||
sym_addr = 0;
|
sym_addr = 0;
|
||||||
|
|
||||||
@@ -1275,6 +1548,9 @@ enable_break (void)
|
@@ -1276,6 +1549,9 @@ enable_break (void)
|
||||||
{
|
{
|
||||||
tmp_bfd = solib_bfd_open (interp_name);
|
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)
|
if (tmp_bfd == NULL)
|
||||||
goto bkpt_at_symbol;
|
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");
|
interp_sect = bfd_get_section_by_name (tmp_bfd, ".text");
|
||||||
if (interp_sect)
|
if (interp_sect)
|
||||||
{
|
{
|
||||||
@ -1000,7 +1010,7 @@ Index: gdb-6.8.50.20081209/gdb/solib-svr4.c
|
|||||||
interp_plt_sect_high =
|
interp_plt_sect_high =
|
||||||
interp_plt_sect_low + bfd_section_size (tmp_bfd, interp_sect);
|
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)
|
if (sym_addr != 0)
|
||||||
{
|
{
|
||||||
@ -1013,7 +1023,7 @@ Index: gdb-6.8.50.20081209/gdb/solib-svr4.c
|
|||||||
xfree (interp_name);
|
xfree (interp_name);
|
||||||
return 1;
|
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);
|
while (tp->stop_signal != TARGET_SIGNAL_TRAP);
|
||||||
inf->stop_soon = NO_STOP_QUIETLY;
|
inf->stop_soon = NO_STOP_QUIETLY;
|
||||||
#endif /* defined(_SCO_DS) */
|
#endif /* defined(_SCO_DS) */
|
||||||
@ -1022,7 +1032,7 @@ Index: gdb-6.8.50.20081209/gdb/solib-svr4.c
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
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;
|
return lmp;
|
||||||
}
|
}
|
||||||
@ -1098,7 +1108,7 @@ Index: gdb-6.8.50.20081209/gdb/solib-svr4.c
|
|||||||
|
|
||||||
|
|
||||||
struct target_so_ops svr4_so_ops;
|
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.in_dynsym_resolve_code = svr4_in_dynsym_resolve_code;
|
||||||
svr4_so_ops.lookup_lib_global_symbol = elf_lookup_lib_symbol;
|
svr4_so_ops.lookup_lib_global_symbol = elf_lookup_lib_symbol;
|
||||||
svr4_so_ops.same = svr4_same;
|
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,
|
+ add_info ("linkmap", info_linkmap_command,
|
||||||
+ "Display the inferior's linkmap.");
|
+ "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.20090209.orig/gdb/solib.c 2009-01-15 17:35:22.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081209/gdb/solib.c 2008-12-14 14:56:49.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,
|
@@ -80,6 +80,8 @@ set_solib_ops (struct gdbarch *gdbarch,
|
||||||
|
|
||||||
/* external data declarations */
|
/* external data declarations */
|
||||||
@ -1128,23 +1138,35 @@ Index: gdb-6.8.50.20081209/gdb/solib.c
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
GLOBAL FUNCTION
|
GLOBAL FUNCTION
|
||||||
@@ -405,7 +409,6 @@ free_so (struct so_list *so)
|
@@ -425,10 +429,23 @@ free_so (struct so_list *so)
|
||||||
xfree (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 ()));
|
||||||
|
+ }
|
||||||
}
|
}
|
||||||
|
|
||||||
-
|
if (bfd_filename)
|
||||||
/* Return address of first so_list entry in master shared object list. */
|
@@ -459,15 +461,40 @@ symbol_add_stub (void *arg)
|
||||||
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)
|
|
||||||
/* Have we already loaded this shared object? */
|
/* Have we already loaded this shared object? */
|
||||||
ALL_OBJFILES (so->objfile)
|
ALL_OBJFILES (so->objfile)
|
||||||
{
|
{
|
||||||
@ -1152,7 +1174,7 @@ Index: gdb-6.8.50.20081209/gdb/solib.c
|
|||||||
+ /* Found an already loaded shared library. */
|
+ /* Found an already loaded shared library. */
|
||||||
+ if (strcmp (so->objfile->name, so->so_name) == 0
|
+ if (strcmp (so->objfile->name, so->so_name) == 0
|
||||||
+ && !so->main)
|
+ && !so->main)
|
||||||
return 1;
|
+ return 1;
|
||||||
+ /* Found an already loaded main executable. This could happen in
|
+ /* Found an already loaded main executable. This could happen in
|
||||||
+ two circumstances.
|
+ two circumstances.
|
||||||
+ First case: the main file has already been read in
|
+ 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
|
+ if (strcmp (so->objfile->name, so->so_name) == 0
|
||||||
+ && so->main
|
+ && so->main
|
||||||
+ && so->main_relocated)
|
+ && so->main_relocated)
|
||||||
+ return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
sap = build_section_addr_info_from_section_table (so->sections,
|
sap = build_section_addr_info_from_section_table (so->sections,
|
||||||
so->sections_end);
|
so->sections_end);
|
||||||
|
|
||||||
- so->objfile = symbol_file_add (so->so_name, so->from_tty,
|
- so->objfile = symbol_file_add_from_bfd (so->abfd, so->from_tty,
|
||||||
- sap, 0, OBJF_SHARED);
|
- sap, 0, OBJF_SHARED | OBJF_KEEPBFD);
|
||||||
+ if (so->main)
|
+ if (so->main)
|
||||||
+ {
|
+ {
|
||||||
+ if (debug_solib)
|
+ if (debug_solib)
|
||||||
+ fprintf_unfiltered (gdb_stdlog,
|
+ fprintf_unfiltered (gdb_stdlog,
|
||||||
+ "symbol_add_stub: adding symbols for main\n");
|
+ "symbol_add_stub: adding symbols for main\n");
|
||||||
+ so->objfile = symbol_file_add (so->so_name, /*so->from_tty*/ 0,
|
+ so->objfile = symbol_file_add_from_bfd (so->abfd, /*so->from_tty*/ 0,
|
||||||
+ sap, 1, 0);
|
+ sap, 1, OBJF_KEEPBFD);
|
||||||
+ so->main_relocated = 1;
|
+ so->main_relocated = 1;
|
||||||
+ }
|
+ }
|
||||||
+ else
|
+ else
|
||||||
+ so->objfile = symbol_file_add (so->so_name, so->from_tty,
|
+ so->objfile = symbol_file_add_from_bfd (so->abfd, so->from_tty,
|
||||||
+ sap, 0, OBJF_SHARED);
|
+ sap, 0, OBJF_SHARED | OBJF_KEEPBFD);
|
||||||
+
|
+
|
||||||
free_section_addr_info (sap);
|
free_section_addr_info (sap);
|
||||||
|
|
||||||
return (1);
|
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
|
else
|
||||||
{
|
{
|
||||||
@ -1199,7 +1221,7 @@ Index: gdb-6.8.50.20081209/gdb/solib.c
|
|||||||
if (! strcmp (gdb->so_original_name, i->so_original_name))
|
if (! strcmp (gdb->so_original_name, i->so_original_name))
|
||||||
break;
|
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. */
|
/* Fill in the rest of each of the `struct so_list' nodes. */
|
||||||
for (i = inferior; i; i = i->next)
|
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
|
/* Notify any observer that the shared object has been
|
||||||
loaded now that we've added it to GDB's tables. */
|
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,
|
reload_shared_libraries,
|
||||||
show_solib_search_path,
|
show_solib_search_path,
|
||||||
&setlist, &showlist);
|
&setlist, &showlist);
|
||||||
@ -1284,10 +1306,10 @@ Index: gdb-6.8.50.20081209/gdb/solib.c
|
|||||||
+ NULL, NULL,
|
+ NULL, NULL,
|
||||||
+ &setdebuglist, &showdebuglist);
|
+ &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.20090209.orig/gdb/solist.h 2009-02-04 09:42:11.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081209/gdb/solist.h 2008-12-14 14:56:49.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
|
@@ -61,6 +61,8 @@ struct so_list
|
||||||
bfd *abfd;
|
bfd *abfd;
|
||||||
char symbols_loaded; /* flag: symbols read in yet? */
|
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 objfile *objfile; /* objfile for loaded lib */
|
||||||
struct section_table *sections;
|
struct section_table *sections;
|
||||||
struct section_table *sections_end;
|
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 char *linkage_name,
|
||||||
const domain_enum domain);
|
const domain_enum domain);
|
||||||
|
|
||||||
@ -1308,10 +1330,10 @@ Index: gdb-6.8.50.20081209/gdb/solist.h
|
|||||||
+extern int debug_solib;
|
+extern int debug_solib;
|
||||||
+
|
+
|
||||||
#endif
|
#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.20090209.orig/gdb/symfile-mem.c 2009-02-09 15:49:25.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081209/gdb/symfile-mem.c 2008-12-14 14:56:49.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
|
@@ -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. */
|
/* This might change our ideas about frames already looked at. */
|
||||||
reinit_frame_cache ();
|
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.20090209.orig/gdb/symfile.c 2009-02-09 16:03:45.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081209/gdb/symfile.c 2008-12-14 14:56:49.000000000 +0100
|
+++ gdb-6.8.50.20090209/gdb/symfile.c 2009-02-09 16:21:55.000000000 +0100
|
||||||
@@ -47,6 +47,7 @@
|
@@ -47,6 +47,7 @@
|
||||||
#include "readline/readline.h"
|
#include "readline/readline.h"
|
||||||
#include "gdb_assert.h"
|
#include "gdb_assert.h"
|
||||||
@ -1351,7 +1373,7 @@ Index: gdb-6.8.50.20081209/gdb/symfile.c
|
|||||||
{
|
{
|
||||||
asection *lower_sect;
|
asection *lower_sect;
|
||||||
asection *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
|
/* 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
|
old main symbol file. Otherwise it is sufficient to fixup all the
|
||||||
breakpoints that may have been redefined by this symbol file. */
|
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. */
|
/* We're done reading the symbol file; finish off complaints. */
|
||||||
clear_complaints (&symfile_complaints, 0, verbo);
|
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. */
|
interactively wiping out any existing symbols. */
|
||||||
|
|
||||||
if ((have_full_symbols () || have_partial_symbols ())
|
if ((have_full_symbols () || have_partial_symbols ())
|
||||||
@ -1384,7 +1406,7 @@ Index: gdb-6.8.50.20081209/gdb/symfile.c
|
|||||||
&& from_tty
|
&& from_tty
|
||||||
&& !query ("Load new symbol table from \"%s\"? ", name))
|
&& !query ("Load new symbol table from \"%s\"? ", name))
|
||||||
error (_("Not confirmed."));
|
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)
|
symfile_objfile->name)
|
||||||
: !query (_("Discard symbol table? "))))
|
: !query (_("Discard symbol table? "))))
|
||||||
error (_("Not confirmed."));
|
error (_("Not confirmed."));
|
||||||
@ -1395,7 +1417,7 @@ Index: gdb-6.8.50.20081209/gdb/symfile.c
|
|||||||
free_all_objfiles ();
|
free_all_objfiles ();
|
||||||
|
|
||||||
/* solib descriptors may have handles to objfiles. Since their
|
/* 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 as symbol reading was successful. */
|
||||||
discard_cleanups (old_cleanups);
|
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
|
/* 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
|
and now, we *want* this to be out of date, so don't call stat
|
||||||
again now. */
|
again now. */
|
||||||
@@ -3628,6 +3639,7 @@ clear_symtab_users (void)
|
@@ -3629,6 +3640,7 @@ clear_symtab_users (void)
|
||||||
breakpoint_re_set ();
|
breakpoint_re_set ();
|
||||||
set_default_breakpoint (0, 0, 0, 0);
|
set_default_breakpoint (0, 0, 0, 0);
|
||||||
clear_pc_function_cache ();
|
clear_pc_function_cache ();
|
||||||
@ -1412,11 +1434,11 @@ Index: gdb-6.8.50.20081209/gdb/symfile.c
|
|||||||
observer_notify_new_objfile (NULL);
|
observer_notify_new_objfile (NULL);
|
||||||
|
|
||||||
/* Clear globals which might have pointed into a removed objfile.
|
/* 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.20090209.orig/gdb/varobj.c 2009-02-05 18:28:21.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081209/gdb/varobj.c 2008-12-14 14:56:49.000000000 +0100
|
+++ gdb-6.8.50.20090209/gdb/varobj.c 2009-02-09 16:21:55.000000000 +0100
|
||||||
@@ -1116,6 +1116,62 @@ install_new_value (struct varobj *var, s
|
@@ -1123,6 +1123,62 @@ install_new_value (struct varobj *var, s
|
||||||
return changed;
|
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
|
/* Update the values for a variable and its children. This is a
|
||||||
two-pronged attack. First, re-parse the value for the root's
|
two-pronged attack. First, re-parse the value for the root's
|
||||||
expression to see if it's changed. Then go all the way
|
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.20090209.orig/gdb/varobj.h 2009-01-03 06:57:54.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081209/gdb/varobj.h 2008-12-14 14:56:49.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
|
@@ -141,4 +141,6 @@ extern int varobj_editable_p (struct var
|
||||||
|
|
||||||
extern int varobj_floating_p (struct varobj *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);
|
+extern void varobj_refresh(void);
|
||||||
+
|
+
|
||||||
#endif /* VAROBJ_H */
|
#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.20090209.orig/gdb/target.h 2009-02-09 16:02:42.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081209/gdb/target.h 2008-12-14 14:57:21.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
|
@@ -524,7 +524,7 @@ struct target_ops
|
||||||
Return -1 if there is insufficient buffer for a whole entry.
|
Return -1 if there is insufficient buffer for a whole entry.
|
||||||
Return 1 if an entry was read into *TYPEP and *VALP. */
|
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
|
(source_command): Update documentation. Check permissions if
|
||||||
FROM_TTY is -1.
|
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.20090209.orig/gdb/cli/cli-cmds.c 2009-01-14 21:40:07.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/gdb/cli/cli-cmds.c 2009-02-09 15:45:39.000000000 +0100
|
||||||
@@ -36,6 +36,7 @@
|
@@ -36,6 +36,7 @@
|
||||||
#include "objfiles.h"
|
#include "objfiles.h"
|
||||||
#include "source.h"
|
#include "source.h"
|
||||||
@ -31,7 +31,7 @@ Index: gdb-6.8.50.20081128/gdb/cli/cli-cmds.c
|
|||||||
|
|
||||||
#include "ui-out.h"
|
#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)
|
if (fd == -1)
|
||||||
{
|
{
|
||||||
@ -40,7 +40,7 @@ Index: gdb-6.8.50.20081128/gdb/cli/cli-cmds.c
|
|||||||
perror_with_name (file);
|
perror_with_name (file);
|
||||||
else
|
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);
|
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
|
--- /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 @@
|
@@ -0,0 +1,98 @@
|
||||||
+# Copyright 2005
|
+# Copyright 2005
|
||||||
+# Free Software Foundation, Inc.
|
+# 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"
|
+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
|
--- /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 @@
|
@@ -0,0 +1 @@
|
||||||
+echo "\nin gdbinit"
|
+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.20090209.orig/gdb/main.c 2009-01-28 16:01:00.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081128/gdb/main.c 2008-12-07 12:58:37.000000000 +0100
|
+++ gdb-6.8.50.20090209/gdb/main.c 2009-02-09 15:46:33.000000000 +0100
|
||||||
@@ -690,7 +690,7 @@ Excess command line arguments ignored. (
|
@@ -783,7 +783,7 @@ Excess command line arguments ignored. (
|
||||||
|
debugging or what directory you are in. */
|
||||||
|
|
||||||
if (!inhibit_gdbinit)
|
if (home_gdbinit && !inhibit_gdbinit)
|
||||||
{
|
- catch_command_errors (source_script, home_gdbinit, 0, RETURN_MASK_ALL);
|
||||||
- catch_command_errors (source_script, homeinit, 0, RETURN_MASK_ALL);
|
+ catch_command_errors (source_script, home_gdbinit, -1, RETURN_MASK_ALL);
|
||||||
+ catch_command_errors (source_script, homeinit, -1, RETURN_MASK_ALL);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Do stats; no need to do them elsewhere since we'll only
|
/* Now perform all the actions indicated by the arguments. */
|
||||||
@@ -778,7 +778,7 @@ Can't attach to process and specify a co
|
if (cdarg != NULL)
|
||||||
|| memcmp ((char *) &homebuf, (char *) &cwdbuf, sizeof (struct stat)))
|
@@ -852,7 +852,7 @@ Can't attach to process and specify a co
|
||||||
if (!inhibit_gdbinit)
|
/* Read the .gdbinit file in the current directory, *if* it isn't
|
||||||
{
|
the same as the $HOME/.gdbinit file (it should exist, also). */
|
||||||
- catch_command_errors (source_script, gdbinit, 0, RETURN_MASK_ALL);
|
if (local_gdbinit && !inhibit_gdbinit)
|
||||||
+ catch_command_errors (source_script, gdbinit, -1, RETURN_MASK_ALL);
|
- 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++)
|
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
|
<81a2> DW_AT_name : (indirect string, offset: 0x280e): __errno_location
|
||||||
<81a8> DW_AT_MIPS_linkage_name: (indirect string, offset: 0x2808): *__GI___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.20090209.orig/gdb/dwarf2read.c 2009-02-09 15:50:59.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081128/gdb/dwarf2read.c 2008-12-04 10:26:40.000000000 +0100
|
+++ gdb-6.8.50.20090209/gdb/dwarf2read.c 2009-02-09 15:51:57.000000000 +0100
|
||||||
@@ -5886,8 +5886,8 @@ read_partial_die (struct partial_die_inf
|
@@ -6031,8 +6031,8 @@ read_partial_die (struct partial_die_inf
|
||||||
{
|
{
|
||||||
case DW_AT_name:
|
case DW_AT_name:
|
||||||
|
|
||||||
@ -45,7 +45,7 @@ Index: gdb-6.8.50.20081128/gdb/dwarf2read.c
|
|||||||
part_die->name = DW_STRING (&attr);
|
part_die->name = DW_STRING (&attr);
|
||||||
break;
|
break;
|
||||||
case DW_AT_comp_dir:
|
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);
|
part_die->dirname = DW_STRING (&attr);
|
||||||
break;
|
break;
|
||||||
case DW_AT_MIPS_linkage_name:
|
case DW_AT_MIPS_linkage_name:
|
||||||
@ -56,7 +56,7 @@ Index: gdb-6.8.50.20081128/gdb/dwarf2read.c
|
|||||||
break;
|
break;
|
||||||
case DW_AT_low_pc:
|
case DW_AT_low_pc:
|
||||||
has_low_pc_attr = 1;
|
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;
|
struct attribute *attr;
|
||||||
|
|
||||||
@ -73,36 +73,37 @@ Index: gdb-6.8.50.20081128/gdb/dwarf2read.c
|
|||||||
attr = dwarf2_attr (die, DW_AT_name, cu);
|
attr = dwarf2_attr (die, DW_AT_name, cu);
|
||||||
if (attr && DW_STRING (attr))
|
if (attr && DW_STRING (attr))
|
||||||
return 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.20090209.orig/gdb/gdbtypes.c 2009-02-09 15:38:54.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081128/gdb/gdbtypes.c 2008-12-04 10:26:40.000000000 +0100
|
+++ gdb-6.8.50.20090209/gdb/gdbtypes.c 2009-02-09 15:56:14.000000000 +0100
|
||||||
@@ -3141,6 +3141,8 @@ gdbtypes_post_init (struct gdbarch *gdba
|
@@ -3643,6 +3643,8 @@ gdbtypes_post_init (struct gdbarch *gdba
|
||||||
init_type (TYPE_CODE_INT,
|
init_type (TYPE_CODE_INT,
|
||||||
gdbarch_int_bit (gdbarch) / TARGET_CHAR_BIT,
|
gdbarch_int_bit (gdbarch) / TARGET_CHAR_BIT,
|
||||||
0, "int", (struct objfile *) NULL);
|
0, "int", OBJFILE_INTERNAL);
|
||||||
+ builtin_type->builtin_int_ptr =
|
+ builtin_type->builtin_int_ptr =
|
||||||
+ make_pointer_type (builtin_type->builtin_int, NULL);
|
+ make_pointer_type (builtin_type->builtin_int, NULL);
|
||||||
builtin_type->builtin_unsigned_int =
|
builtin_type->builtin_unsigned_int =
|
||||||
init_type (TYPE_CODE_INT,
|
init_type (TYPE_CODE_INT,
|
||||||
gdbarch_int_bit (gdbarch) / TARGET_CHAR_BIT,
|
gdbarch_int_bit (gdbarch) / TARGET_CHAR_BIT,
|
||||||
@@ -3250,6 +3252,11 @@ gdbtypes_post_init (struct gdbarch *gdba
|
@@ -3752,6 +3754,12 @@ gdbtypes_post_init (struct gdbarch *gdba
|
||||||
"<text variable, no debug info>", NULL);
|
"<text variable, no debug info>", OBJFILE_INTERNAL);
|
||||||
TYPE_TARGET_TYPE (builtin_type->nodebug_text_symbol) =
|
TYPE_TARGET_TYPE (builtin_type->nodebug_text_symbol) =
|
||||||
builtin_type->builtin_int;
|
builtin_type->builtin_int;
|
||||||
+ builtin_type->nodebug_text_symbol_errno_location =
|
+ builtin_type->nodebug_text_symbol_errno_location =
|
||||||
+ init_type (TYPE_CODE_FUNC, 1, 0,
|
+ 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) =
|
+ TYPE_TARGET_TYPE (builtin_type->nodebug_text_symbol_errno_location) =
|
||||||
+ builtin_type->builtin_int_ptr;
|
+ builtin_type->builtin_int_ptr;
|
||||||
builtin_type->nodebug_data_symbol =
|
builtin_type->nodebug_data_symbol =
|
||||||
init_type (TYPE_CODE_INT,
|
init_type (TYPE_CODE_INT,
|
||||||
gdbarch_int_bit (gdbarch) / HOST_CHAR_BIT, 0,
|
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.20090209.orig/gdb/gdbtypes.h 2009-02-09 15:38:54.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081128/gdb/gdbtypes.h 2008-12-04 10:26:40.000000000 +0100
|
+++ gdb-6.8.50.20090209/gdb/gdbtypes.h 2009-02-09 15:51:57.000000000 +0100
|
||||||
@@ -975,6 +975,7 @@ struct builtin_type
|
@@ -1050,6 +1050,7 @@ struct builtin_type
|
||||||
|
|
||||||
/* Types used for symbols with no debug information. */
|
/* Types used for symbols with no debug information. */
|
||||||
struct type *nodebug_text_symbol;
|
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_data_symbol;
|
||||||
struct type *nodebug_unknown_symbol;
|
struct type *nodebug_unknown_symbol;
|
||||||
struct type *nodebug_tls_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_char;
|
||||||
struct type *builtin_short;
|
struct type *builtin_short;
|
||||||
struct type *builtin_int;
|
struct type *builtin_int;
|
||||||
@ -118,10 +119,10 @@ Index: gdb-6.8.50.20081128/gdb/gdbtypes.h
|
|||||||
struct type *builtin_long;
|
struct type *builtin_long;
|
||||||
struct type *builtin_signed_char;
|
struct type *builtin_signed_char;
|
||||||
struct type *builtin_unsigned_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.20090209.orig/gdb/parse.c 2009-01-03 06:57:52.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081128/gdb/parse.c 2008-12-04 10:26:40.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
|
@@ -449,7 +449,12 @@ write_exp_msymbol (struct minimal_symbol
|
||||||
case mst_text:
|
case mst_text:
|
||||||
case mst_file_text:
|
case mst_file_text:
|
||||||
@ -136,11 +137,11 @@ Index: gdb-6.8.50.20081128/gdb/parse.c
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case mst_data:
|
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.20090209.orig/gdb/target.c 2009-02-09 15:50:39.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081128/gdb/target.c 2008-12-04 10:29:07.000000000 +0100
|
+++ gdb-6.8.50.20090209/gdb/target.c 2009-02-09 15:51:57.000000000 +0100
|
||||||
@@ -850,6 +850,25 @@ pop_all_targets (int quitting)
|
@@ -842,6 +842,25 @@ pop_all_targets (int quitting)
|
||||||
pop_all_targets_above (dummy_stratum, 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
|
/* Using the objfile specified in OBJFILE, find the address for the
|
||||||
current thread's thread-local storage with offset OFFSET. */
|
current thread's thread-local storage with offset OFFSET. */
|
||||||
CORE_ADDR
|
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
|
/* 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. */
|
TLS is an ABI-specific thing. But we don't do that yet. */
|
||||||
else
|
else
|
||||||
@ -196,10 +197,10 @@ Index: gdb-6.8.50.20081128/gdb/target.c
|
|||||||
|
|
||||||
return addr;
|
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
|
--- /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 @@
|
@@ -0,0 +1,28 @@
|
||||||
+/* This testcase is part of GDB, the GNU debugger.
|
+/* 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 */
|
+ 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
|
--- /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 @@
|
@@ -0,0 +1,67 @@
|
||||||
+# Copyright 2007 Free Software Foundation, Inc.
|
+# 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 */
|
+ bug-gdb@prep.ai.mit.edu */
|
||||||
+
|
+
|
||||||
+__thread int var = 42;
|
+__thread int var = 42;
|
||||||
Index: gdb-6.7.50.20080227/gdb/testsuite/gdb.threads/tls-sepdebug.exp
|
--- /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
|
||||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
@@ -0,0 +1,86 @@
|
||||||
+++ gdb-6.7.50.20080227/gdb/testsuite/gdb.threads/tls-sepdebug.exp 2008-02-27 09:00:15.000000000 +0100
|
|
||||||
@@ -0,0 +1,81 @@
|
|
||||||
+# Copyright 2006 Free Software Foundation, Inc.
|
+# Copyright 2006 Free Software Foundation, Inc.
|
||||||
+
|
+
|
||||||
+# This program is free software; you can redistribute it and/or modify
|
+# 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 srcmainfile ${testfile}-main.c
|
||||||
+set srcsharedfile ${testfile}-shared.c
|
+set srcsharedfile ${testfile}-shared.c
|
||||||
+
|
+
|
||||||
+# DO NOT use ${objdir} obsolute reference here as we test relative directories
|
+set binmainfile ${objdir}/${subdir}/${testfile}-main
|
||||||
+# below and the absolute pathnames must not get encoded to the binaries.
|
+set binsharedbase ${testfile}-shared.so
|
||||||
|
+set binsharedfile ${objdir}/${subdir}/${binsharedbase}
|
||||||
|
+set binshareddebugfile ${objdir}/${subdir}/${binsharedbase}.debug
|
||||||
+
|
+
|
||||||
+set binmainfile ${testfile}-main
|
+# Use explicit -soname as otherwise the full path to the library would get
|
||||||
+set binsharedfile ${testfile}-shared.so
|
+# encoded into ${binmainfile} making LD_LIBRARY_PATH tests useless.
|
||||||
+set binshareddebugfile ${testfile}-shared.so.debug
|
|
||||||
+
|
+
|
||||||
+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"
|
+ untested "Couldn't compile test library"
|
||||||
+ return -1
|
+ 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}"
|
+ 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"
|
+ untested "Couldn't compile test program"
|
||||||
+ return -1
|
+ 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
|
+# \$PWD is easy - it is the absolute way
|
||||||
+# ${subdir} would fail on "print var"
|
+# ${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_exit
|
||||||
+ gdb_start
|
+ 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
|
* s390-nat.c (s390_fix_watch_points): Fix its compilation failure
|
||||||
- rename it to S390_FIX_WATCH_POINTS_LIST.
|
- 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.20090209.orig/gdb/amd64-linux-nat.c 2009-02-09 16:02:27.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/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
|
@@ -408,25 +408,43 @@ amd64_linux_dr_set (ptid_t ptid, int reg
|
||||||
void
|
void
|
||||||
amd64_linux_dr_set_control (unsigned long control)
|
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
|
/* This function is called by libthread_db as part of its handling of
|
||||||
@@ -520,6 +573,43 @@ amd64_linux_child_post_startup_inferior
|
@@ -755,6 +808,42 @@ amd64_linux_siginfo_fixup (struct siginf
|
||||||
i386_cleanup_dregs ();
|
return 0;
|
||||||
super_post_startup_inferior (ptid);
|
|
||||||
}
|
}
|
||||||
+
|
|
||||||
+static int (*amd64_linux_super_follow_fork) (struct target_ops *ops,
|
+static int (*amd64_linux_super_follow_fork) (struct target_ops *ops,
|
||||||
+ int follow_child);
|
+ 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);
|
+ return (*amd64_linux_super_follow_fork) (ops, follow_child);
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
|
|
||||||
|
|
||||||
/* Provide a prototype to silence -Wmissing-prototypes. */
|
/* 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_prstatus = amd64_linux_elfcore_write_prstatus;
|
||||||
linux_elfcore_write_prfpreg = amd64_linux_elfcore_write_prfpreg;
|
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. */
|
/* Register the target. */
|
||||||
linux_nat_add_target (t);
|
linux_nat_add_target (t);
|
||||||
linux_nat_set_new_thread (t, amd64_linux_new_thread);
|
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.20090209.orig/gdb/config/i386/nm-i386.h 2009-01-03 06:57:54.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/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
|
@@ -120,6 +120,8 @@ extern int i386_stopped_by_watchpoint (v
|
||||||
|
|
||||||
#endif /* I386_WATCHPOINTS_IN_TARGET_VECTOR */
|
#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 /* I386_USE_GENERIC_WATCHPOINTS */
|
||||||
|
|
||||||
#endif /* NM_I386_H */
|
#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.20090209.orig/gdb/i386-linux-nat.c 2009-01-03 06:57:51.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/gdb/i386-linux-nat.c 2009-02-09 16:02:42.000000000 +0100
|
||||||
@@ -634,21 +634,42 @@ i386_linux_dr_set_control (unsigned long
|
@@ -634,21 +634,42 @@ i386_linux_dr_set_control (unsigned long
|
||||||
ptid_t ptid;
|
ptid_t ptid;
|
||||||
|
|
||||||
@ -342,11 +341,11 @@ Index: gdb-6.8.50.20081128/gdb/i386-linux-nat.c
|
|||||||
/* Register the target. */
|
/* Register the target. */
|
||||||
linux_nat_add_target (t);
|
linux_nat_add_target (t);
|
||||||
linux_nat_set_new_thread (t, i386_linux_new_thread);
|
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.20090209.orig/gdb/i386-nat.c 2009-01-03 06:57:51.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081128/gdb/i386-nat.c 2008-12-07 10:09:20.000000000 +0100
|
+++ gdb-6.8.50.20090209/gdb/i386-nat.c 2009-02-09 16:02:42.000000000 +0100
|
||||||
@@ -545,6 +545,17 @@ i386_remove_watchpoint (CORE_ADDR addr,
|
@@ -546,6 +546,17 @@ i386_remove_watchpoint (CORE_ADDR addr,
|
||||||
return retval;
|
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
|
/* Return non-zero if we can watch a memory region that starts at
|
||||||
address ADDR and whose length is LEN bytes. */
|
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.20090209.orig/gdb/ia64-linux-nat.c 2009-02-09 15:48:43.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/gdb/ia64-linux-nat.c 2009-02-09 16:02:42.000000000 +0100
|
||||||
@@ -583,6 +583,12 @@ ia64_linux_insert_watchpoint (CORE_ADDR
|
@@ -583,6 +583,12 @@ ia64_linux_insert_watchpoint (CORE_ADDR
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -467,10 +466,10 @@ Index: gdb-6.8.50.20081128/gdb/ia64-linux-nat.c
|
|||||||
/* Register the target. */
|
/* Register the target. */
|
||||||
linux_nat_add_target (t);
|
linux_nat_add_target (t);
|
||||||
linux_nat_set_new_thread (t, ia64_linux_new_thread);
|
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.20090209.orig/gdb/ppc-linux-nat.c 2009-01-03 06:57:52.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/gdb/ppc-linux-nat.c 2009-02-09 16:02:42.000000000 +0100
|
||||||
@@ -1118,6 +1118,12 @@ ppc_linux_insert_watchpoint (CORE_ADDR a
|
@@ -1118,6 +1118,12 @@ ppc_linux_insert_watchpoint (CORE_ADDR a
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -563,10 +562,10 @@ Index: gdb-6.8.50.20081128/gdb/ppc-linux-nat.c
|
|||||||
/* Register the target. */
|
/* Register the target. */
|
||||||
linux_nat_add_target (t);
|
linux_nat_add_target (t);
|
||||||
linux_nat_set_new_thread (t, ppc_linux_new_thread);
|
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.20090209.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/gdb/s390-nat.c 2009-02-09 16:02:42.000000000 +0100
|
||||||
@@ -283,21 +283,15 @@ s390_stopped_by_watchpoint (void)
|
@@ -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. */
|
/* Register the target. */
|
||||||
linux_nat_add_target (t);
|
linux_nat_add_target (t);
|
||||||
linux_nat_set_new_thread (t, s390_fix_watch_points);
|
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
|
--- /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 @@
|
@@ -0,0 +1,172 @@
|
||||||
+/* Test case for forgotten hw-watchpoints after fork()-off of a process.
|
+/* 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
|
+#else
|
||||||
+# error "!FOLLOW_PARENT && !FOLLOW_CHILD"
|
+# error "!FOLLOW_PARENT && !FOLLOW_CHILD"
|
||||||
+#endif
|
+#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
|
--- /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 @@
|
@@ -0,0 +1,154 @@
|
||||||
+/* Test case for forgotten hw-watchpoints after fork()-off of a process.
|
+/* 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;
|
+ 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
|
--- /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 @@
|
@@ -0,0 +1,56 @@
|
||||||
+/* Test case for forgotten hw-watchpoints after fork()-off of a process.
|
+/* 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;
|
+ 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
|
--- /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 @@
|
@@ -0,0 +1,140 @@
|
||||||
+# Copyright 2008 Free Software Foundation, Inc.
|
+# 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*"]} {
|
+if {[istarget "*-*-linux*"]} {
|
||||||
+ test child FOLLOW_CHILD
|
+ 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.20090209.orig/gdb/doc/gdb.texinfo 2009-02-09 16:02:35.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081128/gdb/doc/gdb.texinfo 2008-12-07 10:10:20.000000000 +0100
|
+++ gdb-6.8.50.20090209/gdb/doc/gdb.texinfo 2009-02-09 16:02:42.000000000 +0100
|
||||||
@@ -3587,6 +3587,14 @@ confident that no other thread can becom
|
@@ -3588,6 +3588,14 @@ confident that no other thread can becom
|
||||||
software watchpoints as usual. However, @value{GDBN} may not notice
|
software watchpoints as usual. However, @value{GDBN} may not notice
|
||||||
when a non-current thread's activity changes the expression. (Hardware
|
when a non-current thread's activity changes the expression. (Hardware
|
||||||
watchpoints, in contrast, watch an expression in all threads.)
|
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
|
@end quotation
|
||||||
|
|
||||||
@xref{set remote hardware-watchpoint-limit}.
|
@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.20090209.orig/gdb/config/i386/nm-linux.h 2009-01-03 06:57:54.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081128/gdb/config/i386/nm-linux.h 2008-12-07 10:09:20.000000000 +0100
|
+++ gdb-6.8.50.20090209/gdb/config/i386/nm-linux.h 2009-02-09 16:02:42.000000000 +0100
|
||||||
@@ -45,6 +45,16 @@ extern void i386_linux_dr_reset_addr (in
|
@@ -46,6 +46,16 @@ extern void i386_linux_dr_reset_addr (in
|
||||||
extern unsigned long i386_linux_dr_get_status (void);
|
extern unsigned long i386_linux_dr_get_status (void);
|
||||||
#define I386_DR_LOW_GET_STATUS() \
|
#define I386_DR_LOW_GET_STATUS() \
|
||||||
i386_linux_dr_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
|
#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.20090209.orig/gdb/config/i386/nm-linux64.h 2009-01-03 06:57:54.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/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_
|
@@ -51,4 +51,14 @@ extern unsigned long amd64_linux_dr_get_
|
||||||
#define I386_DR_LOW_GET_STATUS() \
|
#define I386_DR_LOW_GET_STATUS() \
|
||||||
amd64_linux_dr_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)
|
+ amd64_linux_remove_watchpoint (addr, len, type)
|
||||||
+
|
+
|
||||||
#endif /* nm-linux64.h */
|
#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.20090209.orig/gdb/target.h 2009-02-09 15:49:25.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081128/gdb/target.h 2008-12-07 10:10:38.000000000 +0100
|
+++ gdb-6.8.50.20090209/gdb/target.h 2009-02-09 16:02:42.000000000 +0100
|
||||||
@@ -1123,7 +1123,9 @@ extern char *normal_pid_to_str (ptid_t p
|
@@ -1113,7 +1113,9 @@ extern char *normal_pid_to_str (ptid_t p
|
||||||
#ifndef target_insert_watchpoint
|
#ifndef target_insert_watchpoint
|
||||||
#define target_insert_watchpoint(addr, len, type) \
|
#define target_insert_watchpoint(addr, len, type) \
|
||||||
(*current_target.to_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>
|
2007-12-08 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||||
|
|
||||||
* gdb.base/fileio.c (ROOTSUBDIR): New macro.
|
* gdb.base/fileio.c (ROOTSUBDIR): New macro.
|
||||||
@ -6,6 +8,18 @@
|
|||||||
* gdb.base/fileio.exp: Change the startup and finish cleanup.
|
* gdb.base/fileio.exp: Change the startup and finish cleanup.
|
||||||
Change the test file reference to be into the `fileio.dir' directory.
|
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 13 Jun 2006 08:55:22 -0000 1.10
|
||||||
+++ ./gdb/testsuite/gdb.base/fileio.c 8 Dec 2007 16:04:10 -0000
|
+++ ./gdb/testsuite/gdb.base/fileio.c 8 Dec 2007 16:04:10 -0000
|
||||||
@@ -58,6 +58,8 @@ system (const char * string);
|
@@ -58,6 +58,8 @@ system (const char * string);
|
||||||
@ -88,11 +102,6 @@
|
|||||||
|
|
||||||
set timeout $oldtimeout
|
set timeout $oldtimeout
|
||||||
return 0
|
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-orig 2008-08-28 11:44:40.000000000 +0200
|
||||||
+++ sources/gdb/testsuite/gdb.base/dump.exp 2008-08-28 11:44:49.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
|
@@ -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\]"
|
"array partial with expressions" 4 "intarray2\[3\]"
|
||||||
|
|
||||||
gdb_test "print intarray2\[2\] == 0" " = 1" "element 2 not changed, == 4"
|
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.20090209.orig/gdb/linux-nat.c 2009-02-09 16:12:23.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081128/gdb/linux-nat.c 2008-12-06 22:00:42.000000000 +0100
|
+++ gdb-6.8.50.20090209/gdb/linux-nat.c 2009-02-09 16:15:30.000000000 +0100
|
||||||
@@ -199,6 +199,9 @@ blocked. */
|
@@ -204,6 +204,9 @@ blocked. */
|
||||||
static struct target_ops *linux_ops;
|
static struct target_ops *linux_ops;
|
||||||
static struct target_ops linux_ops_saved;
|
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. */
|
/* The method to call, if any, when a new thread is attached. */
|
||||||
static void (*linux_nat_new_thread) (ptid_t);
|
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);
|
fork_save_infrun_state (fp, 0);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -27,8 +27,8 @@ Index: gdb-6.8.50.20081128/gdb/linux-nat.c
|
|||||||
+ }
|
+ }
|
||||||
|
|
||||||
inferior_ptid = ptid_build (child_pid, child_pid, 0);
|
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)
|
if (debug_linux_nat)
|
||||||
fprintf_unfiltered (gdb_stdlog,
|
fprintf_unfiltered (gdb_stdlog,
|
||||||
"LNPAW: Attaching to a stopped process\n");
|
"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
|
/* The process is definitely stopped. It is in a job control
|
||||||
stop, unless the kernel predates the TASK_STOPPED /
|
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;
|
*status = lp->status;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -46,16 +46,16 @@ Index: gdb-6.8.50.20081128/gdb/linux-nat.c
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1631,6 +1645,8 @@ linux_nat_detach (struct target_ops *ops
|
@@ -1671,6 +1685,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);
|
|
||||||
}
|
}
|
||||||
@@ -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. */
|
resume_callback. */
|
||||||
lp->stopped = 0;
|
lp->stopped = 0;
|
||||||
|
|
||||||
@ -70,7 +70,7 @@ Index: gdb-6.8.50.20081128/gdb/linux-nat.c
|
|||||||
if (resume_all)
|
if (resume_all)
|
||||||
iterate_over_lwps (resume_callback, NULL);
|
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
|
there are other viable forks to debug. Delete the exiting
|
||||||
one and context-switch to the first available. */
|
one and context-switch to the first available. */
|
||||||
linux_fork_mourn_inferior ();
|
linux_fork_mourn_inferior ();
|
||||||
@ -78,83 +78,12 @@ Index: gdb-6.8.50.20081128/gdb/linux-nat.c
|
|||||||
+ pid_was_stopped = 0;
|
+ pid_was_stopped = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static LONGEST
|
/* Convert a native/host siginfo object, into/from the siginfo in the
|
||||||
Index: gdb-6.8.50.20081128/gdb/testsuite/gdb.threads/attach-stopped.c
|
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.20090209.orig/gdb/testsuite/gdb.threads/attach-stopped.exp 2009-01-03 06:58:07.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081128/gdb/testsuite/gdb.threads/attach-stopped.c 2008-12-06 21:57:23.000000000 +0100
|
+++ gdb-6.8.50.20090209/gdb/testsuite/gdb.threads/attach-stopped.exp 2009-02-09 16:12:41.000000000 +0100
|
||||||
@@ -1,19 +1,20 @@
|
@@ -62,7 +62,65 @@ proc corefunc { threadtype } {
|
||||||
/* 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_reinitialize_dir $srcdir/$subdir
|
gdb_reinitialize_dir $srcdir/$subdir
|
||||||
gdb_load ${binfile}
|
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"
|
set test "$threadtype: attach2 to stopped, after setting file"
|
||||||
gdb_test_multiple "attach $testpid" "$test" {
|
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.20090209.orig/gdb/testsuite/gdb.threads/attachstop-mt.exp 2009-01-03 06:58:07.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081128/gdb/testsuite/gdb.threads/attachstop-mt.c 2008-12-06 21:57:23.000000000 +0100
|
+++ gdb-6.8.50.20090209/gdb/testsuite/gdb.threads/attachstop-mt.exp 2009-02-09 16:12:41.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
|
|
||||||
@@ -176,12 +176,23 @@ gdb_test "bt" ".*sleep.*(func|main).*" "
|
@@ -176,12 +176,23 @@ gdb_test "bt" ".*sleep.*(func|main).*" "
|
||||||
# Exit and detach the process.
|
# Exit and detach the process.
|
||||||
gdb_exit
|
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.
|
+# No locals.
|
||||||
+
|
+
|
||||||
+# `abort' can get expressed as `*__GI_abort'.
|
+# `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
|
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
|
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
||||||
|
@ -18,11 +18,11 @@
|
|||||||
gdb.base/watchpoint.c (global_ptr_ptr): New variable.
|
gdb.base/watchpoint.c (global_ptr_ptr): New variable.
|
||||||
(func4): New testing code for GLOBAL_PTR_PTR.
|
(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.20090209.orig/gdb/breakpoint.c 2009-02-09 15:39:01.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081128/gdb/breakpoint.c 2008-12-03 00:00:08.000000000 +0100
|
+++ gdb-6.8.50.20090209/gdb/breakpoint.c 2009-02-09 16:04:10.000000000 +0100
|
||||||
@@ -770,7 +770,15 @@ is_hardware_watchpoint (struct breakpoin
|
@@ -769,7 +769,15 @@ is_hardware_watchpoint (struct breakpoin
|
||||||
If VAL_CHAIN is non-NULL, *VAL_CHAIN will be released from the
|
If VAL_CHAIN is non-NULL, *VAL_CHAIN will be released from the
|
||||||
value chain. The caller must free the values individually. If
|
value chain. The caller must free the values individually. If
|
||||||
VAL_CHAIN is NULL, all generated values will be left on the value
|
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
|
static void
|
||||||
fetch_watchpoint_value (struct expression *exp, struct value **valp,
|
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 symtab_and_line sal;
|
||||||
struct expression *exp;
|
struct expression *exp;
|
||||||
struct block *exp_valid_block;
|
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 *frame;
|
||||||
struct frame_info *prev_frame = NULL;
|
struct frame_info *prev_frame = NULL;
|
||||||
char *exp_start = 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;
|
exp_valid_block = innermost_block;
|
||||||
mark = value_mark ();
|
mark = value_mark ();
|
||||||
fetch_watchpoint_value (exp, &val, NULL, NULL);
|
fetch_watchpoint_value (exp, &val, NULL, NULL);
|
||||||
@ -76,10 +76,10 @@ Index: gdb-6.8.50.20081128/gdb/breakpoint.c
|
|||||||
if (val != NULL)
|
if (val != NULL)
|
||||||
release_value (val);
|
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.20090209.orig/gdb/gdbtypes.h 2009-02-09 15:51:57.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081128/gdb/gdbtypes.h 2008-12-03 00:00:08.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
|
@@ -70,7 +70,22 @@ enum type_code
|
||||||
TYPE_CODE_UNION, /* C union or Pascal variant part */
|
TYPE_CODE_UNION, /* C union or Pascal variant part */
|
||||||
TYPE_CODE_ENUM, /* Enumeration type */
|
TYPE_CODE_ENUM, /* Enumeration type */
|
||||||
@ -104,11 +104,11 @@ Index: gdb-6.8.50.20081128/gdb/gdbtypes.h
|
|||||||
TYPE_CODE_INT, /* Integer type */
|
TYPE_CODE_INT, /* Integer type */
|
||||||
|
|
||||||
/* Floating type. This is *NOT* a complex type. Beware, there are parts
|
/* 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.20090209.orig/gdb/doc/gdb.texinfo 2009-02-09 16:02:42.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081128/gdb/doc/gdb.texinfo 2008-12-03 00:00:08.000000000 +0100
|
+++ gdb-6.8.50.20090209/gdb/doc/gdb.texinfo 2009-02-09 16:04:10.000000000 +0100
|
||||||
@@ -3479,6 +3479,18 @@ This command prints a list of watchpoint
|
@@ -3480,6 +3480,18 @@ This command prints a list of watchpoint
|
||||||
it is the same as @code{info break} (@pxref{Set Breaks}).
|
it is the same as @code{info break} (@pxref{Set Breaks}).
|
||||||
@end table
|
@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
|
@value{GDBN} sets a @dfn{hardware watchpoint} if possible. Hardware
|
||||||
watchpoints execute very quickly, and the debugger reports a change in
|
watchpoints execute very quickly, and the debugger reports a change in
|
||||||
value at the exact instruction where the change occurs. If @value{GDBN}
|
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.20090209.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/gdb/testsuite/gdb.base/watchpoint.c 2009-02-09 16:04:10.000000000 +0100
|
||||||
@@ -40,6 +40,7 @@ struct foo struct1, struct2, *ptr1, *ptr
|
@@ -40,6 +40,7 @@ struct foo struct1, struct2, *ptr1, *ptr
|
||||||
int doread = 0;
|
int doread = 0;
|
||||||
|
|
||||||
@ -150,10 +150,10 @@ Index: gdb-6.8.50.20081128/gdb/testsuite/gdb.base/watchpoint.c
|
|||||||
}
|
}
|
||||||
|
|
||||||
int main ()
|
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.20090209.orig/gdb/testsuite/gdb.base/watchpoint.exp 2009-01-03 06:58:03.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081128/gdb/testsuite/gdb.base/watchpoint.exp 2008-12-03 00:01:07.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 {} {
|
@@ -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 {} {
|
proc test_inaccessible_watchpoint {} {
|
||||||
global gdb_prompt
|
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 "watch *global_ptr" ".*atchpoint \[0-9\]+: \\*global_ptr"
|
||||||
- gdb_test "next" ".*global_ptr = buf.*"
|
- gdb_test "next" ".*global_ptr = buf.*"
|
||||||
+ gdb_test "set \$global_ptr_breakpoint_number = \$bpnum" ""
|
+ 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" {
|
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 $" {
|
-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.
|
# 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"
|
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
|
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
|
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
|
--- 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.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
|
+++ 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
|
@@ -1201,6 +1201,8 @@ clear_proceed_status_thread (struct thre
|
||||||
|
|
||||||
/* Discard any remaining commands or status from previous stop. */
|
/* Discard any remaining commands or status from previous stop. */
|
||||||
@ -606,6 +622,24 @@ Index: gdb-6.8.50.20081214/gdb/infrun.c
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int
|
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
|
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
|
--- 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
|
/* Return the number of hidden functions inlined into the current
|
||||||
frame. */
|
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.
|
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.20090209.orig/gdb/NEWS 2009-02-07 16:00:57.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081214/gdb/NEWS 2008-12-14 15:31:03.000000000 +0100
|
+++ gdb-6.8.50.20090209/gdb/NEWS 2009-02-09 16:06:54.000000000 +0100
|
||||||
@@ -26,6 +26,9 @@ completions will be "f1" and "f2".
|
@@ -1,6 +1,11 @@
|
||||||
operators when expanding macros. It also supports variable-arity
|
What has changed in GDB?
|
||||||
macros.
|
(Organized release by release)
|
||||||
|
|
||||||
|
+*** Fedora changes
|
||||||
|
+
|
||||||
+* Inlined functions are now supported. They show up in backtraces, and
|
+* Inlined functions are now supported. They show up in backtraces, and
|
||||||
+the "step", "next", and "finish" commands handle them automatically.
|
+the "step", "next", and "finish" commands handle them automatically.
|
||||||
+
|
+
|
||||||
* New remote packets
|
*** Changes since GDB 6.8
|
||||||
|
|
||||||
qSearch:memory:
|
* GDB now supports automatic retrieval of shared library files from
|
||||||
Index: gdb-6.8.50.20081214/gdb/block.c
|
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.20090209.orig/gdb/block.c 2009-01-03 06:57:50.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081214/gdb/block.c 2008-12-14 15:31:03.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
|
@@ -47,8 +47,16 @@ contained_in (const struct block *a, con
|
||||||
{
|
{
|
||||||
if (!a || !b)
|
if (!a || !b)
|
||||||
@ -65,10 +67,10 @@ Index: gdb-6.8.50.20081214/gdb/block.c
|
|||||||
/* Return the blockvector immediately containing the innermost lexical
|
/* Return the blockvector immediately containing the innermost lexical
|
||||||
block containing the specified pc value and section, or 0 if there
|
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
|
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.20090209.orig/gdb/block.h 2009-01-03 06:57:50.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081214/gdb/block.h 2008-12-14 15:31:03.000000000 +0100
|
+++ gdb-6.8.50.20090209/gdb/block.h 2009-02-09 16:06:00.000000000 +0100
|
||||||
@@ -65,7 +65,7 @@ struct block
|
@@ -65,7 +65,7 @@ struct block
|
||||||
CORE_ADDR endaddr;
|
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 int contained_in (const struct block *, const struct block *);
|
||||||
|
|
||||||
extern struct blockvector *blockvector_for_pc (CORE_ADDR, 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.20090209.orig/gdb/blockframe.c 2009-01-03 06:57:50.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081214/gdb/blockframe.c 2008-12-14 15:31:03.000000000 +0100
|
+++ gdb-6.8.50.20090209/gdb/blockframe.c 2009-02-09 16:06:00.000000000 +0100
|
||||||
@@ -36,6 +36,7 @@
|
@@ -36,6 +36,7 @@
|
||||||
#include "command.h"
|
#include "command.h"
|
||||||
#include "gdbcmd.h"
|
#include "gdbcmd.h"
|
||||||
@ -159,11 +161,11 @@ Index: gdb-6.8.50.20081214/gdb/blockframe.c
|
|||||||
return frame;
|
return frame;
|
||||||
|
|
||||||
frame = get_prev_frame (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.20090209.orig/gdb/breakpoint.c 2009-02-09 16:04:10.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081214/gdb/breakpoint.c 2008-12-14 15:31:03.000000000 +0100
|
+++ gdb-6.8.50.20090209/gdb/breakpoint.c 2009-02-09 16:06:00.000000000 +0100
|
||||||
@@ -2572,19 +2572,21 @@ watchpoint_check (void *p)
|
@@ -2615,19 +2615,21 @@ watchpoint_check (void *p)
|
||||||
within_current_scope = 1;
|
within_current_scope = 1;
|
||||||
else
|
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_function_epilogue_p() returns a non-zero value if we're still
|
||||||
in the function but the stack frame has already been invalidated.
|
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()
|
that the watchpoint frame couldn't be found by frame_find_by_id()
|
||||||
because the current PC is currently in an epilogue. Calling
|
because the current PC is currently in an epilogue. Calling
|
||||||
gdbarch_in_function_epilogue_p() also when fr == NULL fixes that. */
|
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
|
/* If we end up stopping, the current frame will get selected
|
||||||
in normal_stop. So this call to select_frame won't affect
|
in normal_stop. So this call to select_frame won't affect
|
||||||
the user. */
|
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;
|
struct breakpoint *b = bl->owner;
|
||||||
|
|
||||||
if (frame_id_p (b->frame_id)
|
if (frame_id_p (b->frame_id)
|
||||||
@ -215,7 +217,7 @@ Index: gdb-6.8.50.20081214/gdb/breakpoint.c
|
|||||||
bs->stop = 0;
|
bs->stop = 0;
|
||||||
else if (bs->stop)
|
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)
|
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 ());
|
select_frame (get_current_frame ());
|
||||||
value_is_zero
|
value_is_zero
|
||||||
= catch_errors (breakpoint_cond_eval, (bl->cond),
|
= 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)
|
enum bptype type)
|
||||||
{
|
{
|
||||||
struct breakpoint *b;
|
struct breakpoint *b;
|
||||||
@ -242,7 +244,7 @@ Index: gdb-6.8.50.20081214/gdb/breakpoint.c
|
|||||||
b = set_raw_breakpoint (sal, type);
|
b = set_raw_breakpoint (sal, type);
|
||||||
b->enable_state = bp_enabled;
|
b->enable_state = bp_enabled;
|
||||||
b->disposition = disp_donttouch;
|
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 block *exp_valid_block;
|
||||||
struct value *val, *mark, *val_chain;
|
struct value *val, *mark, *val_chain;
|
||||||
struct frame_info *frame;
|
struct frame_info *frame;
|
||||||
@ -250,7 +252,7 @@ Index: gdb-6.8.50.20081214/gdb/breakpoint.c
|
|||||||
char *exp_start = NULL;
|
char *exp_start = NULL;
|
||||||
char *exp_end = NULL;
|
char *exp_end = NULL;
|
||||||
char *tok, *id_tok_start, *end_tok;
|
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;
|
bp_type = bp_watchpoint;
|
||||||
|
|
||||||
frame = block_innermost_frame (exp_valid_block);
|
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. */
|
/* 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 symtabs_and_lines sals;
|
||||||
struct symtab_and_line sal;
|
struct symtab_and_line sal;
|
||||||
struct frame_info *frame = get_selected_frame (NULL);
|
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 *breakpoint;
|
||||||
struct breakpoint *breakpoint2 = NULL;
|
struct breakpoint *breakpoint2 = NULL;
|
||||||
struct cleanup *old_chain;
|
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. */
|
we don't specify a frame at which we need to stop. */
|
||||||
breakpoint = set_momentary_breakpoint (sal, null_frame_id, bp_until);
|
breakpoint = set_momentary_breakpoint (sal, null_frame_id, bp_until);
|
||||||
else
|
else
|
||||||
@ -340,10 +342,10 @@ Index: gdb-6.8.50.20081214/gdb/breakpoint.c
|
|||||||
bp_until);
|
bp_until);
|
||||||
make_cleanup_delete_breakpoint (breakpoint2);
|
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.20090209.orig/gdb/buildsym.c 2009-01-03 06:57:50.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081214/gdb/buildsym.c 2008-12-14 15:31:03.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
|
@@ -1159,6 +1159,12 @@ end_symtab (CORE_ADDR end_addr, struct o
|
||||||
struct symbol *sym;
|
struct symbol *sym;
|
||||||
struct dict_iterator iter;
|
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);
|
for (sym = dict_iterator_first (BLOCK_DICT (block), &iter);
|
||||||
sym != NULL;
|
sym != NULL;
|
||||||
sym = dict_iterator_next (&iter))
|
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.20090209.orig/gdb/doc/gdb.texinfo 2009-02-09 16:04:10.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081214/gdb/doc/gdb.texinfo 2008-12-14 15:31:03.000000000 +0100
|
+++ gdb-6.8.50.20090209/gdb/doc/gdb.texinfo 2009-02-09 16:06:00.000000000 +0100
|
||||||
@@ -147,6 +147,7 @@ software in general. We will miss him.
|
@@ -137,6 +137,7 @@ software in general. We will miss him.
|
||||||
* Stack:: Examining the stack
|
* Stack:: Examining the stack
|
||||||
* Source:: Examining source files
|
* Source:: Examining source files
|
||||||
* Data:: Examining data
|
* Data:: Examining data
|
||||||
@ -369,7 +371,7 @@ Index: gdb-6.8.50.20081214/gdb/doc/gdb.texinfo
|
|||||||
* Macros:: Preprocessor Macros
|
* Macros:: Preprocessor Macros
|
||||||
* Tracepoints:: Debugging remote targets non-intrusively
|
* Tracepoints:: Debugging remote targets non-intrusively
|
||||||
* Overlays:: Debugging programs that use overlays
|
* 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.
|
the compiler.
|
||||||
|
|
||||||
Programs that are to be shipped to your customers are compiled with
|
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
|
compilers are unable to handle the @samp{-g} and @samp{-O} options
|
||||||
together. Using those compilers, you cannot generate optimized
|
together. Using those compilers, you cannot generate optimized
|
||||||
executables containing debugging information.
|
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
|
without @samp{-O}, making it possible to debug optimized code. We
|
||||||
recommend that you @emph{always} use @samp{-g} whenever you compile a
|
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
|
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
|
Older versions of the @sc{gnu} C compiler permitted a variant option
|
||||||
@w{@samp{-gg}} for debugging information. @value{GDBN} no longer supports this
|
@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
|
$2 = (void *) 0x8049560
|
||||||
@end smallexample
|
@end smallexample
|
||||||
|
|
||||||
@ -510,10 +512,10 @@ Index: gdb-6.8.50.20081214/gdb/doc/gdb.texinfo
|
|||||||
@node Macros
|
@node Macros
|
||||||
@chapter C Preprocessor 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.20090209.orig/gdb/dwarf2loc.c 2009-02-09 15:38:54.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081214/gdb/dwarf2loc.c 2008-12-14 15:31:03.000000000 +0100
|
+++ gdb-6.8.50.20090209/gdb/dwarf2loc.c 2009-02-09 16:06:00.000000000 +0100
|
||||||
@@ -31,6 +31,7 @@
|
@@ -31,6 +31,7 @@
|
||||||
#include "regcache.h"
|
#include "regcache.h"
|
||||||
#include "objfiles.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
|
/* 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,
|
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.20090209.orig/gdb/dwarf2read.c 2009-02-09 16:03:46.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081214/gdb/dwarf2read.c 2008-12-14 15:31:03.000000000 +0100
|
+++ gdb-6.8.50.20090209/gdb/dwarf2read.c 2009-02-09 16:06:00.000000000 +0100
|
||||||
@@ -45,6 +45,7 @@
|
@@ -46,6 +46,7 @@
|
||||||
#include "hashtab.h"
|
#include "hashtab.h"
|
||||||
#include "command.h"
|
#include "command.h"
|
||||||
#include "gdbcmd.h"
|
#include "gdbcmd.h"
|
||||||
@ -546,7 +548,7 @@ Index: gdb-6.8.50.20081214/gdb/dwarf2read.c
|
|||||||
#include "addrmap.h"
|
#include "addrmap.h"
|
||||||
#include "top.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);
|
read_file_scope (die, cu);
|
||||||
break;
|
break;
|
||||||
case DW_TAG_subprogram:
|
case DW_TAG_subprogram:
|
||||||
@ -560,7 +562,7 @@ Index: gdb-6.8.50.20081214/gdb/dwarf2read.c
|
|||||||
break;
|
break;
|
||||||
case DW_TAG_lexical_block:
|
case DW_TAG_lexical_block:
|
||||||
case DW_TAG_try_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 lowpc;
|
||||||
CORE_ADDR highpc;
|
CORE_ADDR highpc;
|
||||||
struct die_info *child_die;
|
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));
|
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);
|
*spec_cu);
|
||||||
|
|
||||||
if (spec_attr == NULL)
|
if (spec_attr == NULL)
|
||||||
@ -597,7 +599,7 @@ Index: gdb-6.8.50.20081214/gdb/dwarf2read.c
|
|||||||
return NULL;
|
return NULL;
|
||||||
else
|
else
|
||||||
return follow_die_ref (die, spec_attr, spec_cu);
|
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 *attr = NULL;
|
||||||
struct attribute *attr2 = NULL;
|
struct attribute *attr2 = NULL;
|
||||||
CORE_ADDR baseaddr;
|
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));
|
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;
|
SYMBOL_TYPE (sym) = type;
|
||||||
else
|
else
|
||||||
SYMBOL_TYPE (sym) = die_type (die, cu);
|
SYMBOL_TYPE (sym) = die_type (die, cu);
|
||||||
@ -625,7 +627,7 @@ Index: gdb-6.8.50.20081214/gdb/dwarf2read.c
|
|||||||
if (attr)
|
if (attr)
|
||||||
{
|
{
|
||||||
int file_index = DW_UNSND (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);
|
add_symbol_to_list (sym, cu->list_in_scope);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -640,7 +642,7 @@ Index: gdb-6.8.50.20081214/gdb/dwarf2read.c
|
|||||||
case DW_TAG_variable:
|
case DW_TAG_variable:
|
||||||
/* Compilation with minimal debug info may result in variables
|
/* Compilation with minimal debug info may result in variables
|
||||||
with missing type entries. Change the misleading `void' type
|
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;
|
break;
|
||||||
case DW_TAG_formal_parameter:
|
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);
|
attr = dwarf2_attr (die, DW_AT_location, cu);
|
||||||
if (attr)
|
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.20090209.orig/gdb/frame-unwind.c 2009-01-03 06:57:51.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081214/gdb/frame-unwind.c 2008-12-14 15:31:03.000000000 +0100
|
+++ gdb-6.8.50.20090209/gdb/frame-unwind.c 2009-02-09 16:06:00.000000000 +0100
|
||||||
@@ -21,6 +21,7 @@
|
@@ -21,6 +21,7 @@
|
||||||
#include "frame.h"
|
#include "frame.h"
|
||||||
#include "frame-unwind.h"
|
#include "frame-unwind.h"
|
||||||
@ -680,10 +682,10 @@ Index: gdb-6.8.50.20081214/gdb/frame-unwind.c
|
|||||||
return table;
|
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.20090209.orig/gdb/frame.c 2009-02-09 15:48:46.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081214/gdb/frame.c 2008-12-14 15:31:03.000000000 +0100
|
+++ gdb-6.8.50.20090209/gdb/frame.c 2009-02-09 16:06:00.000000000 +0100
|
||||||
@@ -41,8 +41,14 @@
|
@@ -41,8 +41,14 @@
|
||||||
#include "objfiles.h"
|
#include "objfiles.h"
|
||||||
#include "exceptions.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)
|
get_frame_func (struct frame_info *this_frame)
|
||||||
{
|
{
|
||||||
struct frame_info *next_frame = this_frame->next;
|
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 *
|
static struct frame_info *
|
||||||
get_prev_frame_1 (struct frame_info *this_frame)
|
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 frame_id this_id;
|
||||||
struct gdbarch *gdbarch;
|
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->prev_p = 1;
|
||||||
this_frame->stop_reason = UNWIND_NO_REASON;
|
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
|
/* 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
|
unwind to the prev frame. Be careful to not apply this test to
|
||||||
the sentinel frame. */
|
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
|
if (this_frame->level > 0
|
||||||
&& gdbarch_pc_regnum (gdbarch) >= 0
|
&& gdbarch_pc_regnum (gdbarch) >= 0
|
||||||
&& get_frame_type (this_frame) == NORMAL_FRAME
|
&& get_frame_type (this_frame) == NORMAL_FRAME
|
||||||
@ -901,7 +903,7 @@ Index: gdb-6.8.50.20081214/gdb/frame.c
|
|||||||
{
|
{
|
||||||
int optimized, realnum, nrealnum;
|
int optimized, realnum, nrealnum;
|
||||||
enum lval_type lval, nlval;
|
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.
|
/* 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
|
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
|
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
|
the main function when we created the dummy frame, the dummy frame will
|
||||||
point inside the main function. */
|
point inside the main function. */
|
||||||
if (this_frame->level >= 0
|
if (this_frame->level >= 0
|
||||||
@ -928,7 +930,7 @@ Index: gdb-6.8.50.20081214/gdb/frame.c
|
|||||||
&& !backtrace_past_main
|
&& !backtrace_past_main
|
||||||
&& inside_main_func (this_frame))
|
&& inside_main_func (this_frame))
|
||||||
/* Don't unwind past main(). Note, this is done _before_ the
|
/* 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
|
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
|
stop at main, we should at least stop at the entry point of the
|
||||||
application. */
|
application. */
|
||||||
@ -940,7 +942,7 @@ Index: gdb-6.8.50.20081214/gdb/frame.c
|
|||||||
&& inside_entry_func (this_frame))
|
&& inside_entry_func (this_frame))
|
||||||
{
|
{
|
||||||
frame_debug_got_null_frame (this_frame, "inside entry func");
|
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
|
like a SIGSEGV or a dummy frame, and hence that NORMAL frames
|
||||||
will never unwind a zero PC. */
|
will never unwind a zero PC. */
|
||||||
if (this_frame->level > 0
|
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_type (get_next_frame (this_frame)) == NORMAL_FRAME
|
||||||
&& get_frame_pc (this_frame) == 0)
|
&& 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)
|
get_frame_pc (struct frame_info *frame)
|
||||||
{
|
{
|
||||||
gdb_assert (frame->next != NULL);
|
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. */
|
/* 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
|
We check the type of NEXT_FRAME first, since it is already
|
||||||
known; frame type is determined by the unwinder, and since
|
known; frame type is determined by the unwinder, and since
|
||||||
we have THIS_FRAME we've already selected an unwinder for
|
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
|
/* If FRAME is not the innermost frame, that normally means that
|
||||||
FRAME->pc points at the return instruction (which is *after* the
|
FRAME->pc points at the return instruction (which is *after* the
|
||||||
call instruction), and we want to get the line containing 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)
|
PC and such a PC indicates the current (rather than next)
|
||||||
instruction/line, consequently, for such cases, want to get the
|
instruction/line, consequently, for such cases, want to get the
|
||||||
line containing fi->pc. */
|
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
|
/* Per "frame.h", return the ``address'' of the frame. Code should
|
||||||
@@ -1747,7 +1875,7 @@ get_frame_type (struct frame_info *frame
|
Index: gdb-6.8.50.20090209/gdb/frame.h
|
||||||
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
|
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-6.8.50.20081214.orig/gdb/frame.h 2008-12-14 15:30:03.000000000 +0100
|
--- gdb-6.8.50.20090209.orig/gdb/frame.h 2009-02-05 18:28:20.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081214/gdb/frame.h 2008-12-14 15:31:03.000000000 +0100
|
+++ gdb-6.8.50.20090209/gdb/frame.h 2009-02-09 16:06:00.000000000 +0100
|
||||||
@@ -34,6 +34,9 @@
|
@@ -34,6 +34,9 @@
|
||||||
frame_unwind_WHAT...(): Unwind THIS frame's WHAT from the NEXT
|
frame_unwind_WHAT...(): Unwind THIS frame's WHAT from the NEXT
|
||||||
frame.
|
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.
|
/* In a signal handler, various OSs handle this in various ways.
|
||||||
The main thing is that the frame may be far from normal. */
|
The main thing is that the frame may be far from normal. */
|
||||||
SIGTRAMP_FRAME,
|
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. */
|
instead, since that avoids the bug. */
|
||||||
extern struct frame_id get_frame_id (struct frame_info *fi);
|
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);
|
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
|
/* Assuming that a frame is `normal', return its base-address, or 0 if
|
||||||
@@ -660,14 +679,6 @@ extern struct frame_info *deprecated_saf
|
Index: gdb-6.8.50.20090209/gdb/gdbthread.h
|
||||||
|
|
||||||
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
|
|
||||||
===================================================================
|
===================================================================
|
||||||
--- gdb-6.8.50.20081214.orig/gdb/gdbthread.h 2008-12-14 15:30:03.000000000 +0100
|
--- gdb-6.8.50.20090209.orig/gdb/gdbthread.h 2009-01-18 18:42:16.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081214/gdb/gdbthread.h 2008-12-14 15:31:03.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
|
@@ -83,6 +83,13 @@ struct thread_info
|
||||||
This is how we know when we step into a subroutine call, and how
|
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. */
|
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;
|
int current_line;
|
||||||
struct symtab *current_symtab;
|
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.20090209.orig/gdb/infcall.c 2009-01-19 20:05:00.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081214/gdb/infcall.c 2008-12-14 15:31:03.000000000 +0100
|
+++ gdb-6.8.50.20090209/gdb/infcall.c 2009-02-09 16:08:45.000000000 +0100
|
||||||
@@ -734,11 +734,8 @@ The program being debugged exited while
|
@@ -841,15 +841,8 @@ When the function is done executing, GDB
|
||||||
|
|
||||||
if (unwind_on_signal_p)
|
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
|
- /* We must get back to the frame we were before the
|
||||||
- dummy call. */
|
- 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
|
+ /* The user wants the context restored. Calling error will
|
||||||
+ run inf_status_cleanup, which does all the work. */
|
+ run inf_status_cleanup, which does all the work. */
|
||||||
|
|
||||||
/* FIXME: Insert a bunch of wrap_here; name can be very
|
/* FIXME: Insert a bunch of wrap_here; name can be very
|
||||||
long if it's a C++ name with arguments and stuff. */
|
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.20090209.orig/gdb/infcmd.c 2009-01-26 00:35:51.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081214/gdb/infcmd.c 2008-12-14 15:37:04.000000000 +0100
|
+++ gdb-6.8.50.20090209/gdb/infcmd.c 2009-02-09 16:06:00.000000000 +0100
|
||||||
@@ -52,6 +52,7 @@
|
@@ -52,6 +52,7 @@
|
||||||
#include "cli/cli-decode.h"
|
#include "cli/cli-decode.h"
|
||||||
#include "gdbthread.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: */
|
/* 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);
|
continue_1 (all_threads);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1195,7 +1177,7 @@ Index: gdb-6.8.50.20081214/gdb/infcmd.c
|
|||||||
/* Step until outside of current statement. */
|
/* Step until outside of current statement. */
|
||||||
|
|
||||||
static void
|
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. */
|
THREAD is set. */
|
||||||
struct thread_info *tp = inferior_thread ();
|
struct thread_info *tp = inferior_thread ();
|
||||||
clear_proceed_status ();
|
clear_proceed_status ();
|
||||||
@ -1216,7 +1198,7 @@ Index: gdb-6.8.50.20081214/gdb/infcmd.c
|
|||||||
|
|
||||||
frame = get_current_frame ();
|
frame = get_current_frame ();
|
||||||
tp->step_frame_id = get_frame_id (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 ();
|
clear_proceed_status ();
|
||||||
|
|
||||||
frame = get_current_frame ();
|
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
|
/* Step until either exited from this function or greater
|
||||||
than the current line (if in symbolic section) or pc (if
|
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;
|
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 */
|
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 ();
|
clear_proceed_status ();
|
||||||
|
|
||||||
@ -1270,11 +1252,11 @@ Index: gdb-6.8.50.20081214/gdb/infcmd.c
|
|||||||
/* Find the function we will return from. */
|
/* Find the function we will return from. */
|
||||||
|
|
||||||
function = find_pc_function (get_frame_pc (get_selected_frame (NULL)));
|
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.20090209.orig/gdb/inferior.h 2009-02-09 15:39:01.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081214/gdb/inferior.h 2008-12-14 15:31:03.000000000 +0100
|
+++ gdb-6.8.50.20090209/gdb/inferior.h 2009-02-09 16:06:00.000000000 +0100
|
||||||
@@ -249,6 +249,9 @@ extern void error_is_running (void);
|
@@ -259,6 +259,9 @@ extern void error_is_running (void);
|
||||||
/* Calls error_is_running if the current thread is running. */
|
/* Calls error_is_running if the current thread is running. */
|
||||||
extern void ensure_not_running (void);
|
extern void ensure_not_running (void);
|
||||||
|
|
||||||
@ -1284,19 +1266,19 @@ Index: gdb-6.8.50.20081214/gdb/inferior.h
|
|||||||
/* From infcmd.c */
|
/* From infcmd.c */
|
||||||
|
|
||||||
extern void tty_command (char *, int);
|
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.20090209.orig/gdb/infrun.c 2009-02-09 16:02:31.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081214/gdb/infrun.c 2008-12-14 15:31:03.000000000 +0100
|
+++ gdb-6.8.50.20090209/gdb/infrun.c 2009-02-09 16:09:19.000000000 +0100
|
||||||
@@ -45,6 +45,7 @@
|
@@ -48,6 +48,7 @@
|
||||||
#include "language.h"
|
|
||||||
#include "solib.h"
|
|
||||||
#include "main.h"
|
|
||||||
+#include "inline-frame.h"
|
|
||||||
|
|
||||||
#include "gdb_assert.h"
|
#include "gdb_assert.h"
|
||||||
#include "mi/mi-common.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 */
|
/* 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. */
|
/* 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;
|
step = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1314,7 +1296,7 @@ Index: gdb-6.8.50.20081214/gdb/infrun.c
|
|||||||
if (debug_displaced
|
if (debug_displaced
|
||||||
&& use_displaced_stepping (gdbarch)
|
&& use_displaced_stepping (gdbarch)
|
||||||
&& tp->trap_expected)
|
&& 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_start = 0;
|
||||||
tp->step_range_end = 0;
|
tp->step_range_end = 0;
|
||||||
tp->step_frame_id = null_frame_id;
|
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->step_over_calls = STEP_OVER_UNDEBUGGABLE;
|
||||||
tp->stop_requested = 0;
|
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 ();
|
init_infwait_state ();
|
||||||
|
|
||||||
displaced_step_clear ();
|
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;
|
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);
|
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);
|
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)
|
init_execution_control_state (struct execution_control_state *ecs)
|
||||||
{
|
{
|
||||||
ecs->random_signal = 0;
|
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
|
void
|
||||||
init_thread_stepping_state (struct thread_info *tss)
|
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
|
/* 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 ();
|
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
|
/* Given an execution control state that has been freshly filled in
|
||||||
by an event from the inferior, figure out what it means and take
|
by an event from the inferior, figure out what it means and take
|
||||||
appropriate action. */
|
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;
|
ecs->random_signal = 0;
|
||||||
stopped_by_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
|
if (ecs->event_thread->stop_signal == TARGET_SIGNAL_TRAP
|
||||||
&& ecs->event_thread->trap_expected
|
&& ecs->event_thread->trap_expected
|
||||||
&& gdbarch_single_step_through_delay_p (current_gdbarch)
|
&& 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->stop_signal != TARGET_SIGNAL_0
|
||||||
&& (ecs->event_thread->step_range_start <= stop_pc
|
&& (ecs->event_thread->step_range_start <= stop_pc
|
||||||
&& stop_pc < ecs->event_thread->step_range_end)
|
&& 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)
|
&& ecs->event_thread->step_resume_breakpoint == NULL)
|
||||||
{
|
{
|
||||||
/* The inferior is about to take a signal that will take it
|
/* 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
|
NOTE: frame_id_eq will never report two invalid frame IDs as
|
||||||
being equal, so to get into this block, both the current and
|
being equal, so to get into this block, both the current and
|
||||||
previous frame must have valid frame IDs. */
|
previous frame must have valid frame IDs. */
|
||||||
@ -1442,7 +1424,7 @@ Index: gdb-6.8.50.20081214/gdb/infrun.c
|
|||||||
|| execution_direction == EXEC_REVERSE))
|
|| execution_direction == EXEC_REVERSE))
|
||||||
{
|
{
|
||||||
CORE_ADDR real_stop_pc;
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1525,7 +1507,7 @@ Index: gdb-6.8.50.20081214/gdb/infrun.c
|
|||||||
if ((stop_pc == stop_pc_sal.pc)
|
if ((stop_pc == stop_pc_sal.pc)
|
||||||
&& (ecs->event_thread->current_line != stop_pc_sal.line
|
&& (ecs->event_thread->current_line != stop_pc_sal.line
|
||||||
|| ecs->event_thread->current_symtab != stop_pc_sal.symtab))
|
|| 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_start = stop_pc_sal.pc;
|
||||||
ecs->event_thread->step_range_end = stop_pc_sal.end;
|
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)
|
if (debug_infrun)
|
||||||
fprintf_unfiltered (gdb_stdlog, "infrun: keep going\n");
|
fprintf_unfiltered (gdb_stdlog, "infrun: keep going\n");
|
||||||
@@ -4203,17 +4311,6 @@ normal_stop (void)
|
@@ -4987,6 +5095,7 @@ struct inferior_status
|
||||||
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
|
|
||||||
CORE_ADDR step_range_start;
|
CORE_ADDR step_range_start;
|
||||||
CORE_ADDR step_range_end;
|
CORE_ADDR step_range_end;
|
||||||
struct frame_id step_frame_id;
|
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;
|
enum step_over_calls_kind step_over_calls;
|
||||||
CORE_ADDR step_resume_break_address;
|
CORE_ADDR step_resume_break_address;
|
||||||
int stop_after_trap;
|
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_start = tp->step_range_start;
|
||||||
inf_status->step_range_end = tp->step_range_end;
|
inf_status->step_range_end = tp->step_range_end;
|
||||||
inf_status->step_frame_id = tp->step_frame_id;
|
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->step_over_calls = tp->step_over_calls;
|
||||||
inf_status->stop_after_trap = stop_after_trap;
|
inf_status->stop_after_trap = stop_after_trap;
|
||||||
inf_status->stop_soon = inf->stop_soon;
|
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_start = inf_status->step_range_start;
|
||||||
tp->step_range_end = inf_status->step_range_end;
|
tp->step_range_end = inf_status->step_range_end;
|
||||||
tp->step_frame_id = inf_status->step_frame_id;
|
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;
|
tp->step_over_calls = inf_status->step_over_calls;
|
||||||
stop_after_trap = inf_status->stop_after_trap;
|
stop_after_trap = inf_status->stop_after_trap;
|
||||||
inf->stop_soon = inf_status->stop_soon;
|
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
|
--- /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 @@
|
@@ -0,0 +1,382 @@
|
||||||
+/* Inline frame unwinder for GDB.
|
+/* Inline frame unwinder for GDB.
|
||||||
+
|
+
|
||||||
@ -1965,10 +1929,10 @@ Index: gdb-6.8.50.20081214/gdb/inline-frame.c
|
|||||||
+
|
+
|
||||||
+ return inline_count;
|
+ 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
|
--- /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 @@
|
@@ -0,0 +1,62 @@
|
||||||
+/* Definitions for inline frame support.
|
+/* 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);
|
+int frame_inlined_callees (struct frame_info *this_frame);
|
||||||
+
|
+
|
||||||
+#endif /* !defined (INLINE_FRAME_H) */
|
+#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.20090209.orig/gdb/minsyms.c 2009-02-09 16:02:28.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081214/gdb/minsyms.c 2008-12-14 15:31:03.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
|
@@ -767,7 +767,7 @@ prim_record_minimal_symbol_and_info (con
|
||||||
|
|
||||||
if (msym_bunch_index == BUNCH_SIZE)
|
if (msym_bunch_index == BUNCH_SIZE)
|
||||||
@ -2045,10 +2009,10 @@ Index: gdb-6.8.50.20081214/gdb/minsyms.c
|
|||||||
msym_bunch_index = 0;
|
msym_bunch_index = 0;
|
||||||
new->next = msym_bunch;
|
new->next = msym_bunch;
|
||||||
msym_bunch = new;
|
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.20090209.orig/gdb/s390-tdep.c 2009-01-03 06:57:53.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081214/gdb/s390-tdep.c 2008-12-14 15:31:03.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
|
@@ -1182,6 +1182,7 @@ s390_prologue_frame_unwind_cache (struct
|
||||||
CORE_ADDR prev_sp;
|
CORE_ADDR prev_sp;
|
||||||
int frame_pointer;
|
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))
|
|| get_frame_type (get_next_frame (this_frame)) != NORMAL_FRAME))
|
||||||
{
|
{
|
||||||
/* See the comment in s390_in_function_epilogue_p on why this is
|
/* 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.20090209.orig/gdb/stack.c 2009-01-26 20:09:58.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081214/gdb/stack.c 2008-12-14 15:31:03.000000000 +0100
|
+++ gdb-6.8.50.20090209/gdb/stack.c 2009-02-09 16:06:00.000000000 +0100
|
||||||
@@ -45,6 +45,7 @@
|
@@ -45,6 +45,7 @@
|
||||||
#include "valprint.h"
|
#include "valprint.h"
|
||||||
#include "gdbthread.h"
|
#include "gdbthread.h"
|
||||||
@ -2200,7 +2164,7 @@ Index: gdb-6.8.50.20081214/gdb/stack.c
|
|||||||
{
|
{
|
||||||
printf_filtered (" called by frame at ");
|
printf_filtered (" called by frame at ");
|
||||||
fputs_filtered (paddress (get_frame_base (calling_frame_info)),
|
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))
|
if (print_block_frame_locals (block, frame, num_tabs, stream))
|
||||||
values_printed = 1;
|
values_printed = 1;
|
||||||
/* After handling the function's top-level block, stop. Don't
|
/* 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))
|
if (BLOCK_FUNCTION (block))
|
||||||
break;
|
break;
|
||||||
block = BLOCK_SUPERBLOCK (block);
|
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;
|
return;
|
||||||
|
|
||||||
/* After handling the function's top-level block, stop. Don't
|
/* 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))
|
if (BLOCK_FUNCTION (block))
|
||||||
break;
|
break;
|
||||||
block = BLOCK_SUPERBLOCK (block);
|
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.");
|
thisframe = get_selected_frame ("No selected frame.");
|
||||||
thisfun = get_frame_function (thisframe);
|
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,
|
/* Compute the return value. If the computation triggers an error,
|
||||||
let it bail. If the return type can't be handled, set
|
let it bail. If the return type can't be handled, set
|
||||||
RETURN_VALUE to NULL, and QUERY_PREFIX to an informational
|
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.20090209.orig/gdb/symtab.c 2009-02-09 16:02:29.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081214/gdb/symtab.c 2008-12-14 15:31:03.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
|
@@ -1373,10 +1373,13 @@ lookup_symbol_aux_local (const char *nam
|
||||||
sym = lookup_symbol_aux_block (name, linkage_name, block, domain);
|
sym = lookup_symbol_aux_block (name, linkage_name, block, domain);
|
||||||
if (sym != NULL)
|
if (sym != NULL)
|
||||||
@ -2407,7 +2371,7 @@ Index: gdb-6.8.50.20081214/gdb/symtab.c
|
|||||||
ALL_BLOCK_SYMBOLS (b, iter, sym)
|
ALL_BLOCK_SYMBOLS (b, iter, sym)
|
||||||
{
|
{
|
||||||
COMPLETION_LIST_ADD_SYMBOL (sym, sym_text, sym_text_len, text, word);
|
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. */
|
line mark the prologue -> body transition. */
|
||||||
if (sal.line >= prologue_sal.line)
|
if (sal.line >= prologue_sal.line)
|
||||||
break;
|
break;
|
||||||
@ -2433,10 +2397,10 @@ Index: gdb-6.8.50.20081214/gdb/symtab.c
|
|||||||
/* The case in which compiler's optimizer/scheduler has
|
/* The case in which compiler's optimizer/scheduler has
|
||||||
moved instructions into the prologue. We look ahead in
|
moved instructions into the prologue. We look ahead in
|
||||||
the function looking for address ranges whose
|
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.20090209.orig/gdb/symtab.h 2009-02-06 22:33:58.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081214/gdb/symtab.h 2008-12-14 15:31:03.000000000 +0100
|
+++ gdb-6.8.50.20090209/gdb/symtab.h 2009-02-09 16:06:00.000000000 +0100
|
||||||
@@ -556,9 +556,18 @@ struct symbol
|
@@ -556,9 +556,18 @@ struct symbol
|
||||||
|
|
||||||
unsigned is_argument : 1;
|
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_TYPE(symbol) (symbol)->type
|
||||||
#define SYMBOL_LINE(symbol) (symbol)->line
|
#define SYMBOL_LINE(symbol) (symbol)->line
|
||||||
#define SYMBOL_SYMTAB(symbol) (symbol)->symtab
|
#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.20090209.orig/gdb/testsuite/gdb.base/break.exp 2009-01-19 20:05:01.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/gdb/testsuite/gdb.base/break.exp 2009-02-09 16:06:00.000000000 +0100
|
||||||
@@ -880,6 +880,13 @@ gdb_expect {
|
@@ -880,6 +880,13 @@ gdb_expect {
|
||||||
# marker4() is defined at line 46 when compiled with -DPROTOTYPES
|
# marker4() is defined at line 46 when compiled with -DPROTOTYPES
|
||||||
pass "run until breakpoint set at small function, optimized file (line bp_location14)"
|
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 " {
|
-re ".*$gdb_prompt " {
|
||||||
fail "run until breakpoint set at small function, optimized file"
|
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.20090209.orig/gdb/testsuite/gdb.cp/annota2.exp 2009-01-03 06:58:04.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/gdb/testsuite/gdb.cp/annota2.exp 2009-02-09 16:06:00.000000000 +0100
|
||||||
@@ -119,10 +119,11 @@ gdb_expect {
|
@@ -119,10 +119,11 @@ gdb_expect {
|
||||||
# continue until exit
|
# continue until exit
|
||||||
# this will test:
|
# this will test:
|
||||||
@ -2502,10 +2466,10 @@ Index: gdb-6.8.50.20081214/gdb/testsuite/gdb.cp/annota2.exp
|
|||||||
{ pass "continue until exit" }
|
{ pass "continue until exit" }
|
||||||
-re ".*$gdb_prompt$" { fail "continue to exit" }
|
-re ".*$gdb_prompt$" { fail "continue to exit" }
|
||||||
timeout { fail "continue to exit (timeout)" }
|
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
|
--- /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 @@
|
@@ -0,0 +1,47 @@
|
||||||
+/* Copyright (C) 2008 Free Software Foundation, Inc.
|
+/* 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;
|
+ 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
|
--- /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 @@
|
@@ -0,0 +1,63 @@
|
||||||
+# Copyright 2008 Free Software Foundation, Inc.
|
+# 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 "info frame" ".*inlined into frame.*" "func1 inlined (3)"
|
||||||
+gdb_test "up" "#2 .*func2.*" "up from func1 (3)"
|
+gdb_test "up" "#2 .*func2.*" "up from func1 (3)"
|
||||||
+gdb_test "info frame" ".*inlined into frame.*" "func2 inlined (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
|
--- /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 @@
|
@@ -0,0 +1,85 @@
|
||||||
+/* Copyright (C) 2008 Free Software Foundation, Inc.
|
+/* 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;
|
+ 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
|
--- /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 @@
|
@@ -0,0 +1,279 @@
|
||||||
+# Copyright 2008 Free Software Foundation, Inc.
|
+# 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 "info frame" ".*inlined into frame.*" "outer_inline2 inlined"
|
||||||
+gdb_test "up" "#4 main.*" "up from outer_inline2"
|
+gdb_test "up" "#4 main.*" "up from outer_inline2"
|
||||||
+gdb_test "info frame" ".*\n caller of frame.*" "main not inlined"
|
+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
|
--- /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 @@
|
@@ -0,0 +1,52 @@
|
||||||
+/* Copyright (C) 2008 Free Software Foundation, Inc.
|
+/* 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;
|
+ 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
|
--- /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 @@
|
@@ -0,0 +1,118 @@
|
||||||
+# Copyright 2008 Free Software Foundation, Inc.
|
+# 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)"
|
+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
|
--- /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 @@
|
@@ -0,0 +1,36 @@
|
||||||
+/* Copyright (C) 2008 Free Software Foundation, Inc.
|
+/* 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 */
|
+ 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.20090209.orig/gdb/testsuite/lib/gdb.exp 2009-02-09 16:02:35.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/gdb/testsuite/lib/gdb.exp 2009-02-09 16:06:00.000000000 +0100
|
||||||
@@ -1471,6 +1471,37 @@ proc skip_hp_tests {} {
|
@@ -1471,6 +1471,37 @@ proc skip_hp_tests {} {
|
||||||
return $skip_hp
|
return $skip_hp
|
||||||
}
|
}
|
||||||
@ -3259,11 +3223,11 @@ Index: gdb-6.8.50.20081214/gdb/testsuite/lib/gdb.exp
|
|||||||
set compiler_info "unknown"
|
set compiler_info "unknown"
|
||||||
set gcc_compiled 0
|
set gcc_compiled 0
|
||||||
set hp_cc_compiler 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.20090209.orig/gdb/valops.c 2009-02-09 15:40:36.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081214/gdb/valops.c 2008-12-14 15:31:03.000000000 +0100
|
+++ gdb-6.8.50.20090209/gdb/valops.c 2009-02-09 16:06:00.000000000 +0100
|
||||||
@@ -1051,7 +1051,7 @@ value_of_variable (struct symbol *var, s
|
@@ -1074,7 +1074,7 @@ value_of_variable (struct symbol *var, s
|
||||||
frame = block_innermost_frame (b);
|
frame = block_innermost_frame (b);
|
||||||
if (!frame)
|
if (!frame)
|
||||||
{
|
{
|
||||||
@ -3272,11 +3236,11 @@ Index: gdb-6.8.50.20081214/gdb/valops.c
|
|||||||
&& SYMBOL_PRINT_NAME (BLOCK_FUNCTION (b)))
|
&& SYMBOL_PRINT_NAME (BLOCK_FUNCTION (b)))
|
||||||
error (_("No frame is currently executing in block %s."),
|
error (_("No frame is currently executing in block %s."),
|
||||||
SYMBOL_PRINT_NAME (BLOCK_FUNCTION (b)));
|
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.20090209.orig/gdb/Makefile.in 2009-02-09 16:02:35.000000000 +0100
|
||||||
+++ gdb-6.8.50.20081214/gdb/Makefile.in 2008-12-14 15:31:03.000000000 +0100
|
+++ gdb-6.8.50.20090209/gdb/Makefile.in 2009-02-09 16:06:00.000000000 +0100
|
||||||
@@ -630,6 +630,7 @@ SFILES = ada-exp.y ada-lang.c ada-typepr
|
@@ -634,6 +634,7 @@ SFILES = ada-exp.y ada-lang.c ada-typepr
|
||||||
inf-loop.c \
|
inf-loop.c \
|
||||||
infcall.c \
|
infcall.c \
|
||||||
infcmd.c inflow.c infrun.c \
|
infcmd.c inflow.c infrun.c \
|
||||||
@ -3284,7 +3248,7 @@ Index: gdb-6.8.50.20081214/gdb/Makefile.in
|
|||||||
interps.c \
|
interps.c \
|
||||||
jv-exp.y jv-lang.c jv-valprint.c jv-typeprint.c \
|
jv-exp.y jv-lang.c jv-valprint.c jv-typeprint.c \
|
||||||
language.c linespec.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 \
|
user-regs.o \
|
||||||
frame.o frame-unwind.o doublest.o \
|
frame.o frame-unwind.o doublest.o \
|
||||||
frame-base.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 \
|
gnu-v2-abi.o gnu-v3-abi.o cp-abi.o cp-support.o \
|
||||||
cp-namespace.o \
|
cp-namespace.o \
|
||||||
reggroups.o regset.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.20090209.orig/gdb/testsuite/gdb.opt/Makefile.in 2008-04-18 01:06:54.000000000 +0200
|
||||||
+++ gdb-6.8.50.20081214/gdb/testsuite/gdb.opt/Makefile.in 2008-12-14 15:31:03.000000000 +0100
|
+++ gdb-6.8.50.20090209/gdb/testsuite/gdb.opt/Makefile.in 2009-02-09 16:06:00.000000000 +0100
|
||||||
@@ -1,7 +1,7 @@
|
@@ -1,7 +1,7 @@
|
||||||
VPATH = @srcdir@
|
VPATH = @srcdir@
|
||||||
srcdir = @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.
|
# Set version to contents of gdb/version.in.
|
||||||
# NOTE: the FSF gdb versions are numbered N.M for official releases, like 6.3
|
# 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).
|
# 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.
|
# 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.
|
# `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+
|
License: GPLv3+
|
||||||
Group: Development/Debuggers
|
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
|
# Test sibling threads to set threaded watchpoints for x86 and x86-64
|
||||||
Patch145: gdb-6.3-threaded-watchpoints2-20050225.patch
|
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
|
# Fix printing of inherited members
|
||||||
Patch148: gdb-6.3-inheritance-20050324.patch
|
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).
|
# Fix resolving of variables at locations lists in prelinked libs (BZ 466901).
|
||||||
Patch348: gdb-6.8-bz466901-backtrace-full-prelinked.patch
|
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
|
BuildRequires: ncurses-devel texinfo gettext flex bison expat-devel
|
||||||
Requires: readline
|
Requires: readline
|
||||||
BuildRequires: readline-devel
|
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
|
%patch259 -p1
|
||||||
%patch142 -p1
|
%patch142 -p1
|
||||||
%patch145 -p1
|
%patch145 -p1
|
||||||
%patch147 -p1
|
|
||||||
%patch148 -p1
|
%patch148 -p1
|
||||||
%patch150 -p1
|
%patch150 -p1
|
||||||
%patch151 -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
|
%patch337 -p1
|
||||||
%patch343 -p1
|
%patch343 -p1
|
||||||
%patch348 -p1
|
%patch348 -p1
|
||||||
%patch349 -p1
|
|
||||||
%patch351 -p1
|
|
||||||
%patch124 -p1
|
%patch124 -p1
|
||||||
|
|
||||||
find -name "*.orig" | xargs rm -f
|
find -name "*.orig" | xargs rm -f
|
||||||
@ -834,6 +822,9 @@ fi
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%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
|
* Mon Feb 9 2009 Jan Kratochvil <jan.kratochvil@redhat.com> - 6.8.50.20081214-2
|
||||||
- Fix crash / implement `finish' into inlined functions (BZ 479781).
|
- Fix crash / implement `finish' into inlined functions (BZ 479781).
|
||||||
- Drop the gdb.threads/attach-into-signal.exp change as obsolete.
|
- Drop the gdb.threads/attach-into-signal.exp change as obsolete.
|
||||||
|
Loading…
Reference in New Issue
Block a user