Jan Kratochvil
10568435e1
gdb/
...
* NEWS (New commands): Mention "set disable-randomization".
* configure.ac: Add check for HAVE_PERSONALITY and
HAVE_DECL_ADDR_NO_RANDOMIZE.
* configure, config.in: Regenerate.
* linux-nat.c [HAVE_PERSONALITY]: New include <sys/personality.h>.
[HAVE_PERSONALITY] [!HAVE_DECL_ADDR_NO_RANDOMIZE]: Set
ADDR_NO_RANDOMIZE.
(disable_randomization, show_disable_randomization)
(set_disable_randomization): New.
(linux_nat_create_inferior) [HAVE_PERSONALITY]: New variables
PERSONALITY_ORIG and PERSONALITY_SET. Disable randomization upon the
variable DISABLE_RANDOMIZATION.
(_initialize_linux_nat): Call ADD_SETSHOW_BOOLEAN_CMD for the variable
DISABLE_RANDOMIZATION.
gdb/doc/
* gdb.texinfo (Starting): Document "set disable-randomization".
gdb/testsuite/
* gdb.base/randomize.exp, gdb.base/randomize.c: New files.
2008-07-10 09:31:00 +00:00
Pedro Alves
4487aabf2e
gdb/
...
2008-07-09 Pedro Alves <pedro@codesourcery.com>
* symfile.c (load_command): Reopen the exec file and reread
symbols before anything else.
gdb/testsuite/
2008-07-09 Pedro Alves <pedro@codesourcery.com>
* gdb.base/chng-syms.exp: Don't expect "No symbol ...".
2008-07-09 11:16:49 +00:00
Pedro Alves
a4a9b1c4f2
* gdb.base/fullname.exp: Restore pwd if compiling failed.
2008-07-09 10:50:52 +00:00
Jan Kratochvil
3c3185ac88
gdb/
...
* breakpoint.c (bpstat_copy): Call RELEASE_VALUE on the new OLD_VAL.
gdb/testsuite/
* gdb.base/value-double-free.exp, gdb.base/value-double-free.c: New.
2008-07-07 22:39:59 +00:00
Daniel Jacobowitz
ed5e946612
Add missed changelog entry.
2008-07-05 13:48:21 +00:00
Vladimir Prus
7ebd49dca3
* lib/mi-support.exp (mi_send_resuming_command_raw): Revert
...
previous commit. Add a comment.
2008-06-28 11:31:02 +00:00
Pedro Alves
84e46146f7
gdb/
...
2008-06-28 Pedro Alves <pedro@codesourcery.com>
* linux-nat.c (enum sigchld_state): New.
(linux_nat_async_events_state): Renamed from
linux_nat_async_events_enabled.
(linux_nat_event_pipe_push, my_waitpid): Adjust.
(sigchld_default_action): New.
(lin_lwp_attach_lwp): Adjust. Call linux_nat_async_events
unconditionally.
(linux_nat_create_inferior): Set events state to sigchld_default
state.
(linux_nat_resume): Adjust.
(linux_nat_wait): Call linux_nat_async_events unconditionally.
(sigchld_handler): Adjust.
(linux_nat_async_mask): Don't set SIGCHLD actions here.
(get_pending_events): Adjust.
(linux_nat_async_events): Rewrite to handle enum sigchld_state
instead of a boolean.
(linux_nat_async): Adjust.
(_initialize_linux_nat): Capture default SIGCHLD action into
sigchld_default_action.
gdb/testsuite/
2008-06-28 Pedro Alves <pedro@codesourcery.com>
* gdb.base/sigchld.c, gdb.base/sigchld.exp: New test.
2008-06-28 11:15:34 +00:00
Vladimir Prus
0f8d4a2f6e
* lib/mi-support.exp (mi_send_resuming_command_raw): Report pass.
2008-06-28 10:14:34 +00:00
Pedro Alves
f747e0ce0a
* lib/gdb.exp (gdb_saved_set_unbuffered_mode_obj): New global.
...
(gdb_compile): If target is *-*-cygwin* or *-*-mingw*, and we're
compiling an executable, link in an object that forces unbuffered
output.
* lib/set_unbuffered_mode.c: New file.
2008-06-27 16:42:19 +00:00
Jan Kratochvil
734a5c3612
* lib/gdb.exp (prepare_for_testing): Do not drop the OPTIONS argument.
2008-06-25 15:52:15 +00:00
Vladimir Prus
a2840c3559
Emit ^running via observer.
...
* mi/mi-interp.c (mi_cmd_interpreter_exec): Do no print
^running here.
(mi_on_resume): Print ^running if not previously output.
* mi/mi-main.c (running_result_record_printed): New.
(captured_mi_execute_command): Reset
running_result_record_printed. Use running_result_record_printed
to decide if we should skip ^done.
(mi_execute_async_cli_command): Don't print ^running here.
* mi/mi-main.h (current_token, running_result_record_printed):
Declare.
2008-06-25 14:32:34 +00:00
Vladimir Prus
6ae37fefeb
Robustify mi-simplerun.
...
* gdb.mi/basics.c (main): Add a call to sleep.
* gdb.mi/mi-cli.exp: Adjust for change in line numbers.
* gdb.mi/mi2-cli.exp: Likewise.
* gdb.mi/mi-break.exp: Likewise.
2008-06-13 19:53:42 +00:00
Vladimir Prus
b4aa76f032
Fix date in changelog entry
2008-06-11 13:50:55 +00:00
Vladimir Prus
83408de733
* gdb.mi/mi-break.exp (test_ignore_count): Use mi_expect_stop.
2008-06-11 13:35:58 +00:00
Vladimir Prus
e1ac332873
Implement *running.
...
* Makefile.in: Update dependencies.
* gdbthread.h (struct thread_info): New field
running_.
(set_running, is_running): New.
* thread.c (set_running, is_running): New.
* inferior.h (suppress_normal_stop_observer): Rename to...
(suppress_run_stop_observers): ..this.
* infcmd.c (suppress_normal_stop_observer): Rename to...
(suppress_run_stop_observers): ..this.
(finish_command_continuation, finish_command): Adjust.
* infcall.c (call_function_by_hand): Adjust.
* infrun.c (normal_stop): Call set_running.
* target.c (target_resume): New. Call set_running.
* target.h (target_resume): Convert from macro to
a function.
* mi/mi-interp.c (mi_on_resume): New.
(mi_interpreter_init): Register mi_on_resume.
2008-06-10 10:23:54 +00:00
Vladimir Prus
f7f9a841a3
Use observers to report stop events in MI.
...
* mi/mi-interp.c (mi_on_normal_stop): New.
(mi_interpreter_init): Register mi_on_normal_stop.
(mi_interpreter_exec_continuation): Remove.
(mi_cmd_interpreter_exec): Don't register the above.
* mi/mi-main.c (captured_mi_execute_command): Don't care
about sync_execution.
(mi_execute_async_cli_command): Don't install continuation. Don't
print *stopped.
(mi_exec_async_cli_cmd_continuation): Remove.
2008-06-10 09:35:09 +00:00
Tom Tromey
37cd5d19fe
gdb
...
* completer.c (complete_line): Don't special-case
expression_completer.
(expression_completer): Only pass last word to
location_completer.
* c-exp.y (yylex): Check 'token', not 'operator'.
gdb/testsuite
* gdb.base/completion.exp: New tests for field name completion
with spaces, and field name completion with '->'.
2008-06-09 19:25:15 +00:00
Tom Tromey
65d12d83a5
gdb
...
* value.h (evaluate_subexpression_type, extract_field_op):
Declare.
* printcmd.c (_initialize_printcmd): Use expression_completer for
'p', 'inspect', 'call'.
* parser-defs.h (parse_field_expression): Declare.
* parse.c: Include exceptions.h.
(in_parse_field, expout_last_struct): New globals.
(mark_struct_expression): New function.
(prefixify_expression): Return int.
(prefixify_subexp): Return int. Use expout_last_struct.
(parse_exp_1): Update.
(parse_exp_in_context): Add 'out_subexp' argument. Handle
in_parse_field.
(parse_field_expression): New function.
* expression.h (parse_field_expression): Declare.
(in_parse_field): Likewise.
* eval.c (evaluate_subexpression_type): New function.
(extract_field_op): Likewise.
* completer.h (expression_completer): Declare.
* completer.c (expression_completer): New function.
(count_struct_fields, add_struct_fields): New functions.
* c-exp.y (yyparse): Redefine.
(COMPLETE): New token.
(exp): New productions.
(saw_name_at_eof, last_was_structop): New globals.
(yylex): Return COMPLETE when needed. Recognize in_parse_field.
(c_parse): New function.
* breakpoint.c (_initialize_breakpoint): Use expression_completer
for watch, awatch, and rwatch.
* Makefile.in (parse.o): Depend on exceptions_h.
gdb/testsuite
* gdb.base/break1.c (struct some_struct): New struct.
(values): New global.
* gdb.base/completion.exp: Add field name completion test.
gdb/doc
* gdb.texinfo (Completion): Add field name example.
2008-06-06 20:58:08 +00:00
Paul Pluzhnikov
ebfe2e3fb6
2008-06-06 Paul Pluzhnikov <ppluzhnikov@google.com>
...
* gdb.cp/call-c.exp: Test for incorrect handling of reference
to pointer.
* gdb.cp/call-c.cc: Likewise.
2008-06-06 18:29:52 +00:00
Nick Roberts
bcf6fc3ae4
*** empty log message ***
2008-06-06 00:41:22 +00:00
Pedro Alves
49fd4a422b
gdb/
...
* linux-thread-db.c (thread_db_wait): Don't trim event ptid.
testsuite/
* gdb.threads/execl.c, gdb.threads/execl1.c,
gdb.threads/execl.exp: New tests.
2008-06-05 21:03:59 +00:00
Aleksandar Ristovski
8a34ac3f58
* gdb.cp/exception.exp: Activate test, make it work with pending
...
catchpoints.
2008-06-05 18:45:37 +00:00
Jan Kratochvil
86ae69ef81
* dw2-ref-missing-frame.S, dw2-ref-missing-frame.exp: New files.
2008-06-05 18:37:17 +00:00
Vladimir Prus
f7f9ae2c16
Refactor varobj_update interface.
...
* varobj.c (varobj_update): Report changes as vector. Also
return not just a list of varobj, but a list of special structures
that tell what exactly has changed.
* varobj.h (enum varobj_update_error): Rename to
varobj_scope_status.
(struct varobj_update_result_t): New.
(varobj_update): Adjust prototype.
* mi/mi-cmd-var.c: Adjust for changes.
2008-05-28 12:06:36 +00:00
Andreas Schwab
2a2d4dc301
* symtab.h (enum address_class): Remove LOC_REGPARM and
...
LOC_COMPUTED_ARG.
(struct symbol): Add is_argument.
(SYMBOL_IS_ARGUMENT): Define.
* ada-lang.c (ada_add_block_symbols): Use SYMBOL_IS_ARGUMENT.
* buildsym.c (finish_block): Likewise.
* stack.c (print_frame_args, print_block_frame_locals)
(print_frame_arg_vars): Likewise.
* symtab.c (lookup_block_symbol): Likewise.
* tracepoint.c (add_local_symbols): Likewise.
* mi/mi-cmd-stack.c (list_args_or_locals): Likewise.
* coffread.c (process_coff_symbol): Set SYMBOL_IS_ARGUMENT.
* dwarf2read.c (new_symbol): Likewise.
* mdebugread.c (parse_symbol): Likewise.
* stabsread.c (define_symbol): Likewise.
* ada-exp.y (select_possible_type_sym): Don't handle LOC_REGPARM
and LOC_COMPUTED_ARG.
* ada-lang.c (resolve_subexp, symtab_for_sym): Likewise.
* ax-gdb.c (gen_var_ref): Likewise.
* eval.c (evaluate_subexp_for_address): Likewise.
* findvar.c (symbol_read_needs_frame, read_var_value): Likewise.
* m2-exp.y (yylex): Likewise.
* printcmd.c (address_info): Likewise.
* symmisc.c (print_symbol, print_partial_symbols): Likewise.
* tracepoint.c (collect_symbol, scope_info): Likewise.
testsuite/:
* gdb.base/frame-args.exp: Handle arguments that are optimized
out.
2008-05-27 19:29:52 +00:00
Luis Machado
5099e4d90d
* gdb.arch/ppc64-atomic-inst.exp: Make the expected compile failure
...
quiet for ppc32 and group options into a single variable.
2008-05-26 15:46:55 +00:00
Joel Brobecker
d9c36a9152
* gdb.ada/null_array/foo.adb: Add multi-dimensional array
...
of zero-size elements.
* gdb.ada/null_array.exp: Test printing this new array.
2008-05-23 18:15:23 +00:00
Jan Kratochvil
103a867135
* gdb.base/longjmp.exp: Fix GDB_TEST_MULTIPLE missing GDB_PROMPT races.
2008-05-22 14:33:12 +00:00
Joel Brobecker
07a4cc1acc
Fix the date of the entry that I just added.
2008-05-21 17:58:21 +00:00
Joel Brobecker
5943254b56
* gdb.base/finish.exp: Test that "fin" works as an abbreviation
...
of the "finish" command.
2008-05-21 17:55:22 +00:00
Nick Roberts
55f996a733
*** empty log message ***
2008-05-20 21:10:31 +00:00
Ulrich Weigand
907fc20268
gdb/
...
2008-05-15 Pedro Alves <pedro@codesourcery.com>
Ulrich Weigand <uweigand@de.ibm.com>
* minsyms.c (lookup_minimal_symbol_by_pc_name): New function.
* symtab.h (lookup_minimal_symbol_by_pc_name): Add prototype.
* symtab.c (fixup_section): Remove prototype. Add ADDR parameter;
use it instead of ginfo->value.address. Look up minimal symbol by
address and name. Assume OBJFILE is non-NULL.
(fixup_symbol_section): Ensure we always have an objfile to look
into. Extract and pass to fixup_section the symbol's address that
will match the minimal symbol's address.
(fixup_psymbol_section): Likewise.
(find_pc_sect_psymtab): Fall back to non-addrmap case when debugging
overlays and the addrmap returned the wrong section.
* dwarf2read.c (var_decode_location): Set SYMBOL_CLASS before
calling fixup_symbol_section.
gdb/testsuite/
2008-05-15 Pedro Alves <pedro@codesourcery.com>
* gdb.base/fixsection.exp: New file.
* gdb.base/fixsection0.c: New file.
* gdb.base/fixsection1.c: New file.
2008-05-16 12:58:49 +00:00
Ulrich Weigand
e8f972703a
* gdb.base/annota1.exp: Accept printf@... in place of printf.
...
* gdb.base/annota3.exp: Likewise.
2008-05-16 12:48:08 +00:00
Nathan Froyd
ac0bb574ab
* gdb.base/watch_thread_num.exp: Don't run tests that require
...
watchpoints if the target doesn't support them.
2008-05-13 21:17:18 +00:00
Doug Evans
6fadd07a48
* lib/gdbserver-support.exp (find_gdbserver): Use $GDBSERVER if set.
2008-05-12 17:25:28 +00:00
Joel Brobecker
6e9a4a305b
* gdb.ada/assign_1.exp: New testcase.
2008-05-09 23:51:40 +00:00
Doug Evans
a3c83fae41
remove cruft from previous checkin
2008-05-09 18:08:56 +00:00
Doug Evans
08388c79d5
New "find" command.
...
* NEWS: Document find command and qSearch:memory packet.
* Makefile.in (SFILES): Add findcmd.c.
(COMMON_OBJS): Add findcmd.o.
(findcmd.o): New rule.
* findcmd.c: New file.
* target.h (target_ops): New member to_search_memory.
(simple_search_memory): Declare.
(target_search_memory): Declare.
* target.c (simple_search_memory): New fn.
(target_search_memory): New fn.
* remote.c (PACKET_qSearch_memory): New packet kind.
(remote_search_memory): New fn.
(init_remote_ops): Init to_search_memory.
(init_extended_remote_ops): Ditto.
(_initialize_remote): Add qSearch:memory packet config command.
* gdbserver/server.h (decode_search_memory_packet): Declare.
* gdbserver/remote-utils.c (decode_search_memory_packet): New fn.
* gdbserver/server.c (handle_search_memory_1): New fn.
(handle_search_memory): New fn.
(handle_query): Process qSearch:memory packets.
* doc/gdb.texinfo: Document "find" command, qSearch:memory packet.
* testsuite/gdb.base/find.exp: New file.
* testsuite/gdb.base/find.c: New file.
2008-05-09 17:02:03 +00:00
Daniel Jacobowitz
bd5ddfe865
* gdb.base/commands.exp (watchpoint_command_test): Handle
...
gdb,no_hardware_watchpoints.
* gdb.base/float.exp: Allow ARM targets without floating point.
* gdb.base/step-test.exp: Allow callee@plt when stepping in.
2008-05-08 16:30:53 +00:00
Joel Brobecker
b5dd68e231
* gdb.ada/lang_switch: New test program.
...
* gdb.ada/lang_switch.exp: New testcase.
2008-05-06 21:37:32 +00:00
Doug Evans
382d13d1ca
* gdb.base/help.exp (disassemble): Update expected help text.
2008-05-05 22:54:49 +00:00
Pedro Alves
9dd789d040
* gdb.base/longjmp.c, gdb.base/longjmp.exp: New files.
2008-05-04 19:43:31 +00:00
Pedro Alves
611c83ae47
gdb/
...
* breakpoint.c (update_breakpoints_after_exec): Delete bp_longjmp
and bp_longjmp_resume breakpoints.
(breakpoint_address_is_meaningful): Claim bp_longjmp_resume as
meaningful.
(create_longjmp_breakpoint): Don't create bp_longjmp_resume
breakpoints. Create bp_longjmp breakpoints as momentary
breakpoints.
(enable_longjmp_breakpoint): Delete.
(set_longjmp_breakpoint): New.
(disable_longjmp_breakpoint): Delete.
(delete_longjmp_breakpoint): New.
(set_longjmp_resume_breakpoint): Delete.
(set_momentary_breakpoint_at_pc): New.
(breakpoint_re_set_one): Don't delete bp_longjmp and
bp_longjmp_resume breakpoints.
(breakpoint_re_set): Don't create longjmp and longjmp-resume
breakpoints.
* infrun.c (step_resume_breakpoint): Add comment.
(struct execution_control_state): Delete handling_longjmp member.
(init_execution_control_state). Don't clear handling_longjmp.
(context_switch): Don't context switch handling_longjmp.
(handle_inferior_event): If handling a bp_longjmp breakpoint,
create a bp_longjmp_resume breakpoint, and set it as current
step_resume_breakpoint, then step over the longjmp breakpoint. If
handling a bp_longjmp_resume breakpoint, don't delete the longjmp
breakpoint, delete the longjmp-resume breakpoint, and stop
stepping.
(currently_stepping): Remove handling_longjmp from expression.
(insert_step_resume_breakpoint_at_sal): Update comment.
(insert_longjmp_resume_breakpoint): New.
* breakpoint.h (set_momentary_breakpoint_at_pc): Declare.
(enable_longjmp_breakpoint, disable_longjmp_breakpoint): Delete
declarations.
(set_longjmp_breakpoint, delete_longjmp_breakpoint): Declare.
(set_longjmp_resume_breakpoint): Delete declaration.
* gdbthread.h (save_infrun_state): Remove handling_longjmp
parameter.
(load_infrun_state): Delete *handling_longjmp parameter.
* thread.c (save_infrun_state): Remove handling_longjmp parameter.
Update body.
(load_infrun_state): Delete *handling_longjmp parameter. Update
body.
* infcmd.c (disable_longjmp_breakpoint_cleanup): Delete.
(delete_longjmp_breakpoint_cleanup): New.
(step_1): Call set_longjmp_breakpoint instead of
enable_longjmp_breakpoint. Use delete_longjmp_breakpoint_cleanup
instead of disable_longjmp_breakpoint_cleanup when making cleanup.
(step_1_continuation): Pass thread id in the continuation args to
step_once.
(step_once): Add thread parameter. Pass thread id the the
continuation.
gdb/testsuite/
* gdb.cp/annota2.exp: Adjust to breakpoints invalidations at
different times.
2008-05-04 19:39:00 +00:00
Jan Kratochvil
ff013f42f4
gdb/
...
* Makefile.in: Update dependencies.
* dwarf2read.c: Include "addrmap.h"
(struct dwarf2_cu): New fields RANGES_OFFSET and HAS_RANGES_OFFSET.
(dwarf2_ranges_read): New prototype.
(dwarf2_build_psymtabs_hard): Initialize and prepare PSYMTABS_ADDRMAP.
Add discontiguous range to PSYMTABS_ADDRMAP by DWARF2_RANGES_READ on
HAS_RANGES_OFFSET, otherwise add there the contiguous range.
(dwarf2_ranges_read): New parameter RANGES_PST, update the function
comment for it. Add the found ranges to RANGES_PST. New variable
BASEADDR, initialize it the common way.
(dwarf2_get_pc_bounds): Update the caller for the new parameter.
(read_partial_die): `DW_AT_ranges' now only sets RANGES_OFFSET and
HAS_RANGES_OFFSET for the later processing.
* objfiles.h (struct objfile): New field PSYMTABS_ADDRMAP.
* symtab.c: Include "addrmap.h"
(find_pc_sect_psymtab): Support reading the field PSYMTABS_ADDRMAP.
Move the psymtab locator into ...
(find_pc_sect_psymtab_closer): ... a new function.
gdb/testsuite/
* gdb.dwarf2/dw2-ranges.S: Merge the secondary section with `.fini'.
* gdb.dwarf2/dw2-ranges.exp: Compile also `dw2-ranges2.S' and
`dw2-ranges3.S' and test also their MAIN2, FUNC2 and MAIN3 symbols.
* gdb.dwarf2/dw2-ranges2.S, gdb.dwarf2/dw2-ranges3.S: New files.
2008-05-04 17:27:01 +00:00
Vladimir Prus
96dff6a2f4
* lib/mi-support.exp (mi_run_cmd): Allow for =thread-created
...
notification to appear.
2008-05-04 12:15:54 +00:00
Daniel Jacobowitz
55cd6f92dc
* gdb.base/fullname.c: New file.
...
* gdb.base/fullname.exp: New file.
* lib/gdb.exp (gdb_breakpoint): Support no-message option.
2008-05-04 04:04:11 +00:00
Pedro Alves
d705c43c5a
gdb/
...
* parse.c (parse_exp_in_context): Don't override
expression_context_pc if get_selected_block returned a valid
block.
gdb/testsuite/
* gdb.base/macscp.exp, gdb.base/macscp1.c: Add test for printing
expressions with macros.
2008-05-03 22:30:51 +00:00
Jan Kratochvil
333222e127
* gdb.base/dfp-test.exp: Fix random FAIL risk on calling functions.
2008-05-03 21:56:38 +00:00
Daniel Jacobowitz
5ac016828d
* gdb.base/completion.exp: Handle lack of other symbols beginning
...
with "a".
* gdb.base/varargs.exp: Correct quoting for options to gdb_compile.
2008-05-02 20:30:49 +00:00
Pedro Alves
237fc4c9cd
Implement displaced stepping.
...
gdb/
* gdbarch.sh (max_insn_length): New 'variable'.
(displaced_step_copy, displaced_step_fixup)
(displaced_step_free_closure, displaced_step_location): New
functions.
(struct displaced_step_closure): Add forward declaration.
* gdbarch.c, gdbarch.h: Regenerated.
* arch-utils.c: #include "objfiles.h".
(simple_displaced_step_copy_insn)
(simple_displaced_step_free_closure)
(displaced_step_at_entry_point): New functions.
* arch-utils.h (simple_displaced_step_copy_insn)
(simple_displaced_step_free_closure)
(displaced_step_at_entry_point): New prototypes.
* i386-tdep.c (I386_MAX_INSN_LEN): Rename to...
(I386_MAX_MATCHED_INSN_LEN): ... this.
(i386_absolute_jmp_p, i386_absolute_call_p)
(i386_ret_p, i386_call_p, i386_breakpoint_p, i386_syscall_p)
(i386_displaced_step_fixup): New functions.
(struct i386_insn, i386_match_insn): Update.
(i386_gdbarch_init): Set gdbarch_max_insn_length.
* i386-tdep.h (I386_MAX_INSN_LEN): New.
(i386_displaced_step_fixup): New prototype.
* i386-linux-tdep.c (i386_linux_init_abi): Include "arch-utils.h".
Register gdbarch_displaced_step_copy,
gdbarch_displaced_step_fixup, gdbarch_displaced_step_free_closure,
and gdbarch_displaced_step_location functions.
* infrun.c (debug_displaced): New variable.
(show_debug_displaced): New function.
(struct displaced_step_request): New struct.
(displaced_step_request_queue, displaced_step_ptid)
(displaced_step_gdbarch, displaced_step_closure)
(displaced_step_original, displaced_step_copy)
(displaced_step_saved_copy, can_use_displaced_stepping): New
variables.
(show_can_use_displaced_stepping, use_displaced_stepping)
(displaced_step_clear, cleanup_displaced_step_closure)
(displaced_step_dump_bytes, displaced_step_prepare)
(displaced_step_clear_cleanup, write_memory_ptid)
(displaced_step_fixup): New functions.
(resume): Call displaced_step_prepare.
(proceed): Call read_pc once, and remember the value. If using
displaced stepping, don't remove breakpoints.
(handle_inferior_event): Call displaced_step_fixup. Add some
debugging output. When we try to step over a breakpoint, but get
a signal to deliver to the thread instead, ensure the step-resume
breakpoint is actually inserted. If a thread hop is needed, and
displaced stepping is enabled, don't remove breakpoints.
(init_wait_for_inferior): Call displaced_step_clear.
(_initialize_infrun): Add "set debug displaced" command. Add
"maint set can-use-displaced-stepping" command. Clear
displaced_step_ptid.
* inferior.h (debug_displaced): Declare variable.
(displaced_step_dump_bytes): Declare function.
* Makefile.in (arch-utils.o, i386-linux-tdep.o): Update
dependencies.
gdb/testsuite/
* gdb.asm/asmsrc1.s: Add scratch space.
gdb/doc/
* gdb.texinfo (Debugging Output): Document "set/show debug
displaced".
(Maintenance Commands): Document "maint set/show
can-use-displaced-stepping".
2008-05-02 16:49:54 +00:00