rpms/gdb/F-12 gdb-bz595475-tui-layout.patch, NONE, 1.1 gdb-7.0-upstream.patch, 1.7, 1.8 gdb.spec, 1.439, 1.440
Jan Kratochvil
jkratoch at fedoraproject.org
Mon May 24 19:04:49 UTC 2010
Author: jkratoch
Update of /cvs/pkgs/rpms/gdb/F-12
In directory cvs01.phx2.fedoraproject.org:/tmp/cvs-serv27010
Modified Files:
gdb-7.0-upstream.patch gdb.spec
Added Files:
gdb-bz595475-tui-layout.patch
Log Message:
* Mon May 24 2010 Jan Kratochvil <jan.kratochvil at redhat.com> - 7.0.1-46.fc12
- Fix lock up on loops in the solib chain (BZ 593926).
- Import fix of TUI layout internal error (BZ 595475).
gdb-bz595475-tui-layout.patch:
gdb-7.1/gdb/testsuite/gdb.base/tui-layout.exp | 21 +++++++++++++++++++++
src/gdb/tui/tui-disasm.c | 3 ++-
src/gdb/tui/tui-layout.c | 3 ++-
3 files changed, 25 insertions(+), 2 deletions(-)
--- NEW FILE gdb-bz595475-tui-layout.patch ---
https://bugzilla.redhat.com/show_bug.cgi?id=586566
http://sourceware.org/ml/gdb-patches/2010-03/msg00746.html
http://sourceware.org/ml/gdb-patches/2010-05/msg00551.html
http://sourceware.org/ml/gdb-cvs/2010-03/msg00194.html
### src/gdb/ChangeLog 2010/03/19 22:00:16 1.11508
### src/gdb/ChangeLog 2010/03/20 05:17:10 1.11509
## -1,3 +1,9 @@
+2010-03-20 Daniel Jacobowitz <dan at codesourcery.com>
+
+ * tui/tui-disasm.c (tui_get_begin_asm_address): Default to
+ get_current_arch.
+ * tui/tui-layout.c (extract_display_start_addr): Likewise.
+
2010-03-19 Stan Shebs <stan at codesourcery.com>
* ax-gdb.c (gen_fetch): Handle bool.
--- src/gdb/tui/tui-disasm.c 2010/01/01 07:32:07 1.33
+++ src/gdb/tui/tui-disasm.c 2010/03/20 05:17:10 1.34
@@ -21,6 +21,7 @@
along with this program. If not, see <http://www.gnu.org/licenses/>. */
#include "defs.h"
+#include "arch-utils.h"
#include "symtab.h"
#include "breakpoint.h"
#include "frame.h"
@@ -330,7 +331,7 @@
{
struct tui_gen_win_info *locator;
struct tui_locator_element *element;
- struct gdbarch *gdbarch = NULL;
+ struct gdbarch *gdbarch = get_current_arch ();
CORE_ADDR addr;
locator = tui_locator_win_info_ptr ();
--- src/gdb/tui/tui-layout.c 2010/01/01 07:32:07 1.36
+++ src/gdb/tui/tui-layout.c 2010/03/20 05:17:10 1.37
@@ -21,6 +21,7 @@
along with this program. If not, see <http://www.gnu.org/licenses/>. */
#include "defs.h"
+#include "arch-utils.h"
#include "command.h"
#include "symtab.h"
#include "frame.h"
@@ -522,7 +523,7 @@
extract_display_start_addr (struct gdbarch **gdbarch_p, CORE_ADDR *addr_p)
{
enum tui_layout_type cur_layout = tui_current_layout ();
- struct gdbarch *gdbarch = NULL;
+ struct gdbarch *gdbarch = get_current_arch ();
CORE_ADDR addr;
CORE_ADDR pc;
struct symtab_and_line cursal = get_current_source_symtab_and_line ();
--- /dev/null 2010-05-24 04:43:32.632794021 +0200
+++ gdb-7.1/gdb/testsuite/gdb.base/tui-layout.exp 2010-05-24 20:13:30.000000000 +0200
@@ -0,0 +1,21 @@
+# Copyright 2010 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/>.
+
+set testfile tui-layout
+if { [prepare_for_testing ${testfile}.exp ${testfile} start.c] } {
+ return -1
+}
+
+gdb_test "layout asm"
gdb-7.0-upstream.patch:
gdb/dbxread.c | 9 +++-
src/gdb/config/djgpp/fnchange.lst | 6 +++
src/gdb/doc/gdb.texinfo | 13 +++++--
src/gdb/solib-svr4.c | 39 ++++++++++++++++-----
src/gdb/testsuite/gdb.base/condbreak.exp | 9 +++-
src/gdb/testsuite/gdb.base/default.exp | 7 +++
src/gdb/testsuite/gdb.base/solib-corrupted.exp | 46 +++++++++++++++++++++++++
src/gdb/testsuite/gdb.cp/expand-sals.cc | 2 -
src/gdb/testsuite/gdb.cp/expand-sals.exp | 6 ---
src/gdb/top.c | 18 ++++++++-
10 files changed, 130 insertions(+), 25 deletions(-)
Index: gdb-7.0-upstream.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/F-12/gdb-7.0-upstream.patch,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -p -r1.7 -r1.8
--- gdb-7.0-upstream.patch 1 Jan 2010 19:07:41 -0000 1.7
+++ gdb-7.0-upstream.patch 24 May 2010 19:04:48 -0000 1.8
@@ -227,3 +227,204 @@ http://sourceware.org/ml/gdb-cvs/2009-11
{
language_info (1); /* Print what changed. */
}
+
+
+
+https://bugzilla.redhat.com/show_bug.cgi?id=578136
+https://bugzilla.redhat.com/show_bug.cgi?id=593926
+http://sourceware.org/ml/gdb-patches/2010-04/msg00820.html
+http://sourceware.org/ml/gdb-cvs/2010-04/msg00240.html
+
+### src/gdb/ChangeLog 2010/04/23 18:09:16 1.11678
+### src/gdb/ChangeLog 2010/04/23 21:44:19 1.11679
+## -1,3 +1,14 @@
++2010-04-23 Daniel Jacobowitz <dan at codesourcery.com>
++ Paul Pluzhnikov <ppluzhnikov at google.com>
++ Jan Kratochvil <jan.kratochvil at redhat.com>
++
++ Fix deadlock on looped list of loaded shared objects.
++ * solib-svr4.c (LM_PREV): New function.
++ (IGNORE_FIRST_LINK_MAP_ENTRY): Use it.
++ (svr4_current_sos): Check for correct l_prev. New variables prev_lm
++ and next_lm. Clear prev_lm for solib_svr4_r_ldsomap.
++ * config/djgpp/fnchange.lst: Add translation for solib-corrupted.exp.
++
+ 2010-04-23 Doug Evans <dje at google.com>
+
+ * configure.ac (CONFIG_SRCS): Add py-auto-load.o even if not using
+--- src/gdb/solib-svr4.c 2010/03/11 22:07:02 1.130
++++ src/gdb/solib-svr4.c 2010/04/23 21:44:19 1.131
+@@ -272,6 +272,16 @@
+ }
+
+ static CORE_ADDR
++LM_PREV (struct so_list *so)
++{
++ struct link_map_offsets *lmo = svr4_fetch_link_map_offsets ();
++ struct type *ptr_type = builtin_type (target_gdbarch)->builtin_data_ptr;
++
++ return extract_typed_address (so->lm_info->lm + lmo->l_prev_offset,
++ ptr_type);
++}
++
++static CORE_ADDR
+ LM_NAME (struct so_list *so)
+ {
+ struct link_map_offsets *lmo = svr4_fetch_link_map_offsets ();
+@@ -284,16 +294,12 @@
+ static int
+ IGNORE_FIRST_LINK_MAP_ENTRY (struct so_list *so)
+ {
+- struct link_map_offsets *lmo = svr4_fetch_link_map_offsets ();
+- struct type *ptr_type = builtin_type (target_gdbarch)->builtin_data_ptr;
+-
+ /* Assume that everything is a library if the dynamic loader was loaded
+ late by a static executable. */
+ if (exec_bfd && bfd_get_section_by_name (exec_bfd, ".dynamic") == NULL)
+ return 0;
+
+- return extract_typed_address (so->lm_info->lm + lmo->l_prev_offset,
+- ptr_type) == 0;
++ return LM_PREV (so) == 0;
+ }
+
+ /* Per-inferior SVR4 specific data. */
+@@ -1101,7 +1107,7 @@
+ static struct so_list *
+ svr4_current_sos (void)
+ {
+- CORE_ADDR lm;
++ CORE_ADDR lm, prev_lm;
+ struct so_list *head = 0;
+ struct so_list **link_ptr = &head;
+ CORE_ADDR ldsomap = 0;
+@@ -1120,6 +1126,7 @@
+
+ /* Walk the inferior's link map list, and build our list of
+ `struct so_list' nodes. */
++ prev_lm = 0;
+ lm = solib_svr4_r_map (info);
+
+ while (lm)
+@@ -1127,6 +1134,7 @@
+ struct link_map_offsets *lmo = svr4_fetch_link_map_offsets ();
+ struct so_list *new = XZALLOC (struct so_list);
+ struct cleanup *old_chain = make_cleanup (xfree, new);
++ CORE_ADDR next_lm;
+
+ new->lm_info = xmalloc (sizeof (struct lm_info));
+ make_cleanup (xfree, new->lm_info);
+@@ -1138,14 +1146,21 @@
+
+ read_memory (lm, new->lm_info->lm, lmo->link_map_size);
+
+- lm = LM_NEXT (new);
++ next_lm = LM_NEXT (new);
++
++ if (LM_PREV (new) != prev_lm)
++ {
++ warning (_("Corrupted shared library list"));
++ free_so (new);
++ next_lm = 0;
++ }
+
+ /* For SVR4 versions, the first entry in the link map is for the
+ inferior executable, so we must ignore it. For some versions of
+ SVR4, it has no name. For others (Solaris 2.3 for example), it
+ does have a name, so we can no longer use a missing name to
+ decide when to ignore it. */
+- if (IGNORE_FIRST_LINK_MAP_ENTRY (new) && ldsomap == 0)
++ else if (IGNORE_FIRST_LINK_MAP_ENTRY (new) && ldsomap == 0)
+ {
+ info->main_lm_addr = new->lm_info->lm_addr;
+ free_so (new);
+@@ -1182,12 +1197,18 @@
+ }
+ }
+
++ prev_lm = lm;
++ lm = next_lm;
++
+ /* On Solaris, the dynamic linker is not in the normal list of
+ shared objects, so make sure we pick it up too. Having
+ symbol information for the dynamic linker is quite crucial
+ for skipping dynamic linker resolver code. */
+ if (lm == 0 && ldsomap == 0)
+- lm = ldsomap = solib_svr4_r_ldsomap (info);
++ {
++ lm = ldsomap = solib_svr4_r_ldsomap (info);
++ prev_lm = 0;
++ }
+
+ discard_cleanups (old_chain);
+ }
+--- src/gdb/config/djgpp/fnchange.lst 2010/04/09 15:15:05 1.112
++++ src/gdb/config/djgpp/fnchange.lst 2010/04/23 21:44:19 1.113
+@@ -397,6 +397,7 @@
+ @V@/gdb/testsuite/gdb.base/siginfo-obj.c @V@/gdb/testsuite/gdb.base/si-obj.c
+ @V@/gdb/testsuite/gdb.base/siginfo-addr.exp @V@/gdb/testsuite/gdb.base/si-addr.exp
+ @V@/gdb/testsuite/gdb.base/siginfo-obj.exp @V@/gdb/testsuite/gdb.base/si-obj.exp
++ at V@/gdb/testsuite/gdb.base/solib-corrupted.exp @V@/gdb/testsuite/gdb.base/so-crptd.exp
+ @V@/gdb/testsuite/gdb.base/solib-disc.c @V@/gdb/testsuite/gdb.base/so-disc.c
+ @V@/gdb/testsuite/gdb.base/solib-display-lib.c @V@/gdb/testsuite/gdb.base/so-displib.c
+ @V@/gdb/testsuite/gdb.base/solib-display-main.c @V@/gdb/testsuite/gdb.base/so-dispmain.c
+### src/gdb/testsuite/ChangeLog 2010/04/23 18:03:31 1.2252
+### src/gdb/testsuite/ChangeLog 2010/04/23 21:44:20 1.2253
+## -1,3 +1,8 @@
++2010-04-23 Jan Kratochvil <jan.kratochvil at redhat.com>
++
++ Fix deadlock on looped list of loaded shared objects.
++ * gdb.base/solib-corrupted.exp: New.
++
+ 2010-04-23 Doug Evans <dje at google.com>
+
+ * gdb.python/py-section-script.c: New file.
+--- src/gdb/testsuite/gdb.base/solib-corrupted.exp
++++ src/gdb/testsuite/gdb.base/solib-corrupted.exp 2010-05-24 18:00:52.057995000 +0000
+@@ -0,0 +1,46 @@
++# Copyright 2010 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/>.
++
++set testfile "solib-corrupted"
++set srcfile start.c
++
++if { [prepare_for_testing ${testfile}.exp ${testfile} ${srcfile}] } {
++ untested ${testfile}.exp
++ return -1
++}
++
++if ![runto_main] {
++ fail "Can't run to main"
++ return
++}
++
++gdb_test "info sharedlibrary" "" "normal list"
++
++# GDB checks there for matching L_PREV.
++set test "make solibs looping"
++gdb_test_multiple "p/x _r_debug->r_map->l_next = _r_debug->r_map" $test {
++ -re "(No symbol \"_r_debug\" in current context\\.|Attempt to extract a component of a value that is not a structure pointer\\.)\r\n$gdb_prompt $" {
++ # glibc debug info is not available and it is too difficult to find and
++ # parse it from this testcase without the gdb supporting functions.
++ verbose -log "no _r_debug symbol has been found"
++ xfail $test
++ untested ${testfile}.exp
++ return
++ }
++ -re " = 0x\[0-9a-f\]+\r\n$gdb_prompt $" {
++ pass $test
++ }
++}
++gdb_test "info sharedlibrary" "warning: Corrupted shared library list\r\n.*" "corrupted list"
Index: gdb.spec
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/F-12/gdb.spec,v
retrieving revision 1.439
retrieving revision 1.440
diff -u -p -r1.439 -r1.440
--- gdb.spec 26 Apr 2010 00:55:13 -0000 1.439
+++ gdb.spec 24 May 2010 19:04:48 -0000 1.440
@@ -36,7 +36,7 @@ Version: 7.0.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.
-Release: 45%{?_with_upstream:.upstream}%{dist}
+Release: 46%{?_with_upstream:.upstream}%{dist}
License: GPLv3+
Group: Development/Debuggers
@@ -497,6 +497,9 @@ Patch450: gdb-bz582052-libstdc++-compat.
# Fix crash when using GNU IFUNC call from breakpoint condition.
Patch454: gdb-bz539590-gnu-ifunc-fix-cond.patch
+# Import fix of TUI layout internal error (BZ 595475).
+Patch462: gdb-bz595475-tui-layout.patch
+
BuildRequires: ncurses-devel%{?_isa} texinfo gettext flex bison expat-devel%{?_isa}
Requires: readline%{?_isa}
BuildRequires: readline-devel%{?_isa}
@@ -767,6 +770,7 @@ rm -f gdb/jv-exp.c gdb/m2-exp.c gdb/objc
%patch438 -p1
%patch450 -p1
%patch454 -p1
+%patch462 -p1
# Always verify their applicability.
%patch393 -p1
%patch335 -p1
@@ -1092,6 +1096,10 @@ fi
%endif
%changelog
+* Mon May 24 2010 Jan Kratochvil <jan.kratochvil at redhat.com> - 7.0.1-46.fc12
+- Fix lock up on loops in the solib chain (BZ 593926).
+- Import fix of TUI layout internal error (BZ 595475).
+
* Mon Apr 26 2010 Jan Kratochvil <jan.kratochvil at redhat.com> - 7.0.1-45.fc12
- Fix crash when using GNU IFUNC call from breakpoint condition.
More information about the scm-commits
mailing list