rpms/gdb/devel gdb-archer.patch, 1.26, 1.27 gdb-bz515434-qsort_cmp.patch, 1.2, 1.3 gdb.spec, 1.380, 1.381
Jan Kratochvil
jkratoch at fedoraproject.org
Tue Sep 1 13:19:03 UTC 2009
- Previous message (by thread): rpms/net-tools/devel net-tools-1.60-avoid-name-resolution.patch, NONE, 1.1 net-tools-1.60-continous-flush-stdout.patch, NONE, 1.1 net-tools-1.60-debug-fix.patch, NONE, 1.1 net-tools-1.60-ib-warning.patch, NONE, 1.1 net-tools-1.60-man-obsolete.patch, NONE, 1.1 .cvsignore, 1.11, 1.12 net-tools.spec, 1.100, 1.101 sources, 1.11, 1.12
- Next message (by thread): rpms/beacon/devel beacon.spec, NONE, 1.1 httpd-beacon.conf, NONE, 1.1 import.log, NONE, 1.1 .cvsignore, 1.1, 1.2 sources, 1.1, 1.2
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: jkratoch
Update of /cvs/pkgs/rpms/gdb/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv16655
Modified Files:
gdb-archer.patch gdb-bz515434-qsort_cmp.patch gdb.spec
Log Message:
* Tue Sep 1 2009 Jan Kratochvil <jan.kratochvil at redhat.com> - 6.8.50.20090818-7
- archer-jankratochvil-fedora12 commit: d25596676e8811b03f8c9aba6bbd04ebaa9ff5db
- [call-frame-cfa] Fix parsing CFA-relative frames (BZ 516627, Tom Tromey).
- [vla] variable length Fortran strings for -O -g code (part of BZ 508406, me).
- [python] varobj + general fixes (Tom Tromey).
gdb-archer.patch:
Makefile.in | 95
NEWS | 7
ada-lang.c | 43
amd64-linux-nat.c | 45
block.c | 24
block.h | 12
breakpoint.c | 137 -
breakpoint.h | 3
c-exp.y | 252 +-
c-lang.c | 6
c-typeprint.c | 47
cli/cli-cmds.c | 72
coffread.c | 3
config.in | 8
config/i386/nm-i386.h | 125 +
config/i386/nm-linux64.h | 54
config/mips/nm-irix5.h | 44
configure | 79
configure.ac | 47
cp-name-parser.y | 5
cp-namespace.c | 245 +
cp-support.c | 88
cp-support.h | 49
dbxread.c | 1
doc/gdb.texinfo | 504 +++-
doc/gdbint.texinfo | 62
doc/observer.texi | 5
dwarf2-frame.c | 30
dwarf2-frame.h | 4
dwarf2expr.c | 86
dwarf2expr.h | 68
dwarf2loc.c | 368 ++
dwarf2loc.h | 6
dwarf2read.c | 1863 ++++++++++-----
elfread.c | 11
eval.c | 170 +
expression.h | 11
f-exp.y | 4
f-lang.c | 457 ---
f-lang.h | 45
f-typeprint.c | 36
f-valprint.c | 267 --
findcmd.c | 111
findvar.c | 126 -
frame.c | 19
frame.h | 6
gdbinit.in | 10
gdbserver/linux-i386-low.c | 210 +
gdbserver/linux-x86-64-low.c | 184 +
gdbthread.h | 3
gdbtypes.c | 596 ++++
gdbtypes.h | 146 +
gnu-v3-abi.c | 18
gnulib/Makefile.in | 4
i386-linux-nat.c | 47
i386-nat.c | 49
i386-nat.h | 17
infrun.c | 8
jv-lang.c | 1
language.h | 1
linespec.c | 62
linux-nat.c | 88
linux-nat.h | 6
m2-lang.c | 1
machoread.c | 1
main.c | 80
maint.c | 8
mdebugread.c | 2
mi/mi-cmd-var.c | 170 -
mi/mi-cmds.c | 2
mi/mi-cmds.h | 2
mi/mi-main.c | 5
mipsread.c | 1
objfiles.c | 21
objfiles.h | 21
parse.c | 154 +
parser-defs.h | 25
ppc-linux-nat.c | 19
printcmd.c | 90
python/lib/gdb/FrameIterator.py | 33
python/lib/gdb/FrameWrapper.py | 112
python/lib/gdb/__init__.py | 19
python/lib/gdb/backtrace.py | 42
python/lib/gdb/command/__init__.py | 1
python/lib/gdb/command/alias.py | 59
python/lib/gdb/command/backtrace.py | 106
python/lib/gdb/command/ignore_errors.py | 37
python/lib/gdb/command/pahole.py | 75
python/lib/gdb/command/require.py | 57
python/lib/gdb/command/save_breakpoints.py | 65
python/lib/gdb/command/upto.py | 129 +
python/lib/gdb/function/__init__.py | 1
python/lib/gdb/function/caller_is.py | 58
python/lib/gdb/function/in_scope.py | 47
python/python-block.c | 265 ++
python/python-breakpoint.c | 665 +++++
python/python-cmd.c | 17
python/python-frame.c | 116
python/python-hooks.c | 50
python/python-inferior.c | 926 +++++++
python/python-infthread.c | 285 ++
python/python-internal.h | 69
python/python-membuf.c | 268 ++
python/python-param.c | 606 ++++
python/python-prettyprint.c | 21
python/python-symbol.c | 336 ++
python/python-symtab.c | 322 ++
python/python-type.c | 170 +
python/python-utils.c | 46
python/python-value.c | 67
python/python.c | 384 +++
python/python.h | 4
scm-lang.c | 1
scm-valprint.c | 4
solib-darwin.c | 1
solib-spu.c | 7
solib-svr4.c | 4
solib.c | 3
solist.h | 2
somread.c | 1
spu-tdep.c | 2
stabsread.c | 4
stack.c | 38
symfile.c | 42
symfile.h | 12
symmisc.c | 4
symtab.c | 321 +-
symtab.h | 20
target.c | 20
target.h | 32
testsuite/gdb.arch/powerpc-power7.exp | 175 +
testsuite/gdb.arch/powerpc-power7.s | 107
testsuite/gdb.arch/x86_64-vla-typedef-foo.S | 455 +++
testsuite/gdb.arch/x86_64-vla-typedef.c | 43
testsuite/gdb.arch/x86_64-vla-typedef.exp | 64
testsuite/gdb.base/arrayidx.c | 7
testsuite/gdb.base/arrayidx.exp | 10
testsuite/gdb.base/help.exp | 2
testsuite/gdb.base/lineno-makeup-func.c | 21
testsuite/gdb.base/lineno-makeup.c | 35
testsuite/gdb.base/lineno-makeup.exp | 78
testsuite/gdb.base/macscp.exp | 8
testsuite/gdb.base/radix.exp | 7
testsuite/gdb.base/solib-overlap-lib.c | 27
testsuite/gdb.base/solib-overlap-main.c | 25
testsuite/gdb.base/solib-overlap.exp | 139 +
testsuite/gdb.base/valgrind-attach.c | 28
testsuite/gdb.base/valgrind-attach.exp | 94
testsuite/gdb.base/valgrind-attach.sh | 20
testsuite/gdb.base/vla-overflow.c | 30
testsuite/gdb.base/vla-overflow.exp | 108
testsuite/gdb.base/vla.c | 55
testsuite/gdb.base/vla.exp | 62
testsuite/gdb.base/watchpoint-hw.c | 6
testsuite/gdb.base/watchpoint-hw.exp | 45
testsuite/gdb.cp/cp-relocate.exp | 6
testsuite/gdb.cp/cplusfuncs.cc | 6
testsuite/gdb.cp/cplusfuncs.exp | 195 +
testsuite/gdb.cp/expand-sals.exp | 2
testsuite/gdb.cp/member-ptr.cc | 17
testsuite/gdb.cp/member-ptr.exp | 34
testsuite/gdb.cp/namespace-multiple-imports.cc | 20
testsuite/gdb.cp/namespace-multiple-imports.exp | 49
testsuite/gdb.cp/namespace-nested-imports.cc | 36
testsuite/gdb.cp/namespace-nested-imports.exp | 57
testsuite/gdb.cp/namespace-no-imports.cc | 37
testsuite/gdb.cp/namespace-no-imports.exp | 76
testsuite/gdb.cp/namespace-recursive.cc | 30
testsuite/gdb.cp/namespace-recursive.exp | 66
testsuite/gdb.cp/namespace-using.cc | 128 -
testsuite/gdb.cp/namespace-using.exp | 130 +
testsuite/gdb.cp/namespace.exp | 23
testsuite/gdb.cp/overload.exp | 8
testsuite/gdb.cp/ovldbreak.exp | 46
testsuite/gdb.cp/shadowing.cc | 48
testsuite/gdb.cp/shadowing.exp | 91
testsuite/gdb.dwarf2/callframecfa.S | 309 ++
testsuite/gdb.dwarf2/callframecfa.exp | 55
testsuite/gdb.dwarf2/dw2-aranges.S | 140 +
testsuite/gdb.dwarf2/dw2-aranges.exp | 40
testsuite/gdb.dwarf2/dw2-stripped.c | 42
testsuite/gdb.dwarf2/dw2-stripped.exp | 79
testsuite/gdb.dwarf2/dw2-struct-member-data-location.S | 83
testsuite/gdb.dwarf2/dw2-struct-member-data-location.exp | 37
testsuite/gdb.fortran/common-block.exp | 101
testsuite/gdb.fortran/common-block.f90 | 67
testsuite/gdb.fortran/dwarf-stride.exp | 42
testsuite/gdb.fortran/dwarf-stride.f90 | 40
testsuite/gdb.fortran/dynamic.exp | 145 +
testsuite/gdb.fortran/dynamic.f90 | 98
testsuite/gdb.fortran/library-module-lib.f90 | 28
testsuite/gdb.fortran/library-module-main.f90 | 23
testsuite/gdb.fortran/library-module.exp | 53
testsuite/gdb.fortran/logical.exp | 44
testsuite/gdb.fortran/logical.f90 | 33
testsuite/gdb.fortran/module.exp | 28
testsuite/gdb.fortran/module.f90 | 37
testsuite/gdb.fortran/string.exp | 59
testsuite/gdb.fortran/string.f90 | 37
testsuite/gdb.gdb/selftest.exp | 4
testsuite/gdb.mi/gdb701.exp | 2
testsuite/gdb.mi/mi-break.exp | 2
testsuite/gdb.mi/mi-var-block.exp | 2
testsuite/gdb.mi/mi-var-child.exp | 30
testsuite/gdb.mi/mi-var-cmd.exp | 38
testsuite/gdb.mi/mi-var-display.exp | 4
testsuite/gdb.mi/mi2-var-block.exp | 2
testsuite/gdb.mi/mi2-var-child.exp | 30
testsuite/gdb.mi/mi2-var-cmd.exp | 28
testsuite/gdb.mi/mi2-var-display.exp | 4
testsuite/gdb.opt/array-from-register-func.c | 22
testsuite/gdb.opt/array-from-register.c | 28
testsuite/gdb.opt/array-from-register.exp | 33
testsuite/gdb.opt/fortran-string.exp | 41
testsuite/gdb.opt/fortran-string.f90 | 28
testsuite/gdb.python/Makefile.in | 2
testsuite/gdb.python/python-cmd.exp | 27
testsuite/gdb.python/python-frame.exp | 48
testsuite/gdb.python/python-function.exp | 27
testsuite/gdb.python/python-inferior.c | 49
testsuite/gdb.python/python-inferior.exp | 201 +
testsuite/gdb.python/python-infthread.c | 14
testsuite/gdb.python/python-infthread.exp | 58
testsuite/gdb.python/python-mi.exp | 116
testsuite/gdb.python/python-prettyprint.c | 16
testsuite/gdb.python/python-prettyprint.exp | 11
testsuite/gdb.python/python-prettyprint.py | 12
testsuite/gdb.python/python-template.exp | 25
testsuite/gdb.python/python-value.exp | 68
testsuite/gdb.python/python.exp | 27
testsuite/gdb.threads/watchpoint-fork-forkoff.c | 175 +
testsuite/gdb.threads/watchpoint-fork-mt.c | 157 +
testsuite/gdb.threads/watchpoint-fork.c | 57
testsuite/gdb.threads/watchpoint-fork.exp | 130 +
testsuite/gdb.threads/watchthreads-reorder.c | 366 ++
testsuite/gdb.threads/watchthreads-reorder.exp | 101
testsuite/lib/cp-support.exp | 3
testsuite/lib/gdb.exp | 1
testsuite/lib/mi-support.exp | 100
testsuite/lib/python-support.exp | 53
thread.c | 18
top.c | 1
typeprint.c | 14
typeprint.h | 3
ui-file.c | 20
ui-file.h | 6
utils.c | 7
valarith.c | 45
valops.c | 254 +-
valprint.c | 4
value.c | 150 +
value.h | 8
varobj.c | 735 ++++-
varobj.h | 32
xcoffread.c | 1
255 files changed, 18838 insertions(+), 2756 deletions(-)
View full diff with command:
/usr/bin/cvs -n -f diff -kk -u -p -N -r 1.26 -r 1.27 gdb-archer.patchIndex: gdb-archer.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-archer.patch,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -p -r1.26 -r1.27
--- gdb-archer.patch 19 Aug 2009 16:19:15 -0000 1.26
+++ gdb-archer.patch 1 Sep 2009 13:19:03 -0000 1.27
@@ -2,7 +2,7 @@ http://sourceware.org/gdb/wiki/ProjectAr
http://sourceware.org/gdb/wiki/ArcherBranchManagement
GIT snapshot:
-commit 2ba2bc451eb832182ef84c3934115de7a329da7c
+commit d25596676e8811b03f8c9aba6bbd04ebaa9ff5db
branch `archer' - the merge of branches:
archer-tromey-call-frame-cfa
@@ -3458,7 +3458,7 @@ index 4984f31..fcf1b5d 100644
This observer is used for internal testing. Do not use.
See testsuite/gdb.gdb/observer.exp.
diff --git a/gdb/dwarf2-frame.c b/gdb/dwarf2-frame.c
-index 427f58f..fc70309 100644
+index 427f58f..392a1b4 100644
--- a/gdb/dwarf2-frame.c
+++ b/gdb/dwarf2-frame.c
@@ -38,6 +38,7 @@
@@ -3501,7 +3501,7 @@ index 427f58f..fc70309 100644
do_cleanups (old_chain);
-@@ -1250,6 +1260,14 @@ dwarf2_frame_base_sniffer (struct frame_info *this_frame)
+@@ -1250,6 +1260,16 @@ dwarf2_frame_base_sniffer (struct frame_info *this_frame)
return NULL;
}
@@ -3509,6 +3509,8 @@ index 427f58f..fc70309 100644
+CORE_ADDR
+dwarf2_frame_cfa (struct frame_info *this_frame)
+{
++ while (get_frame_type (this_frame) == INLINE_FRAME)
++ this_frame = get_prev_frame (this_frame);
+ if (! frame_unwinder_is (this_frame, &dwarf2_frame_unwind))
+ error (_("can't compute CFA for this frame"));
+ return get_frame_base (this_frame);
@@ -3516,7 +3518,7 @@ index 427f58f..fc70309 100644
const struct objfile_data *dwarf2_frame_objfile_data;
-@@ -1539,6 +1557,14 @@ dwarf2_frame_find_fde (CORE_ADDR *pc)
+@@ -1539,6 +1559,14 @@ dwarf2_frame_find_fde (CORE_ADDR *pc)
CORE_ADDR offset;
CORE_ADDR seek_pc;
@@ -3834,7 +3836,7 @@ index 2306e49..597c2de 100644
/* The length of the piece, in bytes. */
ULONGEST size;
diff --git a/gdb/dwarf2loc.c b/gdb/dwarf2loc.c
-index 1df6a9f..c101371 100644
+index 1df6a9f..939f7a2 100644
--- a/gdb/dwarf2loc.c
+++ b/gdb/dwarf2loc.c
@@ -36,6 +36,7 @@
@@ -3875,7 +3877,7 @@ index 1df6a9f..c101371 100644
+ gdb_assert (symbaton != NULL);
+ *start = symbaton->data;
+ *length = symbaton->size;
-+ }
+ }
+ else if (SYMBOL_COMPUTED_OPS (framefunc) == &dwarf2_missing_funcs)
+ {
+ struct dwarf2_locexpr_baton *symbaton;
@@ -3884,7 +3886,7 @@ index 1df6a9f..c101371 100644
+ gdb_assert (symbaton == NULL);
+ *start = NULL;
+ *length = 0; /* unused */
- }
++ }
+ else
+ internal_error (__FILE__, __LINE__,
+ _("Unsupported SYMBOL_COMPUTED_OPS %p for \"%s\""),
@@ -3905,7 +3907,7 @@ index 1df6a9f..c101371 100644
}
/* Using the objfile specified in BATON, find the address for the
-@@ -204,6 +226,118 @@ dwarf_expr_tls_address (void *baton, CORE_ADDR offset)
+@@ -204,6 +226,129 @@ dwarf_expr_tls_address (void *baton, CORE_ADDR offset)
return target_translate_tls_address (debaton->objfile, offset);
}
@@ -4016,6 +4018,17 @@ index 1df6a9f..c101371 100644
+
+ retval = dwarf_expr_fetch (ctx, 0);
+
++ if (ctx->location == DWARF_VALUE_REGISTER)
++ {
++ /* Inlined dwarf_expr_read_reg as we no longer have the baton. */
++
++ int gdb_regnum = gdbarch_dwarf2_reg_to_regnum (ctx->gdbarch, retval);
++ struct type *type = builtin_type (ctx->gdbarch)->builtin_data_ptr;
++ struct frame_info *frame = get_selected_frame (NULL);
++
++ retval = address_from_register (type, gdb_regnum, frame);
++ }
++
+ do_cleanups (back_to);
+
+ return retval;
@@ -4024,7 +4037,7 @@ index 1df6a9f..c101371 100644
/* Evaluate a location description, starting at DATA and with length
SIZE, to find the current location of variable VAR in the context
of FRAME. */
-@@ -213,9 +347,8 @@ dwarf2_evaluate_loc_desc (struct symbol *var, struct frame_info *frame,
+@@ -213,9 +358,8 @@ dwarf2_evaluate_loc_desc (struct symbol *var, struct frame_info *frame,
struct dwarf2_per_cu_data *per_cu)
{
struct value *retval;
@@ -4035,7 +4048,7 @@ index 1df6a9f..c101371 100644
if (size == 0)
{
-@@ -225,21 +358,8 @@ dwarf2_evaluate_loc_desc (struct symbol *var, struct frame_info *frame,
+@@ -225,21 +369,8 @@ dwarf2_evaluate_loc_desc (struct symbol *var, struct frame_info *frame,
return retval;
}
@@ -4044,7 +4057,8 @@ index 1df6a9f..c101371 100644
-
- ctx = new_dwarf_expr_context ();
- old_chain = make_cleanup_free_dwarf_expr_context (ctx);
--
++ ctx = dwarf_expr_prep_ctx (frame, data, size, per_cu);
+
- ctx->gdbarch = get_objfile_arch (baton.objfile);
- ctx->addr_size = dwarf2_per_cu_addr_size (per_cu);
- ctx->baton = &baton;
@@ -4052,13 +4066,12 @@ index 1df6a9f..c101371 100644
- ctx->read_mem = dwarf_expr_read_mem;
- ctx->get_frame_base = dwarf_expr_frame_base;
- ctx->get_tls_address = dwarf_expr_tls_address;
-+ ctx = dwarf_expr_prep_ctx (frame, data, size, per_cu);
-
+-
- dwarf_expr_eval (ctx, data, size);
if (ctx->num_pieces > 0)
{
int i;
-@@ -251,36 +371,115 @@ dwarf2_evaluate_loc_desc (struct symbol *var, struct frame_info *frame,
+@@ -251,36 +382,115 @@ dwarf2_evaluate_loc_desc (struct symbol *var, struct frame_info *frame,
for (i = 0; i < ctx->num_pieces; i++)
{
struct dwarf_expr_piece *p = &ctx->pieces[i];
@@ -4197,7 +4210,7 @@ index 1df6a9f..c101371 100644
}
set_value_initialized (retval, ctx->initialized);
-@@ -330,6 +529,15 @@ needs_frame_frame_base (void *baton, gdb_byte **start, size_t * length)
+@@ -330,6 +540,15 @@ needs_frame_frame_base (void *baton, gdb_byte **start, size_t * length)
nf_baton->needs_frame = 1;
}
@@ -4213,7 +4226,7 @@ index 1df6a9f..c101371 100644
/* Thread-local accesses do require a frame. */
static CORE_ADDR
needs_frame_tls_address (void *baton, CORE_ADDR offset)
-@@ -362,11 +570,12 @@ dwarf2_loc_desc_needs_frame (gdb_byte *data, unsigned short size,
+@@ -362,11 +581,12 @@ dwarf2_loc_desc_needs_frame (gdb_byte *data, unsigned short size,
ctx->read_reg = needs_frame_read_reg;
ctx->read_mem = needs_frame_read_mem;
ctx->get_frame_base = needs_frame_frame_base;
@@ -4227,7 +4240,7 @@ index 1df6a9f..c101371 100644
if (ctx->num_pieces > 0)
{
-@@ -375,7 +584,7 @@ dwarf2_loc_desc_needs_frame (gdb_byte *data, unsigned short size,
+@@ -375,7 +595,7 @@ dwarf2_loc_desc_needs_frame (gdb_byte *data, unsigned short size,
/* If the location has several pieces, and any of them are in
registers, then we will need a frame to fetch them from. */
for (i = 0; i < ctx->num_pieces; i++)
@@ -4236,7 +4249,7 @@ index 1df6a9f..c101371 100644
in_reg = 1;
}
-@@ -607,7 +816,7 @@ static int
+@@ -607,7 +827,7 @@ static int
loclist_describe_location (struct symbol *symbol, struct ui_file *stream)
{
/* FIXME: Could print the entire list of locations. */
@@ -4245,7 +4258,7 @@ index 1df6a9f..c101371 100644
return 1;
}
-@@ -623,16 +832,56 @@ loclist_tracepoint_var_ref (struct symbol *symbol, struct gdbarch *gdbarch,
+@@ -623,16 +843,56 @@ loclist_tracepoint_var_ref (struct symbol *symbol, struct gdbarch *gdbarch,
data = find_location_expression (dlbaton, &size, ax->scope);
if (data == NULL)
@@ -4322,7 +4335,7 @@ index 0bfcfca..01018d6 100644
#endif /* dwarf2loc.h */
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
[...2061 lines suppressed...]
- UI, so we need not bother getting it. */
+@@ -1530,44 +1738,60 @@ VEC(varobj_update_result) *varobj_update (struct varobj **varp, int explicit)
+
+ /* We probably should not get children of a varobj that has a
+ pretty-printer, but for which -var-list-children was never
+- invoked. Presumably, such varobj is not yet expanded in the
+- UI, so we need not bother getting it. */
++ invoked. */
if (v->pretty_printer)
{
- VEC (varobj_p) *changed = 0, *new_and_unchanged = 0;
@@ -28807,8 +29902,32 @@ index fbe8ff8..1bfc5e4 100644
int i, children_changed;
varobj_p tmp;
-@@ -1546,28 +1729,28 @@ VEC(varobj_update_result) *varobj_update (struct varobj **varp, int explicit)
+- if (!v->children_requested)
+- continue;
+-
+ if (v->frozen)
+ continue;
++ if (!v->children_requested)
++ {
++ int dummy;
++
++ /* If we initially did not have potential children, but
++ now we do, consider the varobj as changed.
++ Otherwise, if children were never requested, consider
++ it as unchanged -- presumably, such varobj is not yet
++ expanded in the UI, so we need not bother getting
++ it. */
++ if (varobj_has_more (v, 0))
++ continue;
++
++ update_dynamic_varobj_children (v, NULL, NULL, &dummy, 0, 0);
++ if (varobj_has_more (v, 0))
++ VEC_safe_push (varobj_update_result, result, &r);
++
++ continue;
++ }
++
/* If update_dynamic_varobj_children returns 0, then we have
a non-conforming pretty-printer, so we skip it. */
- if (update_dynamic_varobj_children (v, &changed, &new_and_unchanged,
@@ -28848,7 +29967,7 @@ index fbe8ff8..1bfc5e4 100644
continue;
}
}
-@@ -1855,7 +2038,12 @@ new_variable (void)
+@@ -1855,7 +2079,12 @@ new_variable (void)
var->frozen = 0;
var->not_fetched = 0;
var->children_requested = 0;
@@ -28861,7 +29980,7 @@ index fbe8ff8..1bfc5e4 100644
return var;
}
-@@ -1885,7 +2073,10 @@ free_variable (struct varobj *var)
+@@ -1885,7 +2114,10 @@ free_variable (struct varobj *var)
if (var->pretty_printer)
{
struct cleanup *cleanup = varobj_ensure_python_env (var);
@@ -28873,7 +29992,7 @@ index fbe8ff8..1bfc5e4 100644
do_cleanups (cleanup);
}
#endif
-@@ -1918,6 +2109,18 @@ make_cleanup_free_variable (struct varobj *var)
+@@ -1918,6 +2150,18 @@ make_cleanup_free_variable (struct varobj *var)
return make_cleanup (do_free_variable_cleanup, var);
}
@@ -28892,7 +30011,7 @@ index fbe8ff8..1bfc5e4 100644
/* This returns the type of the variable. It also skips past typedefs
to return the real type of the variable.
-@@ -2132,6 +2335,8 @@ value_of_root (struct varobj **var_handle, int *type_changed)
+@@ -2132,6 +2376,8 @@ value_of_root (struct varobj **var_handle, int *type_changed)
else
{
tmp_var->obj_name = xstrdup (var->obj_name);
@@ -28901,7 +30020,7 @@ index fbe8ff8..1bfc5e4 100644
varobj_delete (var, NULL, 0);
install_variable (tmp_var);
-@@ -2166,7 +2371,11 @@ static char *
+@@ -2166,7 +2412,11 @@ static char *
my_value_of_variable (struct varobj *var, enum varobj_display_formats format)
{
if (var->root->is_valid)
@@ -28914,7 +30033,90 @@ index fbe8ff8..1bfc5e4 100644
else
return NULL;
}
-@@ -2954,10 +3163,7 @@ cplus_describe_child (struct varobj *parent, int index,
+@@ -2189,43 +2439,51 @@ value_get_print_value (struct value *value, enum varobj_display_formats format,
+ struct cleanup *back_to = varobj_ensure_python_env (var);
+ PyObject *value_formatter = var->pretty_printer;
+
+- if (value_formatter && PyObject_HasAttr (value_formatter,
+- gdbpy_to_string_cst))
++ if (value_formatter)
+ {
+- char *hint;
+- struct value *replacement;
+- int string_print = 0;
+- PyObject *output = NULL;
++ /* First check to see if we have any children at all. If so,
++ we simply return {...}. */
++ if (dynamic_varobj_has_child_method (var))
++ return xstrdup ("{...}");
+
+- hint = gdbpy_get_display_hint (value_formatter);
+- if (hint)
++ if (PyObject_HasAttr (value_formatter, gdbpy_to_string_cst))
+ {
+- if (!strcmp (hint, "string"))
+- string_print = 1;
+- xfree (hint);
+- }
++ char *hint;
++ struct value *replacement;
++ int string_print = 0;
++ PyObject *output = NULL;
++
++ hint = gdbpy_get_display_hint (value_formatter);
++ if (hint)
++ {
++ if (!strcmp (hint, "string"))
++ string_print = 1;
++ xfree (hint);
++ }
+
+- output = apply_varobj_pretty_printer (value_formatter,
+- &replacement);
+- if (output)
+- {
+- PyObject *py_str = python_string_to_target_python_string (output);
+- if (py_str)
+- {
+- char *s = PyString_AsString (py_str);
+- len = PyString_Size (py_str);
+- thevalue = xmemdup (s, len + 1, len + 1);
+- Py_DECREF (py_str);
++ output = apply_varobj_pretty_printer (value_formatter,
++ &replacement);
++ if (output)
++ {
++ PyObject *py_str
++ = python_string_to_target_python_string (output);
++ if (py_str)
++ {
++ char *s = PyString_AsString (py_str);
++ len = PyString_Size (py_str);
++ thevalue = xmemdup (s, len + 1, len + 1);
++ Py_DECREF (py_str);
++ }
++ Py_DECREF (output);
+ }
+- Py_DECREF (output);
+- }
+- if (thevalue && !string_print)
+- {
+- do_cleanups (back_to);
+- return thevalue;
++ if (thevalue && !string_print)
++ {
++ do_cleanups (back_to);
++ return thevalue;
++ }
++ if (replacement)
++ value = replacement;
+ }
+- if (replacement)
+- value = replacement;
+ }
+ do_cleanups (back_to);
+ }
+@@ -2954,10 +3212,7 @@ cplus_describe_child (struct varobj *parent, int index,
*cname = xstrdup (TYPE_FIELD_NAME (type, index));
if (cvalue && value)
@@ -28926,7 +30128,7 @@ index fbe8ff8..1bfc5e4 100644
if (ctype)
{
-@@ -3163,6 +3369,19 @@ java_value_of_variable (struct varobj *var, enum varobj_display_formats format)
+@@ -3163,6 +3418,19 @@ java_value_of_variable (struct varobj *var, enum varobj_display_formats format)
return cplus_value_of_variable (var, format);
}
@@ -28946,7 +30148,7 @@ index fbe8ff8..1bfc5e4 100644
/* Iterate all the existing _root_ VAROBJs and call the FUNC callback for them
with an arbitrary caller supplied DATA pointer. */
-@@ -3180,6 +3399,43 @@ all_root_varobjs (void (*func) (struct varobj *var, void *data), void *data)
+@@ -3180,6 +3448,43 @@ all_root_varobjs (void (*func) (struct varobj *var, void *data), void *data)
(*func) (var_root->rootvar, data);
}
}
gdb-bz515434-qsort_cmp.patch:
objfiles.c | 187 ++++++++++++++++++++++++++++++++++++++++++++-----------------
1 file changed, 137 insertions(+), 50 deletions(-)
Index: gdb-bz515434-qsort_cmp.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-bz515434-qsort_cmp.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -p -r1.2 -r1.3
--- gdb-bz515434-qsort_cmp.patch 28 Aug 2009 18:24:06 -0000 1.2
+++ gdb-bz515434-qsort_cmp.patch 1 Sep 2009 13:19:03 -0000 1.3
@@ -227,205 +227,3 @@ diff -p -u -r1.93 objfiles.c
*pmap = map;
*pmap_size = map_size;
-
-2009-08-25 Jan Kratochvil <jan.kratochvil at redhat.com>
-
- * gdb.base/solib-overlap.exp, gdb.base/solib-overlap-lib.c,
- gdb.base/solib-overlap-main.c: New.
-
---- /dev/null
-+++ b/gdb/testsuite/gdb.base/solib-overlap-lib.c
-@@ -0,0 +1,27 @@
-+/* Copyright 2009 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/>.
-+
-+ Contributed by Jan Kratochvil <jan.kratochvil at redhat.com>. */
-+
-+void
-+libsym (void)
-+{
-+}
-+
-+#ifdef SYMB
-+void
-+libsymb (void)
-+{
-+}
-+#endif
---- /dev/null
-+++ b/gdb/testsuite/gdb.base/solib-overlap-main.c
-@@ -0,0 +1,25 @@
-+/* Copyright 2009 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/>.
-+
-+ Contributed by Jan Kratochvil <jan.kratochvil at redhat.com>. */
-+
-+#include <unistd.h>
-+
-+int
-+main (void)
-+{
-+ sleep (60);
-+
-+ return 1;
-+}
---- /dev/null
-+++ b/gdb/testsuite/gdb.base/solib-overlap.exp
-@@ -0,0 +1,135 @@
-+# Copyright 2009 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/>.
-+#
-+# Contributed by Jan Kratochvil <jan.kratochvil at redhat.com>.
-+
-+# Test GDB can cope with two libraries loaded with overlapping VMA ranges.
-+# Prelink libraries first so they can be loaded and their native address.
-+# In such case `struct linkmap'.l_addr will be zero. Provide different
-+# unprelinked library files on the disk which have zero-based VMAs. These
-+# different files should have their .dynamic section at a different offset in
-+# page size so that we get for
-+# warning: .dynamic section for "..." is not at the expected address
-+# the reason
-+# (wrong library or version mismatch?)
-+# and not:
-+# difference appears to be caused by prelink, adjusting expectations
-+# In such case both disk libraries will be loaded at VMAs starting at zero.
-+
-+if [skip_shlib_tests] {
-+ return 0
-+}
-+
-+# Are we on a target board? It is required for attaching to a process.
-+if [is_remote target] {
-+ return 0
-+}
-+
-+# Library file.
-+set libname "solib-overlap-lib"
-+set srcfile_lib ${srcdir}/${subdir}/${libname}.c
-+# Binary file.
-+set testfile "solib-overlap-main"
-+set srcfile ${srcdir}/${subdir}/${testfile}.c
-+
-+# Base addresses for `prelink -r' which should be compatible with both -m32 and
-+# -m64 targets. If it clashes with system prelinked libraries it would give
-+# false PASS.
-+# Prelink first lib1 at 0x40000000 and lib2 at 0x41000000.
-+# During second pass try lib1 at 0x50000000 and lib2 at 0x51000000.
-+foreach prelink_lib1 {0x40000000 0x50000000} {
-+ set prelink_lib2 [format "0x%x" [expr $prelink_lib1 + 0x01000000]]
-+
-+ set old_prefix $pf_prefix
-+ lappend pf_prefix "$prelink_lib1:"
-+
-+ # Library file.
-+ set binfile_lib1 ${objdir}/${subdir}/${libname}1-${prelink_lib1}.so
-+ set binfile_lib2 ${objdir}/${subdir}/${libname}2-${prelink_lib1}.so
-+ set lib_flags {debug}
-+ # Binary file.
-+ set binfile_base ${testfile}-${prelink_lib1}
-+ set binfile ${objdir}/${subdir}/${binfile_base}
-+ set bin_flags [list debug shlib=${binfile_lib1} shlib=${binfile_lib2}]
-+ set escapedbinfile [string_to_regexp ${binfile}]
-+
-+ if { [gdb_compile_shlib ${srcfile_lib} ${binfile_lib1} $lib_flags] != ""
-+ || [gdb_compile_shlib ${srcfile_lib} ${binfile_lib2} $lib_flags] != ""
-+ || [gdb_compile ${srcfile} ${binfile} executable $bin_flags] != "" } {
-+ untested "Could not compile ${binfile_lib1}, ${binfile_lib2} or ${binfile}."
-+ return -1
-+ }
-+
-+ if {[catch "system \"prelink -N -r ${prelink_lib1} ${binfile_lib1}\""] != 0
-+ || [catch "system \"prelink -N -r ${prelink_lib2} ${binfile_lib2}\""] != 0} {
-+ # Maybe we don't have prelink.
-+ untested "Could not prelink ${binfile_lib1} or ${binfile_lib2}."
-+ return -1
-+ }
-+
-+ # Start the program running and then wait for a bit, to be sure
-+ # that it can be attached to.
-+
-+ set testpid [eval exec $binfile &]
-+ sleep 2
-+ if { [istarget "*-*-cygwin*"] } {
-+ # testpid is the Cygwin PID, GDB uses the Windows PID, which might be
-+ # different due to the way fork/exec works.
-+ set testpid [ exec ps -e | gawk "{ if (\$1 == $testpid) print \$4; }" ]
-+ }
-+
-+ remote_exec build "mv -f ${binfile_lib1} ${binfile_lib1}-running"
-+ remote_exec build "mv -f ${binfile_lib2} ${binfile_lib2}-running"
-+
-+ # Provide another exported function name to cause different sizes of sections.
-+ lappend lib_flags additional_flags=-DSYMB
-+
-+ if { [gdb_compile_shlib ${srcfile_lib} ${binfile_lib1} $lib_flags] != ""
-+ || [gdb_compile_shlib ${srcfile_lib} ${binfile_lib2} $lib_flags] != ""} {
-+ untested "Could not recompile ${binfile_lib1} or ${binfile_lib2}."
-+ remote_exec build "kill -9 ${testpid}"
-+ return -1
-+ }
-+
-+ clean_restart ${binfile_base}
-+ # This testcase currently does not support remote targets.
-+ # gdb_load_shlibs ${binfile_lib1} ${binfile_lib2}
-+
-+ # Here we should get:
-+ # warning: .dynamic section for ".../solib-overlap-lib1.so" is not at the expected address (wrong library or version mismatch?)
-+ # warning: .dynamic section for ".../solib-overlap-lib2.so" is not at the expected address (wrong library or version mismatch?)
-+
-+ set test attach
-+ gdb_test_multiple "attach $testpid" $test {
-+ -re "Attaching to program.*`?$escapedbinfile'?, process $testpid.*$gdb_prompt $" {
-+ pass $test
-+ }
-+ -re "Attaching to program.*`?$escapedbinfile\.exe'?, process $testpid.*\[Switching to thread $testpid\..*\].*$gdb_prompt $" {
-+ # Response expected on Cygwin
-+ pass $test
-+ }
-+ }
-+
-+ # Detach the process.
-+
-+ gdb_test "detach" "Detaching from program: .*$escapedbinfile, process $testpid"
-+
-+ # Wait a bit for gdb to finish detaching
-+
-+ sleep 5
-+
-+ remote_exec build "kill -9 ${testpid}"
-+
-+ set pf_prefix $old_prefix
-+}
Index: gdb.spec
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb.spec,v
retrieving revision 1.380
retrieving revision 1.381
diff -u -p -r1.380 -r1.381
--- gdb.spec 28 Aug 2009 18:24:06 -0000 1.380
+++ gdb.spec 1 Sep 2009 13:19:03 -0000 1.381
@@ -14,7 +14,7 @@ Version: 6.8.50.20090818
# 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: 6%{?_with_upstream:.upstream}%{?dist}
+Release: 7%{?_with_upstream:.upstream}%{?dist}
License: GPLv3+
Group: Development/Debuggers
@@ -829,6 +829,12 @@ fi
%endif
%changelog
+* Tue Sep 1 2009 Jan Kratochvil <jan.kratochvil at redhat.com> - 6.8.50.20090818-7
+- archer-jankratochvil-fedora12 commit: d25596676e8811b03f8c9aba6bbd04ebaa9ff5db
+ - [call-frame-cfa] Fix parsing CFA-relative frames (BZ 516627, Tom Tromey).
+ - [vla] variable length Fortran strings for -O -g code (part of BZ 508406, me).
+ - [python] varobj + general fixes (Tom Tromey).
+
* Fri Aug 28 2009 Jan Kratochvil <jan.kratochvil at redhat.com> - 6.8.50.20090818-6
- Real upstream fixup of qsort_cmp (BZ 515434).
- Revert bitfields regression (BZ 520129).
- Previous message (by thread): rpms/net-tools/devel net-tools-1.60-avoid-name-resolution.patch, NONE, 1.1 net-tools-1.60-continous-flush-stdout.patch, NONE, 1.1 net-tools-1.60-debug-fix.patch, NONE, 1.1 net-tools-1.60-ib-warning.patch, NONE, 1.1 net-tools-1.60-man-obsolete.patch, NONE, 1.1 .cvsignore, 1.11, 1.12 net-tools.spec, 1.100, 1.101 sources, 1.11, 1.12
- Next message (by thread): rpms/beacon/devel beacon.spec, NONE, 1.1 httpd-beacon.conf, NONE, 1.1 import.log, NONE, 1.1 .cvsignore, 1.1, 1.2 sources, 1.1, 1.2
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-extras-commits
mailing list