Initially, I noticed that the save command was often missing
new lines in the file that it generated. For instance, consider:
% gdb save-bp
(gdb) b break_me
(gdb) b save-bp.c:27
(gdb) save breakpoints bps
The contents of the bps file would be:
% cat bps
break break_mebreak save-bp.c:27
Looking further into the problem, I realized that the missing newlines
are just a consequence of a missing call to print_recreate_thread.
After having generated the breakpoint location in the break command,
we cannot put a new line until we have looked at whether we need to
add a 'thread NUM' argument.
gdb/ChangeLog:
* breakpoint.c (bkpt_print_recreate): Add call to
print_recreate_thread.
gdb/testsuite/ChangeLog:
* gdb.base/save-bp.exp, gdb.base/save-bp.c: New files.
* lib/gdb.exp (can_single_step_to_signal_handler): New.
* gdb.base/kill-after-signal.exp: Call it. Skip if target doesn't
support single step to signal handler.
2011-09-12 Pedro Alves <pedro@codesourcery.com>
Matt Rice <ratmice@gmail.com>
PR gdb/13175
* interps.c (struct interp) <interpreter_out>: Delete field.
(interp_new): Remove the data and uiout parameters and adjust.
(interp_set): Only set the current_uiout from the interpreter's
uiout after initializing the interpreter. Adjust call to
init_proc.
(interp_ui_out): Adjust to call procs->ui_out_proc.
(interp_data, interp_name): New.
* interps.h (interp_init_ftype): Add `self' parameter.
(interp_ui_out_ftype): New typedef.
(struct interp_procs) <ui_out_proc>: New method pointer.
(interp_new): Remove the data and uiout parameters.
(interp_data, interp_name): Declare.
* tui/tui-interp.c (tui_init): Adjust prototype.
(tui_ui_out): New.
(_initialize_tui_interp): Install tui_ui_out. Don't instanciate
tui_out here. Adjust call to interp_new.
* tui/tui-io.c (tui_initialize_io): Don't set current_uiout here.
* cli/cli-interp.c (cli_interpreter_init): Adjust prototype.
(cli_ui_out): New.
(_initialize_cli_interp): Install it. Adjust call to interp_new.
* mi/mi-common.h (struct mi_interp) <uiout>: New field.
* mi/mi-interp.c (mi_interpreter_init): Adjust prototype.
Initialize mi->uiout depending on the mi_version as extracted from
the interpreter's name.
(mi_ui_out): New.
(_initialize_mi_interp): Install mi_ui_out. Adjust calls to
interp_new. Don't allocate the ui_out's of the interpreters here.
gdb/testsuite/
2011-09-12 Matt Rice <ratmice@gmail.com>
Pedro Alves <pedro@codesourcery.com>
PR gdb/13175
* gdb.base/interp.exp: New tests.
* gdb.base/interp.c: New file.
* gdb.base/annota1.exp, gdb.base/annota3.exp: Extract the
inferior's pid and look for a core dump named core.$pid. Use
`remote_file' commands on the host instead of hand coding shell
commands on the build.
* gdb.base/valgrind-db-attach.exp: Kill the program before
finishing the test.
* breakpoint.c (bpstat_do_actions): New variable cleanup_if_error, call
make_bpstat_clear_actions_cleanup and discard_cleanups for it.
* defs.h (make_bpstat_clear_actions_cleanup): New declaration.
* exceptions.c (throw_exception): Remove the bpstat_clear_actions call.
* inf-loop.c (inferior_event_handler): New variable cleanup_if_error,
call make_bpstat_clear_actions_cleanup and discard_cleanups for it.
Call bpstat_clear_actions for failed fetch_inferior_event_wrapper.
* infrun.c (fetch_inferior_event): Call
make_bpstat_clear_actions_cleanup.
* top.c (execute_command): New variable cleanup_if_error, call
make_bpstat_clear_actions_cleanup and discard_cleanups for it.
* utils.c (do_bpstat_clear_actions_cleanup)
(make_bpstat_clear_actions_cleanup): New functions.
gdb/testsuite/
* gdb.base/commands.exp (error_clears_commands_left): New function.
(): Call it.
gdb/
* printcmd.c (current_display_number): Update comment.
(disable_current_display_cleanup): Delete.
(do_one_display): Use make_cleanup_restore_integer. Gracefully
catch errors thrown while evaluating and printing the display.
gdb/testsuite/
* gdb.base/display.c (do_loops): New `p_i' local.
* gdb.base/display.exp: Test displaying a variable that is
temporarily at a bad address.
* gdb.base/jit-so.exp: Likewise. Also, use gdb_load_shlibs
and call dlopen without full path name.
* gdb.cp/infcall-dlopen.exp: Use gdb_load_shlibs and call
dlopen without full path name.
* breakpoint.c (update_global_location_list): Ensure
invariant 'first loc marked not duplicated and inserted,
following locs marked duplicated/not inserted' is respected
for multiple locations at the same address.
(unduplicated_should_be_inserted) New function.
(swap_insertion) New function.
2011-08-03 Philippe Waroquiers <philippe.waroquiers@skynet.be>
* gdb.base/break-always.exp: Complete the test
with duplicated breakpoints and enabling/disabling them.
PR gdb/13045
* doublest.c (convert_doublest_to_floatformat): Pass correct
mantissa length to put_field.
testsuite/ChangeLog:
2011-07-30 Paul Pluzhnikov <ppluzhnikov@google.com>
PR gdb/13045
* gdb.base/float.exp: Add new test case for PR gdb/13045
* gdb.base/float.c: New file.
* 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.
* 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.
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.
* gdb.base/dump.exp (capture_pointer_with_type): New.
Get value from address instead of name.
Start GDB once, and do `dump' and `restore'
tests together.
gdb/ChangeLog:
From Stephen Kitt <steve@sk2.org>
* breakpoint.c, breakpoint.h, cli/cli-dump.c, dwarf2expr.c,
gdbarch.c, gdbarch.sh, remote.c: Various spelling fixes.
gdb/testsuite/ChangeLog:
From Stephen Kitt <steve@sk2.org>
* gdb.base/help.exp: Adjust following some spelling corrections
in GDB.
gdb/
* breakpoint.c (watchpoint_check): If the watchpoint went out of
scope, clear its command list.
(map_breakpoint_numbers): Don't walk the related breakpoints list
of each breakpoint.
gdb/testsuite/
* gdb.base/commands.exp (watchpoint_command_test): Check that the
watchpoint's command list didn't execute when the watchpoint went
out of scope.
* c-lang.c (evaluate_subexp_c): Use expect_type if it is not
NULL.
gdb/testsuite
* gdb.base/charset.exp (string_display): Add tests to assign to
arrays.
* gdb.base/charset.c (short_array, int_array, long_array): New.
quote pattern to avoid problems with Cygwin/mingw expect versions.
* gdb.base/default.exp (show convenience): Use double
quote pattern for regular expressions.
gdb/testsuite/
* gdb.ada/start.exp: Call untested with the correct test filename.
* gdb.arch/i386-bp_permanent.exp: Call untested with the correct
test filename. Make the test's binary unique.
* gdb.arch/i386-signal.exp: Call untested with the correct test
filename.
* gdb.arch/i386-size-overlap.exp: Ditto.
* gdb.arch/Makefile.in (EXECUTABLES): Update.
* gdb.base/gcore-buffer-overflow.exp: Ditto.
* gdb.cp/call-c.exp: Ditto.
* gdb.mi/mi-reverse.exp: Call untested with the correct test
filename. Make the test's binary unique.
* gdb.mi/Makefile.in (EXECUTABLES): Update.
* gdb.python/py-mi.exp: Ditto.
* gdb.python/Makefile.in (EXECUTABLES): Update.
* gdb.reverse/i386-precsave.exp: Ditto.
* gdb.reverse/i387-env-reverse.exp: Call untested with the correct
test filename.
* gdb.reverse/i387-stack-reverse.exp: Ditto.
* gdb.reverse/sigall-precsave.exp: Ditto. Make the test's binary
unique.
* gdb.reverse/sigall-reverse.exp: Call untested with the correct
test filename.
* gdb.reverse/Makefile.in (EXECUTABLES): Update.
* gdb.trace/tfile.exp: Ditto.
PR testsuite/12649
Fix races.
* gdb.base/completion.exp: Remove all sleep calls. Remove
unnecessary regexs. Don't explicitly expect anything after the
prompt. Eat the prompt if necessary.
* infrun.c (proceed): Revert previous change.
(resume): Instead, handle the case of signal delivery while stepping
off a breakpoint location here, and only if software single-stepping
is used. Handle nested signals.
gdb/testsuite/
* gdb.base/signest.exp: New file.
* gdb.base/signest.c: Likewise.