* varobj.c (value_get_print_value): Move hint check later into the
function. Comment function. Free thevalue before reusing it.
2011-07-28 Phil Muldoon <pmuldoon@redhat.com>
* gdb.python/py-mi.exp: Test printers returning string hint, and
also not returning a value.
* gdb.python/py-prettyprint.c: Add testcase for above.
* gdb.python/py-prettyprint.py: Add test printer for above.
Fix crash on lval_computed values.
* valops.c (value_zero): Use not_lval for lval_computed.
gdb/testsuite/
Fix crash on lval_computed values.
* gdb.dwarf2/implptr.exp (print sizeof (j[0])): New test.
* typeprint.c (_initialize_typeprint): Extend the help of "whatis" and
"ptype" by their typedefs difference.
gdb/testsuite/
* gdb.base/help.exp (help whatis): Update the expected string.
gdb/
* breakpoint.c (works_in_software_mode_watchpoint): Also return
true for software watchpoints.
gdb/testsuite/
* gdb.base/watchpoint.exp
(test_disable_enable_software_watchpoint): New procedure.
(top level): Run it.
executable file "${binfile}", C++ version "${binfile}-cxx".
* gdb.python/py-prettyprint.exp: Likewise.
* gdb.python/py-symbol.exp: Likewise.
* gdb.python/py-type.exp: Likewise.
* gdb.python/py-value.exp: Likewise.
* gdb.python/py-template.exp (test_template_arg): Pass full executable
file name instead of just suffix.
Fix implicit pointer offsets.
* dwarf2loc.c (indirect_pieced_value): Comment byte_offset. Use also
ptr.OFFSET.
gdb/testsuite/
Fix implicit pointer offsets.
* gdb.dwarf2/implptr.c (add): New marker baz breakpoint.
* gdb.dwarf2/implptr.exp (set baz breakpoint for implptr)
(continue to breakpoint: continue to baz breakpoint for implptr)
(sanity check element 0, sanity check element 1)
(enter the inlined function, check element 0 for the offset)
(check element 1 for the offset)
(continue to breakpoint: ignore the second baz breakpoint): New tests.
(set foo breakpoint for implptr): Update the breakpoint number.
gdb/testsuite/
* gdb.arch/i386-dr3-watch.exp: Test that the i386 watchpoints
backend doesn't leave used debug registers behind.
gdb/gdbserver/
* i386-low.c (i386_insert_aligned_watchpoint): Don't pass the info
to the inferior here.
(i386_remove_aligned_watchpoint): Ditto.
(i386_handle_nonaligned_watchpoint): Return immediate on fail to
fit part of the watchpoint in the debug registers.
(i386_update_inferior_debug_regs): New.
(i386_low_insert_watchpoint): Work on a local mirror of the debug
registers, and only update the inferior on success.
(i386_low_remove_watchpoint): Ditto.
gdb/
* i386-nat.c (I386_DR_VACANT, I386_DR_LOCAL_ENABLE)
(I386_DR_GLOBAL_ENABLE, I386_DR_DISABLE, I386_DR_SET_RW_LEN)
(I386_DR_GET_RW_LEN, I386_DR_WATCH_HIT): Add state parameter and
adjust.
(dr_mirror, dr_status_mirror, dr_control_mirror): Delete.
(struct i386_debug_reg_state): New.
(i386_init_dregs): New.
(dr_mirror): New.
(i386_cleanup_dregs): Use i386_init_dregs.
(i386_show_dr): Add state parameter and adjust.
(i386_insert_aligned_watchpoint): Ditto. Don't pass the info to
the inferior here.
(i386_remove_aligned_watchpoint): Likewise.
(i386_handle_nonaligned_watchpoint): Add state parameter and adjust.
(i386_update_inferior_debug_regs): New.
(i386_insert_watchpoint): Work on a local mirror of the debug
registers, and only update the inferior on success.
(i386_remove_watchpoint): Ditto.
(i386_region_ok_for_watchpoint): Adjust.
(i386_stopped_data_address): Adjust.
(i386_insert_hw_breakpoint): Adjust.
(i386_remove_hw_breakpoint): Adjust.
* macrotab.h (macro_callback_fn): Add new arguments to callback.
* macrotab.c (foreach_macro): Ditto.
(foreach_macro_in_scope): Ditto.
* macrocmd.c (print_macro_callback): New function.
(info_macro_command): Move some code to print_macro_definition.
(print_macro_definition): New function.
(print_one_macro): Add new arguments to callback.
testsuite/
* gdb.base/info-macros.c: New test sources.
* gdb.base/info-macros.exp: New tests.
docs/
* gdb.texinfo (Macros): Add info definitions and info macros commands.
Update text and cindex entries for info macro command.
Fix crash if referenced CU is aged out.
* dwarf2loc.c (per_cu_dwarf_call): New variable back_to, use to for
xfree of block.data.
(indirect_pieced_value): New variable back_to, use to for xfree of
baton.data.
(dwarf2_compile_expr_to_ax): New variable back_to, use to for xfree of
block.data.
* dwarf2read.c (dwarf2_find_base_address): New prototype.
(load_cu): New function from ...
(dw2_do_instantiate_symtab): ... the code here ...
(process_full_comp_unit): ... and here.
(dwarf2_fetch_die_location_block): Call load_cu first. Call xmemdup on
retval.data.
gdb/testsuite/
Fix crash if referenced CU is aged out.
* gdb.dwarf2/dw2-op-call.exp (maintenance set dwarf2 max-cache-age 0):
New.
* gdb.dwarf2/implptr.exp: Likewise.
* dwarf2loc.c (indirect_pieced_value): Use check_typedef for VALUE's
type.
gdb/testsuite/
* gdb.dwarf2/implptr.S: Rebuilt.
* gdb.dwarf2/implptr.c (intp, intpp, intppp): New typedefs.
(bar): Use them for j, k, l.
* gdb.dwarf2/implptr.exp: New variable opts. Support runtest parameter
COMPILE.
(print j in implptr:bar): Update for the intp typedef.
(print p[0].x in implptr:foo): Use more exact regex.
This fills out a few of the test places where needed for Blackfin targets.
Signed-off-by: Jie Zhang <jie.zhang@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* gdb.cp/m-static.exp: Call get_compiler_info.
(static const int initialized nowhere): Call setup_xfail for gcc <= 4.4.
* gdb.cp/pr9167.exp (p b): Likewise.
* gdb.cp/temargs.exp: Do not set have_pr_45024_fixed for gcc 4.6.
(test value of P in inner_m, test type of Z in inner_m): Call
setup_xfail for gcc <= 4.5.
* linespec.c (find_method): Accept the function type automatically only
if it was specified with parameter types.
gdb/testsuite/
* gdb.cp/paren-type.cc: New files.
* gdb.cp/paren-type.exp: New files.
Stop on first linespec terminator instead of eating what we can.
* linespec.c (is_linespec_boundary): New function.
(name_end): Remove function.
(keep_name_info): New parameter on_boundary, replace the body.
(decode_line_1): Provide the parameter to keep_name_info.
(decode_compound): Likewise. Drop the trailing java return type
handling. Twice.
gdb/testsuite/
Stop on first linespec terminator instead of eating what we can.
* gdb.cp/minsym-fallback-main.cc (main): Call also C::operator ().
* gdb.cp/minsym-fallback.cc (C::operator ()): Define.
* gdb.cp/minsym-fallback.exp (break 'C::f()'): Change to ...
(break C::f()): ... this one.
(break C::operator()()): New test.
* gdb.cp/minsym-fallback.h (C::operator ()): Declare.
* gdb.java/jmisc.exp (break jmisc.main(java.lang.String[])int): New
test.
Fall back linespec to minimal symbols.
* linespec.c (decode_line_1): New variable ex, saved_argptr. Protect
decode_compound by TRY_CATCH, fall back on minsyms if it failed.
(find_method, symbol_found): Change error to cplusplus_error.
gdb/testsuite/
Fall back linespec to minimal symbols.
* gdb.base/psymtab.exp (Don't search past end of psymtab.): Update the
error message.
* gdb.cp/cplusfuncs.exp (list foo::operator int*): Likewise.
* gdb.cp/minsym-fallback-main.cc: New file.
* gdb.cp/minsym-fallback.cc: New file.
* gdb.cp/minsym-fallback.exp: New file.
* gdb.cp/minsym-fallback.h: New file.
* dwarf2read.c (check_physname): New variable.
(dwarf2_physname): Prefer DW_AT_linkage_name over dwarf2_compute_name.
(show_check_physname): New function.
(_initialize_dwarf2_read): Add `check-physname' for check_physname.
gdb/doc/
* gdb.texinfo (Debugging Output): Document set debug
check-physname.
gdb/testsuite/
* gdb.base/break-interp.exp (reach_1, test_ld): Allow also the prefix
__GI_.
* gdb.cp/psymtab-parameter.cc (func): Make it a template function.
(f): New function.
* gdb.cp/psymtab-parameter.exp (complete break 'func(): Rename to ...
(complete p 'func<short>(): ... here.
* gdb.dwarf2/dw2-linkage-name-trust-main.cc: New file.
* gdb.dwarf2/dw2-linkage-name-trust.S: New file.
* gdb.dwarf2/dw2-linkage-name-trust.exp: New file.
* gdb.cp/temargs.exp (test type of F in k3_m, test value of F in k3_m):
Make them KFAIL gcc/49546.
Temporary catchpoints on Ada exceptions are now displayed as "Temporary
catchpoint" as opposed to just "Catchpoint". This is cosmetic only, but
in line with what's done for other catchpoints as well as breakpoints.
gdb/ChangeLog:
* ada-lang.c (print_it_exception): Print temporary catchpoints
as "Temporary catchpoint".
(print_mention_exception): Likewise.
gdb/testsuite/ChangeLog:
* gdb.ada/catch_ex.exp: Add temporary catchpoint tests.
Test GCC PR debug/49546.
* gdb.cp/temargs.exp (set sixth breakpoint for temargs)
(test type of F in k3_m, test value of F in k3_m): New.
* gdb.cp/temargs.cc (struct S3, struct K3): New.
(main): New variable k3. Call k3.k3_m.
When trying to print the address of a non-packed array, GDB
correctly prints the type name and address:
(gdb) print &var
$2 = (access pa.var) 0xbffff1d8
However, it is behaving differently when dealing with a packed
array:
(gdb) p &var
(access array (4 .. 8) of boolean <packed: 1-bit elements>) (4 =>
false, false, false, true, false)
The type description isn't all that bad, but GDB shouldn't be
printing the array value!
This patch fixes the `print` and `ptype` command on packed and
non-packed array. It also fixes a gdb.ada test to match with
the new ouput.
gdb/ChangeLog (Jean-Charles Delay):
* ada-typeprint.c (ada_print_type): Fix both PAD type and
pointer to constrained packed array type output.
* ada-valprint.c (ada_val_print_1): Fix pointer to constrained
packed array output.
gdb/testsuite/ChangeLog (Jean-Charles Delay):
* gdb.ada/packed_array.exp: Fix expected outout.
Array bounds were not correctly displayed when the SHOW parameter of
print_type functions is set to -1. This shows up in the following
type of situation, where we have a declaration as follow:
Anon_Array_Int_Obj : array (1..10) of Integer := (others => 8);
In GDB/MI mode, trying to print the type info for our array object
yields:
(gdb) -var-create ai 0 Anon_Array_Int_Obj
(gdb) -var-info-type ai
^done,type="array (...) of integer"
The actual bounds are missing. Contrast this with what happens
when in GDB/CLI mode:
(gdb) ptype Anon_Array_Int_Obj
type = array (1 .. 10) of integer
This patch fixes array type printing accordingly. And as it turns
out, it also improves the output for one of the tests already present,
so it shows that it's not just the GDB/MI mode that's affected.
gdb/ChangeLog (Jean-Charles Delay):
* ada-typeprint.c (print_array_type): removed if condition on show
being negative for bounds printing.
gdb/testsuite/ChangeLog (Jean-Charles Delay):
* gdb.ada/packed_array.exp: fixed expected output.
This is to avoid an unnecessary multiple-choice menu for an
expression involving an enumeral declared in two types, when
the second type is an identical copy of the first type. This
happens in the following situation:
type Color is (Black, Red, Green, Blue, White);
type RGB_Color is new Color range Red .. Blue;
In that case, an implict type is created, and is used as the base
type for type RGB_Color. This base type is a copy of type Color.
We've added some extensive comments explaining the situation and
our approach further.
gdb/ChangeLog:
* ada-lang.c (ada_identical_enum_types_p): New function.
(symbols_are_identical_enums): New function.
(remove_extra_symbols): Do nothing if NSYMS < 2.
Use symbols_are_identical_enums.
gdb/testsuite/ChangeLog:
* gdb.ada/same_enum: New testcase.