SHA256
1
0
forked from pool/gdb
OBS User unknown 2008-09-12 23:16:14 +00:00 committed by Git OBS Bridge
parent 95f0a78342
commit 3fdbcb41f3
8 changed files with 6130 additions and 200 deletions

59
args-newline.diff Normal file
View File

@ -0,0 +1,59 @@
2008-09-12 Andreas Schwab <schwab@suse.de>
* infcmd.c (construct_inferior_arguments): Handle newlines
specially.
testsuite/:
* gdb.base/args.exp: Add tests for newlines.
--- gdb/infcmd.c.~1.211.~ 2008-09-12 11:12:15.000000000 +0200
+++ gdb/infcmd.c 2008-09-12 16:25:48.000000000 +0200
@@ -271,7 +271,7 @@ construct_inferior_arguments (struct gdb
/* We over-compute the size. It shouldn't matter. */
for (i = 0; i < argc; ++i)
- length += 2 * strlen (argv[i]) + 1 + 2 * (argv[i][0] == '\0');
+ length += 3 * strlen (argv[i]) + 1 + 2 * (argv[i][0] == '\0');
result = (char *) xmalloc (length);
out = result;
@@ -291,9 +291,21 @@ construct_inferior_arguments (struct gdb
{
for (cp = argv[i]; *cp; ++cp)
{
- if (strchr (special, *cp) != NULL)
- *out++ = '\\';
- *out++ = *cp;
+ if (*cp == '\n')
+ {
+ /* A newline cannot be quoted with a backslash (it
+ just disappears), only by putting it inside
+ quotes. */
+ *out++ = '\'';
+ *out++ = '\n';
+ *out++ = '\'';
+ }
+ else
+ {
+ if (strchr (special, *cp) != NULL)
+ *out++ = '\\';
+ *out++ = *cp;
+ }
}
}
}
--- gdb/testsuite/gdb.base/args.exp.~1.15.~ 2008-08-09 15:44:54.000000000 +0200
+++ gdb/testsuite/gdb.base/args.exp 2008-09-12 16:11:20.000000000 +0200
@@ -96,4 +96,12 @@ args_test "one empty (with single quotes
set GDBFLAGS "-nx --args $binfile 1 '' '' 3"
args_test "two empty (with single quotes)" {{1} {''} {''} {3}}
+# try with arguments containing literal newlines.
+
+set GDBFLAGS "-nx --args $binfile 1 {\n} 3"
+args_test "one newline" {{1} {\\n} {3}}
+
+set GDBFLAGS "-nx --args $binfile 1 {\n} {\n} 3"
+args_test "two newlines" {{1} {\\n} {\\n} {3}}
+
set GDBFLAGS $old_gdbflags

6012
cell-combined.diff Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:01f907a21d8743e4c263887137fc19d5bb5aa4211aa5f3220981d121eca20a72
size 15465207

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a111a5de16ce2b20aee06861152178301ebfac4112f87ccf9bfc9af92d1ac2fb
size 15498271

View File

@ -1,3 +1,9 @@
-------------------------------------------------------------------
Fri Sep 12 11:36:50 CEST 2008 - schwab@suse.de
- Update to head of trunk.
- Add Cell combined debugger patch.
-------------------------------------------------------------------
Thu Sep 4 11:30:34 CEST 2008 - schwab@suse.de

View File

@ -1,5 +1,5 @@
#
# spec file for package gdb (Version 6.8.50.20080904)
# spec file for package gdb (Version 6.8.50.20080912)
#
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
@ -36,12 +36,13 @@ Group: Development/Tools/Debuggers
AutoReqProv: on
PreReq: %{install_info_prereq}
Summary: The GNU Debugger
Version: 6.8.50.20080904
Version: 6.8.50.20080912
Release: 1
%define sss -cvs
Source: gdb-%{version}%{sss}.tar.bz2
Patch: cell-combined.diff
Patch1: find-pc-sect-line.diff
Patch2: warn.patch
Patch2: args-newline.diff
Patch3: readline-5.1-random.patch
Patch4: readnever.patch
Patch5: gstack.patch
@ -109,6 +110,7 @@ Authors:
%prep
%setup -q -n %{name}-%{version}%{sss}
%patch -p1
%patch1
%patch2
%patch3
@ -192,6 +194,9 @@ rm -rf $RPM_BUILD_ROOT
%endif
%changelog
* Fri Sep 12 2008 schwab@suse.de
- Update to head of trunk.
- Add Cell combined debugger patch.
* Thu Sep 04 2008 schwab@suse.de
- Update to head of trunk.
* Fri Aug 15 2008 schwab@suse.de

View File

@ -1,6 +1,6 @@
--- gdb/breakpoint.c
+++ gdb/breakpoint.c
@@ -4045,6 +4045,7 @@ describe_other_breakpoints (CORE_ADDR pc
@@ -4119,6 +4119,7 @@ describe_other_breakpoints (CORE_ADDR pc
printf_filtered (" (thread %d)", b->thread);
printf_filtered ("%s%s ",
((b->enable_state == bp_disabled ||
@ -8,7 +8,7 @@
b->enable_state == bp_call_disabled)
? " (disabled)"
: b->enable_state == bp_permanent
@@ -4120,6 +4121,7 @@ check_duplicates_for (CORE_ADDR address,
@@ -4194,6 +4195,7 @@ check_duplicates_for (CORE_ADDR address,
ALL_BP_LOCATIONS (b)
if (b->owner->enable_state != bp_disabled
&& b->owner->enable_state != bp_call_disabled
@ -16,7 +16,7 @@
&& b->enabled
&& !b->shlib_disabled
&& b->address == address /* address / overlay match */
@@ -4155,6 +4157,7 @@ check_duplicates_for (CORE_ADDR address,
@@ -4229,6 +4231,7 @@ check_duplicates_for (CORE_ADDR address,
{
if (b->owner->enable_state != bp_disabled
&& b->owner->enable_state != bp_call_disabled
@ -24,7 +24,7 @@
&& b->enabled && !b->shlib_disabled
&& b->address == address /* address / overlay match */
&& (!overlay_debugging || b->section == section)
@@ -4681,6 +4684,60 @@ disable_breakpoints_in_unloaded_shlib (s
@@ -4760,6 +4763,60 @@ disable_breakpoints_in_unloaded_shlib (s
}
}
@ -85,7 +85,7 @@
static void
create_fork_vfork_event_catchpoint (int tempflag, char *cond_string,
enum bptype bp_kind)
@@ -7432,6 +7489,7 @@ breakpoint_re_set_one (void *bint)
@@ -7555,6 +7612,7 @@ breakpoint_re_set_one (void *bint)
if (not_found
&& (b->condition_not_parsed
|| (b->loc && b->loc->shlib_disabled)
@ -95,7 +95,7 @@
--- gdb/breakpoint.h
+++ gdb/breakpoint.h
@@ -144,6 +144,7 @@ enum enable_state
@@ -142,6 +142,7 @@ enum enable_state
automatically enabled and reset when the call
"lands" (either completes, or stops at another
eventpoint). */
@ -103,7 +103,7 @@
bp_permanent /* There is a breakpoint instruction hard-wired into
the target's code. Don't try to write another
breakpoint instruction on top of it, or restore
@@ -827,6 +828,10 @@ extern void remove_thread_event_breakpoi
@@ -842,6 +843,10 @@ extern void remove_thread_event_breakpoi
extern void disable_breakpoints_in_shlibs (void);
@ -116,7 +116,7 @@
--- gdb/dwarf2read.c
+++ gdb/dwarf2read.c
@@ -1256,7 +1256,7 @@ dwarf2_build_psymtabs (struct objfile *o
@@ -1257,7 +1257,7 @@ dwarf2_build_psymtabs (struct objfile *o
else
dwarf2_per_objfile->loc_buffer = NULL;
@ -127,7 +127,7 @@
{
--- gdb/elfread.c
+++ gdb/elfread.c
@@ -678,7 +678,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,
set table to empty. MAINLINE is cleared so that *_read_psymtab
functions do not all also re-initialize the psymbol table. */
@ -138,7 +138,7 @@
mainline = 0;
--- gdb/infrun.c
+++ gdb/infrun.c
@@ -1806,6 +1806,11 @@ handle_inferior_event (struct execution_
@@ -1958,6 +1958,11 @@ handle_inferior_event (struct execution_
#endif
target_terminal_inferior ();
@ -161,7 +161,7 @@
/* Prototypes for local functions */
@@ -278,7 +280,16 @@ init_entry_point_info (struct objfile *o
@@ -271,7 +273,16 @@ init_entry_point_info (struct objfile *o
CORE_ADDR
entry_point_address (void)
{
@ -186,10 +186,10 @@
#include "target.h"
#include "inferior.h"
+#include "command.h"
#include "gdbthread.h"
#include "gdb_assert.h"
@@ -280,8 +281,6 @@ static char *debug_loader_name;
@@ -286,8 +287,6 @@ static CORE_ADDR main_lm_addr;
/* Local function prototypes */
@ -198,7 +198,7 @@
static CORE_ADDR bfd_lookup_symbol (bfd *, char *);
/*
@@ -387,6 +386,8 @@ scan_dyntag (int dyntag, bfd *abfd, CORE
@@ -524,6 +523,8 @@ scan_dyntag (int dyntag, bfd *abfd, CORE
Elf32_External_Dyn *x_dynp_32;
Elf64_External_Dyn *x_dynp_64;
struct bfd_section *sect;
@ -207,7 +207,7 @@
if (abfd == NULL)
return 0;
@@ -394,11 +395,20 @@ scan_dyntag (int dyntag, bfd *abfd, CORE
@@ -531,11 +532,20 @@ scan_dyntag (int dyntag, bfd *abfd, CORE
if (arch_size == -1)
return 0;
@ -228,16 +228,16 @@
/* Read in .dynamic from the BFD. We will get the actual value
from memory later. */
@@ -438,7 +448,7 @@ scan_dyntag (int dyntag, bfd *abfd, CORE
gdb_byte ptr_buf[8];
@@ -577,7 +587,7 @@ scan_dyntag (int dyntag, bfd *abfd, CORE
CORE_ADDR ptr_addr;
ptr_type = builtin_type (target_gdbarch)->builtin_data_ptr;
- ptr_addr = dyn_addr + (buf - bufstart) + arch_size / 8;
+ ptr_addr = relocated_dyn_addr + (buf - bufstart) + arch_size / 8;
if (target_read_memory (ptr_addr, ptr_buf, arch_size / 8) == 0)
dyn_ptr = extract_typed_address (ptr_buf,
builtin_type_void_data_ptr);
@@ -793,11 +803,55 @@ svr4_current_sos (void)
dyn_ptr = extract_typed_address (ptr_buf, ptr_type);
*ptr = dyn_ptr;
@@ -983,11 +993,55 @@ svr4_current_sos (void)
decide when to ignore it. */
if (IGNORE_FIRST_LINK_MAP_ENTRY (new) && ldsomap == 0)
{
@ -294,7 +294,7 @@
int errcode;
char *buffer;
@@ -804,10 +860,8 @@ svr4_current_sos (void)
@@ -1005,10 +1059,8 @@ svr4_current_sos (void)
}
xfree (buffer);
@ -307,7 +307,7 @@
free_so (new);
else
{
@@ -906,24 +960,6 @@ svr4_fetch_objfile_link_map (struct objf
@@ -1059,24 +1111,6 @@ svr4_fetch_objfile_link_map (struct objf
return 0;
}
@ -332,8 +332,8 @@
/* Return 1 if PC lies in the dynamic symbol resolution code of the
SVR4 run time loader. */
static CORE_ADDR interp_text_sect_low;
@@ -1466,6 +1502,8 @@ svr4_solib_create_inferior_hook (void)
while (stop_signal != TARGET_SIGNAL_TRAP);
@@ -1604,6 +1638,8 @@ svr4_solib_create_inferior_hook (void)
while (tp->stop_signal != TARGET_SIGNAL_TRAP);
stop_soon = NO_STOP_QUIETLY;
#endif /* defined(_SCO_DS) */
+
@ -343,7 +343,7 @@
static void
--- gdb/solib.c
+++ gdb/solib.c
@@ -411,15 +411,37 @@ symbol_add_stub (void *arg)
@@ -432,8 +432,22 @@ symbol_add_stub (void *arg)
/* Have we already loaded this shared object? */
ALL_OBJFILES (so->objfile)
{
@ -366,25 +366,26 @@
+ return 1;
}
/* Open a second BFD for this file. */
@@ -446,8 +460,15 @@ symbol_add_stub (void *arg)
sap = build_section_addr_info_from_section_table (so->sections,
so->sections_end);
- so->objfile = symbol_file_add (so->so_name, so->from_tty,
- sap, 0, OBJF_SHARED);
- so->objfile = symbol_file_add_from_bfd (abfd, so->from_tty,
- sap, 0, OBJF_SHARED);
+ if (so->main_p)
+ {
+ so->objfile = symbol_file_add (so->so_name, /*so->from_tty*/ 0,
+ sap, 1, 0);
+ so->objfile = symbol_file_add_from_bfd (abfd, 0, sap, 1, 0);
+ so->main_relocated = 1;
+ }
+ else
+ so->objfile = symbol_file_add (so->so_name, so->from_tty,
+ sap, 0, OBJF_SHARED);
+ so->objfile = symbol_file_add_from_bfd (abfd, so->from_tty,
+ sap, 0, OBJF_SHARED);
+
free_section_addr_info (sap);
return (1);
@@ -599,28 +621,7 @@ update_solib_list (int from_tty, struct
@@ -627,28 +648,7 @@ update_solib_list (int from_tty, struct
/* Fill in the rest of each of the `struct so_list' nodes. */
for (i = inferior; i; i = i->next)
{
@ -414,7 +415,7 @@
/* Notify any observer that the shared object has been
loaded now that we've added it to GDB's tables. */
@@ -716,6 +717,39 @@ solib_add (char *pattern, int from_tty,
@@ -744,6 +744,39 @@ solib_add (char *pattern, int from_tty,
}
}
@ -465,9 +466,9 @@
struct objfile *objfile; /* objfile for loaded lib */
struct section_table *sections;
struct section_table *sections_end;
@@ -130,6 +132,10 @@ struct so_list *master_so_list (void);
@@ -133,6 +135,10 @@ struct so_list *master_so_list (void);
/* Find solib binary file and open it. */
extern int solib_open (char *in_pathname, char **found_pathname);
extern bfd *solib_bfd_open (char *in_pathname);
+/* Add the list of sections in so_list to the target to_sections. */
+extern void add_to_target_sections (int, struct target_ops *,
@ -489,7 +490,7 @@
reinit_frame_cache ();
--- gdb/symfile.c
+++ gdb/symfile.c
@@ -779,7 +779,7 @@ syms_from_objfile (struct objfile *objfi
@@ -784,7 +784,7 @@ syms_from_objfile (struct objfile *objfi
/* Now either addrs or offsets is non-zero. */
@ -498,7 +499,7 @@
{
/* We will modify the main symbol table, make sure that all its users
will be cleaned up if an error occurs during symbol reading. */
@@ -807,7 +807,7 @@ syms_from_objfile (struct objfile *objfi
@@ -812,7 +812,7 @@ syms_from_objfile (struct objfile *objfi
We no longer warn if the lowest section is not a text segment (as
happens for the PA64 port. */
@ -507,7 +508,7 @@
{
asection *lower_sect;
asection *sect;
@@ -971,14 +971,14 @@ new_symfile_objfile (struct objfile *obj
@@ -918,14 +918,14 @@ new_symfile_objfile (struct objfile *obj
/* If this is the main symbol file we have to clean up all users of the
old main symbol file. Otherwise it is sufficient to fixup all the
breakpoints that may have been redefined by this symbol file. */
@ -524,7 +525,7 @@
{
breakpoint_re_set ();
}
@@ -1024,7 +1024,7 @@ symbol_file_add_with_addrs_or_offsets (b
@@ -971,7 +971,7 @@ symbol_file_add_with_addrs_or_offsets (b
interactively wiping out any existing symbols. */
if ((have_full_symbols () || have_partial_symbols ())
@ -533,7 +534,7 @@
&& from_tty
&& !query ("Load new symbol table from \"%s\"? ", name))
error (_("Not confirmed."));
@@ -1208,6 +1208,11 @@ symbol_file_clear (int from_tty)
@@ -1160,6 +1160,11 @@ symbol_file_clear (int from_tty)
symfile_objfile->name)
: !query (_("Discard symbol table? "))))
error (_("Not confirmed."));
@ -545,7 +546,7 @@
free_all_objfiles ();
/* solib descriptors may have handles to objfiles. Since their
@@ -2469,6 +2474,8 @@ reread_symbols (void)
@@ -2451,6 +2456,8 @@ reread_symbols (void)
/* Discard cleanups as symbol reading was successful. */
discard_cleanups (old_cleanups);

View File

@ -1,153 +0,0 @@
--- sim/common/gentmap.c
+++ sim/common/gentmap.c
@@ -2,6 +2,7 @@
#include <stdio.h>
#include <stdlib.h>
+#include <string.h>
struct tdefs {
char *symbol;
--- sim/ppc/debug.c
+++ sim/ppc/debug.c
@@ -29,6 +29,10 @@
#include <stdlib.h>
#endif
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
int ppc_trace[nr_trace_options];
typedef struct _trace_option_descriptor {
--- sim/ppc/ppc-instructions
+++ sim/ppc/ppc-instructions
@@ -3965,12 +3965,14 @@
fpscr_vxsnan | fpscr_vximz,
0, /*single?*/
0) /*negate?*/) {
+ union { double d; unsigned64 u; } tmp;
invalid_arithemetic_operation(processor, cia,
- (unsigned64*)&product, *frA, 0, *frC,
+ &tmp.u, *frA, 0, *frC,
0, /*instruction_is_frsp*/
0, /*instruction_is_convert_to_64bit*/
0, /*instruction_is_convert_to_32bit*/
0); /*single-precision*/
+ product = tmp.d;
}
else {
/*HACK!*/
@@ -4010,12 +4012,14 @@
fpscr_vxsnan | fpscr_vximz,
1, /*single?*/
0) /*negate?*/) {
+ union { double d; unsigned64 u; } tmp;
invalid_arithemetic_operation(processor, cia,
- (unsigned64*)&product, *frA, 0, *frC,
+ &tmp.u, *frA, 0, *frC,
0, /*instruction_is_frsp*/
0, /*instruction_is_convert_to_64bit*/
0, /*instruction_is_convert_to_32bit*/
0); /*single-precision*/
+ product = tmp.d;
}
else {
/*HACK!*/
@@ -4055,12 +4059,14 @@
fpscr_vxsnan | fpscr_vximz,
0, /*single?*/
0) /*negate?*/) {
+ union { double d; unsigned64 u; } tmp;
invalid_arithemetic_operation(processor, cia,
- (unsigned64*)&product, *frA, 0, *frC,
+ &tmp.u, *frA, 0, *frC,
0, /*instruction_is_frsp*/
0, /*instruction_is_convert_to_64bit*/
0, /*instruction_is_convert_to_32bit*/
0); /*single-precision*/
+ product = tmp.d;
}
else {
/*HACK!*/
@@ -4100,12 +4106,14 @@
fpscr_vxsnan | fpscr_vximz,
1, /*single?*/
0) /*negate?*/) {
+ union { double d; unsigned64 u; } tmp;
invalid_arithemetic_operation(processor, cia,
- (unsigned64*)&product, *frA, 0, *frC,
+ &tmp.u, *frA, 0, *frC,
0, /*instruction_is_frsp*/
0, /*instruction_is_convert_to_64bit*/
0, /*instruction_is_convert_to_32bit*/
0); /*single-precision*/
+ product = tmp.d;
}
else {
/*HACK!*/
@@ -4145,12 +4153,14 @@
fpscr_vxsnan | fpscr_vximz,
0, /*single?*/
0) /*negate?*/) {
+ union { double d; unsigned64 u; } tmp;
invalid_arithemetic_operation(processor, cia,
- (unsigned64*)&product, *frA, 0, *frC,
+ &tmp.u, *frA, 0, *frC,
0, /*instruction_is_frsp*/
0, /*instruction_is_convert_to_64bit*/
0, /*instruction_is_convert_to_32bit*/
0); /*single-precision*/
+ product = tmp.d;
}
else {
/*HACK!*/
@@ -4190,12 +4200,14 @@
fpscr_vxsnan | fpscr_vximz,
1, /*single?*/
0) /*negate?*/) {
+ union { double d; unsigned64 u; } tmp;
invalid_arithemetic_operation(processor, cia,
- (unsigned64*)&product, *frA, 0, *frC,
+ &tmp.u, *frA, 0, *frC,
0, /*instruction_is_frsp*/
0, /*instruction_is_convert_to_64bit*/
0, /*instruction_is_convert_to_32bit*/
0); /*single-precision*/
+ product = tmp.d;
}
else {
/*HACK!*/
@@ -4235,12 +4247,14 @@
fpscr_vxsnan | fpscr_vximz,
0, /*single?*/
0) /*negate?*/) {
+ union { double d; unsigned64 u; } tmp;
invalid_arithemetic_operation(processor, cia,
- (unsigned64*)&product, *frA, 0, *frC,
+ &tmp.u, *frA, 0, *frC,
0, /*instruction_is_frsp*/
0, /*instruction_is_convert_to_64bit*/
0, /*instruction_is_convert_to_32bit*/
0); /*single-precision*/
+ product = tmp.d;
}
else {
/*HACK!*/
@@ -4280,12 +4294,14 @@
fpscr_vxsnan | fpscr_vximz,
1, /*single?*/
0) /*negate?*/) {
+ union { double d; unsigned64 u; } tmp;
invalid_arithemetic_operation(processor, cia,
- (unsigned64*)&product, *frA, 0, *frC,
+ &tmp.u, *frA, 0, *frC,
0, /*instruction_is_frsp*/
0, /*instruction_is_convert_to_64bit*/
0, /*instruction_is_convert_to_32bit*/
0); /*single-precision*/
+ product = tmp.d;
}
else {
/*HACK!*/