This is the mail archive of the
archer@sourceware.org
mailing list for the Archer project.
[keiths-expr-cumulative] Regressions [Re: New branch for Fedora11 merges]
On Fri, 27 Feb 2009 23:03:26 +0100, Sami Wagiaalla wrote:
> Sami Wagiaalla wrote:
>> I introduced this problem earlier when i was trying to resolve a
>> conflict that I had with a patch of Jan's.
>> 1de38657622396795ce681e64b03fb74e81e6c3d vs
>> 60eb8684d0d85d0884aca7a2f013e5eb16a51d47
>>
>> I'll check in a fix for this. The issue is that sometimes a function
>> Die might now have high/low pc tags but it has an abstract origin tag
>> pointing to useful namespace information.
>
> I have check in a fix for this.
[archer-keiths-expr-cumulative] 3513c57475d20e65ac2fb2be097227011c4b8b5a
It still has a lot of regressions (tried archer-keiths-expr-cumulative) like:
info function operator\*(^M
memory clobbered past end of allocated block^M
FAIL: gdb.cp/cplusfuncs.exp: info function for "operator%(" (timeout)
(at least on F10.x86_64 using mcheck: LDFLAGS="-lmcheck" ./configure...).
Possible quick fix is attached (not checked-in) - my code moved into
explore_abstract_origin() needs to know (the `die_children' count is only read)
the number of children DIEs - to allocate appropriately sized array.
Unfortunately even after this attached fix the branch is FAILing on:
+FAIL: gdb.cp/namespace-using.exp: print _a
+FAIL: gdb.cp/namespace-using.exp: print x
* Every test name should be unique - this is the reason the names exist.
You do not follow it.
* You use `send_gdb' without waiting on the response of each command - some
wait on "$gdb_prompt $". The waiting can be usually done by `gdb_test', in
more complicated cases by `gdb_test_multiple'. Otherwise the results get
random as dejagnu is not in sync with the GDB output.
* There are even specific library functions `gdb_breakpoint' and
`gdb_continue_to_breakpoint' which you use but only sometimes.
* Pattern start `"\\$\[0-9\].* =' should have been more `"\\$\[0-9\]+ ='
(although it is also considered safe to use just `=').
There is now a change
KFAIL: gdb.cp/templates.exp: constructor breakpoint (PRMS: gdb/1062)
->
FAIL: gdb.cp/templates.exp: constructor breakpoint
although IMO the current output should be considered as PASS now.
The branch is still pretty old 6.8.50.20090127-cvs and while I would update it
but as it currently has regressions I cannot verify I would not break it.
Regards,
Jan
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index 3e17767..a9251cb 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -3317,6 +3317,12 @@ read_func_scope (struct die_info *die, struct dwarf2_cu *cu)
if (name == NULL || !dwarf2_get_pc_bounds (die, &lowpc, &highpc, cu, NULL)){
/* explore abstract origins if present. They might contain useful information
such as import statements. */
+ child_die = die->child;
+ while (child_die && child_die->tag)
+ {
+ child_die = sibling_die (child_die);
+ die_children++;
+ }
explore_abstract_origin(die, cu, &die_children);
return;
}