Commit graph

11 commits

Author SHA1 Message Date
Pedro Alves
08d72866c0 PR gdb/15911: "info threads" changes the default source and line (for "break", "list")
"info threads" changes the default source for "break" and "list", to
whatever the location of the first/bottom thread in the thread list
is...

 (gdb) b start
 (gdb) c
 ...
 (gdb) list
 *lists "start"*
 (gdb) b 23
 Breakpoint 3 at 0x400614: file test.c, line 23.
 (gdb) info threads
   Id   Target Id         Frame
 * 2    Thread 0x7ffff7fcb700 (LWP 1760) "test" start (arg=0x0) at test.c:23
   1    Thread 0x7ffff7fcc740 (LWP 1748) "test" 0x000000323dc08e60 in pthread_join (threadid=140737353922304, thread_return=0x0) at pthread_join.c:93
 (gdb) b 23
 Breakpoint 4 at 0x323dc08d90: file pthread_join.c, line 23.
                                    ^^^^^^^^^^^^^^^
 (gdb) list
 93          lll_wait_tid (pd->tid);
 94
 95
 96        /* Restore cancellation mode.  */
 97        CANCEL_RESET (oldtype);
 98
 99        /* Remove the handler.  */
 100       pthread_cleanup_pop (0);
 101
 102

The issue is that print_stack_frame always sets the current sal to the
frame's sal.  print_frame_info (which print_stack_frame calls to do
most of the work) also sets the last displayed sal, but only if
print_what isn't LOCATION.  Now the call in question, from within
thread.c:print_thread_info, does pass in LOCATION as print_what, but
print_stack_frame doesn't have the same check print_frame_info has.
We could consider adding it, but setting these globals depending on
print_what isn't very clean, IMO.  What we have is two logically
distinct operations mixed in the same function(s):

  #1 - print frame, in the format specified by {print_what,
    print_level and print_args}.

  #2 - We're displaying a frame to the user, and I want the default
    sal to point here, because the program stopped here, or the user
    did some context-changing command (up, down, etc.).

So I added a new parameter to print_stack_frame & friends for point
#2, and went through all calls in the tree adjusting as necessary.

Tested on x86_64 Fedora 17.

gdb/
2013-09-17  Pedro Alves  <palves@redhat.com>

	PR gdb/15911
	* ada-tasks.c (task_command_1): Adjust call to print_stack_frame.
	* bsd-kvm.c (bsd_kvm_open, bsd_kvm_proc_cmd, bsd_kvm_pcb_cmd):
	* corelow.c (core_open):
	* frame.h (print_stack_frame, print_frame_info): New
	'set_current_sal' parameter.
	* infcmd.c (finish_command, kill_command): Adjust call to
	print_stack_frame.
	* inferior.c (inferior_command): Likewise.
	* infrun.c (normal_stop): Likewise.
	* linux-fork.c (linux_fork_context): Likewise.
	* record-full.c (record_full_goto_entry, record_full_restore):
	Likewise.
	* remote-mips.c (common_open): Likewise.
	* stack.c (print_stack_frame): New 'set_current_sal' parameter.
	Use it.
	(print_frame_info): New 'set_current_sal' parameter.  Set the last
	displayed sal depending on the new paremeter instead of looking at
	print_what.
	(backtrace_command_1, select_and_print_frame, frame_command)
	(current_frame_command, up_command, down_command): Adjust call to
	print_stack_frame.
	* thread.c (print_thread_info, restore_selected_frame)
	(do_captured_thread_select): Adjust call to print_stack_frame.
	* tracepoint.c (tfind_1): Likewise.
	* mi/mi-cmd-stack.c (mi_cmd_stack_list_frames)
	(mi_cmd_stack_info_frame): Likewise.
	* mi/mi-interp.c (mi_on_normal_stop): Likewise.
	* mi/mi-main.c (mi_cmd_exec_return, mi_cmd_trace_find): Likewise.

	gdb/testsuite/
	* gdb.threads/info-threads-cur-sal-2.c: New file.
	* gdb.threads/info-threads-cur-sal.c: New file.
	* gdb.threads/info-threads-cur-sal.exp: New file.
2013-09-17 18:26:41 +00:00
Doug Evans
2b2848e211 * target.h (struct target_section): Delete member bfd.
All users updated to use the_bfd_section->owner instead.
	* exec.c (add_to_section_table): Assert bfd is expected value.
	Remove initialization of target_section.bfd.
	(remove_target_sections): Update.
	(section_table_available_memory): Update.
	(section_table_xfer_memory_partial): Update.
	(print_section_info): Update.
	(exec_set_section_address): Update.
	* record-full.c (record_full_core_xfer_partial): Update.
	* solib-svr4.c (svr4_relocate_section_addresses): Update.
	* solib-target.c (solib_target_relocate_section_addresses): Update.
	* symfile.c (build_section_addr_info_from_section_table): Update.
	* target.c (memory_xfer_live_readonly_partial): Update.
	(memory_xfer_partial_1): Update.
2013-07-16 20:41:55 +00:00
Tom Tromey
85e1311a3c * gcore.c (create_gcore_bfd): Make 'filename' const.
* gcore.h (create_gcore_bfd): Make 'filename' const.
	* record-full.c (record_full_save): Make 'recfilename' const.
	* target.c (target_save_record): Make 'filename' const.
	* target.h (struct target_ops) <to_save_record>: Make 'filename'
	const.
	(target_save_record): Likewise.
2013-05-14 20:30:48 +00:00
Pedro Alves
0f928d685b -Wpointer-sign: bookmarks.
Bookmarks are opaque to the core code -- by design, the target is free
to use any sort of blob as bookmark identifier.

The record target chooses to use strings for bookmarks.  This adds
casts following that direction, fixing -Wpointer-sign warnings.

gdb/
2013-04-19  Pedro Alves  <palves@redhat.com>

	* record-full.c (record_full_get_bookmark): Change local 'ret'
	type to char * and add cast to gdb_byte *.
	(record_full_goto_bookmark): Handle 'bookmark' argument as a
	string.
	* reverse.c (goto_bookmark_command): Add casts to gdb_byte *.
2013-04-19 15:32:56 +00:00
Pedro Alves
f81d112039 Accept "set foo unlimited" in integer/uinteger/zuinteger_unlimited commands.
Currently, several commands take "0" or "-1" to mean "unlimited".

"show" knows when to print "unlimited":

 (gdb) show height
 Number of lines gdb thinks are in a page is 45.
 (gdb) set height 0
 (gdb) show height
 Number of lines gdb thinks are in a page is unlimited.

However, the user can't herself specify "unlimited" directly:

 (gdb) set height unlimited
 No symbol table is loaded.  Use the "file" command.
 (gdb)

This patch addresses that, by adjusting the set handler for all
integer/uinteger/zuinteger_unlimited commands to accept literal
"unlimited".  It also installs a completer.  Presently, we complete on
symbols by default, and at
<http://sourceware.org/ml/gdb-patches/2013-03/msg00864.html> I've
shown a WIP prototype that tried to keep that half working in these
commands.  In the end, it turned out to be more complicated than
justifiable, IMO.  It's super rare to want to pass the value of a
variable/symbol in the program to a GDB set/show knob.  That'll still
work, it's just that we won't assist with completion anymore.  This
patch just sticks with the simple, and completes on "unlimited", and
nothing else.  This simplification means that

  "set he<tab><tab>"

is all it takes to get to:

  "set height unlimited"

The patch then goes through all integer/uinteger/zuinteger_unlimited
commands in the tree, and updates both the online help and the manual
to mention that "unlimited" is accepted in addition to 0/-1.  In the
cases where the command had no online help text at all, this adds it.
I've tried to make the texts read in a way that "unlimited" is
suggested before "0" or "-1" is.

Tested on x86_64 Fedora 17.

gdb/
2013-04-10  Pedro Alves  <palves@redhat.com>

	* cli/cli-decode.c (integer_unlimited_completer): New function.
	(add_setshow_integer_cmd, add_setshow_uinteger_cmd)
	(add_setshow_zuinteger_unlimited_cmd): Install the "unlimited"
	completer.
	* cli/cli-setshow.c: Include "cli/cli-utils.h".
	(is_unlimited_literal): New function.
	(do_set_command): Handle literal "unlimited" arguments.
	* frame.c (_initialize_frame) <set backtrace limit>: Document
	"unlimited".
	* printcmd.c (_initialize_printcmd) <set print
	max-symbolic-offset>: Add help text.
	* record-full.c (_initialize_record_full) <set record full
	insn-number-max>: Likewise.
	* record.c (_initialize_record) <set record
	instruction-history-size, set record function-call-history-size>:
	Add help text.
	* ser-tcp.c (_initialize_ser_tcp) <set tcp connect-timeout>: Add
	help text.
	* tracepoint.c (_initialize_tracepoint) <set trace-buffer-size>:
	Likewise.
	* source.c (_initialize_source) <set listsize>: Add help text.
	* utils.c (initialize_utils) <set height, set width>: Likewise.
	<set pagination>: Mention "set height unlimited".
	* valprint.c (_initialize_valprint) <set print elements, set print
	repeats>: Document "unlimited".

gdb/doc/
2013-04-10  Pedro Alves  <palves@redhat.com>

	* gdb.texinfo (Process Record and Replay): Document that "set
	record full insn-number-max", "set record
	instruction-history-size" and "set record
	function-call-history-size" accept "unlimited".
	(Backtrace): Document that "set backtrace limit" accepts
	"unlimited".
	(List): Document that "set listsize" accepts "unlimited".
	(Print Settings)" Document that "set print max-symbolic-offset",
	"set print elements" and "set print repeats" accept "unlimited".
	(Starting and Stopping Trace Experiments): Document that "set
	trace-buffer-size" accepts "unlimited".
	(Remote Configuration): Document that "set tcp connect-timeout"
	accepts "unlimited".
	(Command History): Document that "set history size" accepts
	"unlimited".
	(Screen Size): Document that "set height" and "set width" accepts
	"unlimited".  Adjust "set pagination"'s description to suggest
	"set height unlimited" instead of "set height 0".

gdb/testsuite/
2013-04-10  Pedro Alves  <palves@redhat.com>

	* gdb.base/completion.exp: Test "set height", "set listsize" and
	"set trace-buffer-size" completion.
	* gdb.base/setshow.exp: Test "set height unlimited".
	* gdb.trace/trace-buffer-size.exp: Test "set trace-buffer-size
	unlimited".
2013-04-10 15:11:12 +00:00
Pedro Alves
7ee70bf518 record-full.c: Remove always true checks.
The "set record full insn-number-max" command is an uinteger command.
If the variable that holds the maximum count of logged instructions is
unsigned, it's better if the variable that holds the current number of
logged instructions is also unsigned.  Looking over the code, there's
no case the variable could end up negative.

Then, tests like "if (record_full_insn_max_num)" are always true,
because being a uinteger command means that "set record full
insn-number-max 0" is actually mapped to UINT_MAX internally.  IOW,
the command's variable is never 0.  The checks might make some sense
if 0 wasn't mapped to UINT_MAX, and 0 meant unlimited, but, that's not
how things work.

Tested on x86_64 Fedora 17.

gdb/
2013-03-26  Pedro Alves  <palves@redhat.com>

	* record-full.c (record_full_insn_num): Make it unsigned.
	(record_full_check_insn_num, record_full_message)
	(record_full_registers_change, record_full_xfer_partial): Remove
	record_full_insn_max_num check (it's always != 0).
	(record_full_info, record_full_restore): Use %u as format string.
	(): Use %u as format string.
	(set_record_full_insn_max_num): Remove record_full_insn_max_num
	check (it's always != 0).
2013-03-26 20:01:03 +00:00
Jan Kratochvil
460014f572 gdb/
Code cleanup.
	* bfd-target.c (target_bfd_xclose): Remove parameter quitting.
	* bsd-kvm.c (bsd_kvm_close): Likewise.
	* bsd-uthread.c (bsd_uthread_close): Likewise.
	* corelow.c (core_close): Likewise.
	(core_close_cleanup): Remove parameter quitting from a caller.
	* event-top.c (async_disconnect): Likewise.
	* exec.c (exec_close_1): Remove parameter quitting.
	* go32-nat.c (go32_close): Likewise.
	* linux-nat.c (linux_nat_close): Remove parameter quitting.  Remove
	parameter quitting from a caller.
	* mips-linux-nat.c (super_close): Remove parameter quitting from the
	variable.
	(mips_linux_close): Remove parameter quitting.  Remove parameter
	quitting from a caller.
	* monitor.c (monitor_close): Remove parameter quitting.
	* monitor.h (monitor_close): Likewise.
	* record-btrace.c (record_btrace_close): Likewise.
	* record-full.c (record_full_close): Likewise.
	* remote-m32r-sdi.c (m32r_close): Remove parameter quitting and remove
	it also from fprintf_unfiltered.
	* remote-mips.c (mips_close): Remove parameter quitting.
	(mips_detach): Remove parameter quitting from a caller.
	* remote-sim.c (gdbsim_close): Remove parameter quitting.
	(gdbsim_close): Remove duplicate function comment.  Remove parameter
	quitting and remove it also from printf_filtered.
	* remote.c (remote_close): Remove parameter quitting.
	* solib-svr4.c (enable_break): Remove parameter quitting from a caller.
	* target.c (update_current_target): Remove parameter int from to_close
	de_fault.
	(push_target, unpush_target, pop_target): Remove parameter quitting from
	a caller.
	(pop_all_targets_above, pop_all_targets): Remove parameter quitting.
	Remove parameter quitting from a caller.
	(target_preopen): Remove parameter quitting from a caller.
	(target_close): Remove parameter quitting.  Remove parameter quitting
	from a caller two times.  Remove parameter quitting also from
	fprintf_unfiltered.
	* target.h (struct target_ops): Remove parameter quitting and as int
	from fields to_xclose and to_close.
	(extern struct target_ops current_target):
	(target_close, pop_all_targets): Remove parameter quitting.  Update the
	comment.
	(pop_all_targets_above): Remove parameter quitting.
	* top.c (quit_target): Remove parameter quitting from a caller.
	* tracepoint.c (tfile_close): Remove parameter quitting.
	* windows-nat.c (windows_close): Remove parameter quitting.
2013-03-20 15:46:24 +00:00
Markus Metzger
7c1687a966 Provide default target methods for record targets that are likely to be shared
between different record targets.

gdb/
	* record.h (record_disconnect): New.
	(record_detach): New.
	(record_mourn_inferior): New.
	(record_kill): New.
	* record-full.c (record_disconnect, record_detach,
	record_mourn_inferior, record_kill): Move to...
	* record.c: ...here.
	(DEBUG): New.
	(record_stop): New.
	(record_unpush): New.
	(cmd_record_stop): Call record_stop. Replace unpush_target
	call with record_unpush call.
	(record_disconnect, record_detach): Assert that the target
	is of record stratum. Call record_unpush, record_stop, and
	DEBUG.
	(record_mourn_inferior, record_kill): Assert that the target
	is of record stratum. Call record_unpush and DEBUG.
2013-03-11 08:47:10 +00:00
Markus Metzger
25ea693b87 Rename record_ prefixes in record-full.h into record_full_.
gdb/
	* record-full.h, record-full.c (record_memory_query): Rename
	to ...
	(record_full_memory_query): ...this. Update all users.
	(record_arch_list_add_reg): Rename to ...
	(record_full_arch_list_add_reg): ...this. Update all users.
	(record_arch_list_add_mem): Rename to ...
	(record_full_arch_list_add_mem): ...this. Update all users.
	(record_arch_list_add_end): Rename to ...
	(record_full_arch_list_add_end): ...this. Update all users.
	(record_gdb_operation_disable_set): Rename to ...
	(record_full_gdb_operation_disable_set): ...this.
	Update all users.
2013-03-11 08:45:54 +00:00
Markus Metzger
88d1aa9d26 Rename record_ prefixes in record-full.c into record_full_.
gdb/
	* record-full.c (DEFAULT_RECORD_INSN_MAX_NUM): Renamed to ...
	(DEFAULT_RECORD_FULL_INSN_MAX_NUM): ... this. Updated all users.
	(RECORD_IS_REPLAY): Renamed to ...
	(RECORD_FULL_IS_REPLAY): ... this. Updated all users.
	(RECORD_FILE_MAGIC): Renamed to ...
	(RECORD_FULL_FILE_MAGIC): ... this. Updated all users.
	(record_mem_entry): Renamed to ...
	(record_full_mem_entry): ... this. Updated all users.
	(record_reg_entry): Renamed to ...
	(record_full_reg_entry): ... this. Updated all users.
	(record_end_entry): Renamed to ...
	(record_full_end_entry): ... this. Updated all users.
	(record_type) <record_end, record_reg, record_mem>: Renamed
	to ...
	(record_full_type) <record_full_end, record_full_reg,
	record_full_mem>: ... this. Updated all users.
	(record_entry): Renamed to ...
	(record_full_entry): ... this. Updated all users.
	(record_core_buf_entry): Renamed to ...
	(record_full_core_buf_entry): ... this. Updated all users.
	(record_core_regbuf): Renamed to ...
	(record_full_core_regbuf): ... this. Updated all users.
	(record_core_start): Renamed to ...
	(record_full_core_start): ... this. Updated all users.
	(record_core_end): Renamed to ...
	(record_full_core_end): ... this. Updated all users.
	(record_core_buf_list): Renamed to ...
	(record_full_core_buf_list): ... this. Updated all users.
	(record_first): Renamed to ...
	(record_full_first): ... this. Updated all users.
	(record_list): Renamed to ...
	(record_full_list): ... this. Updated all users.
	(record_arch_list_head): Renamed to ...
	(record_full_arch_list_head): ... this. Updated all users.
	(record_arch_list_tail): Renamed to ...
	(record_full_arch_list_tail): ... this. Updated all users.
	(record_stop_at_limit): Renamed to ...
	(record_full_stop_at_limit): ... this. Updated all users.
	(record_insn_max_num): Renamed to ...
	(record_full_insn_max_num): ... this. Updated all users.
	(record_insn_num): Renamed to ...
	(record_full_insn_num): ... this. Updated all users.
	(record_insn_count): Renamed to ...
	(record_full_insn_count): ... this. Updated all users.
	(record_ops): Renamed to ...
	(record_full_ops): ... this. Updated all users.
	(record_core_ops): Renamed to ...
	(record_full_core_ops): ... this. Updated all users.
	(set_record_cmdlist): Renamed to ...
	(set_record_full_cmdlist): ... this. Updated all users.
	(show_record_cmdlist): Renamed to ...
	(show_record_full_cmdlist): ... this. Updated all users.
	(record_cmdlist): Renamed to ...
	(record_full_cmdlist): ... this. Updated all users.
	(record_beneath_to_resume_ops): Renamed to ...
	(record_full_beneath_to_resume_ops): ... this. Updated all users.
	(record_beneath_to_resume): Renamed to ...
	(record_full_beneath_to_resume): ... this. Updated all users.
	(record_beneath_to_wait_ops): Renamed to ...
	(record_full_beneath_to_wait_ops): ... this. Updated all users.
	(record_beneath_to_wait): Renamed to ...
	(record_full_beneath_to_wait): ... this. Updated all users.
	(record_beneath_to_store_registers_ops): Renamed to ...
	(record_full_beneath_to_store_registers_ops): ... this.
	Updated all users.
	(record_beneath_to_store_registers): Renamed to ...
	(record_full_beneath_to_store_registers): ... this.
	Updated all users.
	(record_beneath_to_xfer_partial_ops): Renamed to ...
	(record_full_beneath_to_xfer_partial_ops): ... this.
	Updated all users.
	(record_beneath_to_xfer_partial): Renamed to ...
	(record_full_beneath_to_xfer_partial): ... this.
	Updated all users.
	(record_beneath_to_insert_breakpoint): Renamed to ...
	(record_full_beneath_to_insert_breakpoint): ... this.
	Updated all users.
	(record_beneath_to_stopped_by_watchpoint): Renamed to ...
	(record_full_beneath_to_stopped_by_watchpoint): ... this.
	Updated all users.
	(record_beneath_to_stopped_data_address): Renamed to ...
	(record_full_beneath_to_stopped_data_address): ... this.
	Updated all users.
	(record_beneath_to_async): Renamed to ...
	(record_full_beneath_to_async): ... this. Updated all users.
	(record_goto_insn): Renamed to ...
	(record_full_goto_insn): ... this. Updated all users.
	(record_save): Renamed to ...
	(record_full_save): ... this. Updated all users.
	(record_reg_alloc): Renamed to ...
	(record_full_reg_alloc): ... this. Updated all users.
	(record_reg_release): Renamed to ...
	(record_full_reg_release): ... this. Updated all users.
	(record_mem_alloc): Renamed to ...
	(record_full_mem_alloc): ... this. Updated all users.
	(record_mem_release): Renamed to ...
	(record_full_mem_release): ... this. Updated all users.
	(record_end_alloc): Renamed to ...
	(record_full_end_alloc): ... this. Updated all users.
	(record_end_release): Renamed to ...
	(record_full_end_release): ... this. Updated all users.
	(record_entry_release): Renamed to ...
	(record_full_entry_release): ... this. Updated all users.
	(record_list_release): Renamed to ...
	(record_full_list_release): ... this. Updated all users.
	(record_list_release_following): Renamed to ...
	(record_full_list_release_following): ... this.
	Updated all users.
	(record_list_release_first): Renamed to ...
	(record_full_list_release_first): ... this. Updated all users.
	(record_arch_list_add): Renamed to ...
	(record_full_arch_list_add): ... this. Updated all users.
	(record_get_loc): Renamed to ...
	(record_full_get_loc): ... this. Updated all users.
	(record_check_insn_num): Renamed to ...
	(record_full_check_insn_num): ... this. Updated all users.
	(record_arch_list_cleanups): Renamed to ...
	(record_full_arch_list_cleanups): ... this. Updated all users.
	(record_message): Renamed to ...
	(record_full_message): ... this. Updated all users.
	(record_message_wrapper): Renamed to ...
	(record_full_message_wrapper): ... this. Updated all users.
	(record_message_wrapper_safe): Renamed to ...
	(record_full_message_wrapper_safe): ... this. Updated all users.
	(record_gdb_operation_disable): Renamed to ...
	(record_full_gdb_operation_disable): ... this. Updated all users.
	(record_hw_watchpoint): Renamed to ...
	(record_full_hw_watchpoint): ... this. Updated all users.
	(record_exec_insn): Renamed to ...
	(record_full_exec_insn): ... this. Updated all users.
	(record_restore): Renamed to ...
	(record_full_restore): ... this. Updated all users.
	(record_async_inferior_event_token): Renamed to ...
	(record_full_async_inferior_event_token): ... this.
	Updated all users.
	(record_async_inferior_event_handler): Renamed to ...
	(record_full_async_inferior_event_handler): ... this.
	Updated all users.
	(record_core_open_1): Renamed to ...
	(record_full_core_open_1): ... this. Updated all users.
	(record_open_1): Renamed to ...
	(record_full_open_1): ... this. Updated all users.
	(record_open): Renamed to ...
	(record_full_open): ... this. Updated all users.
	(record_close): Renamed to ...
	(record_full_close): ... this. Updated all users.
	(record_resume_step): Renamed to ...
	(record_full_resume_step): ... this. Updated all users.
	(record_resumed): Renamed to ...
	(record_full_resumed): ... this. Updated all users.
	(record_execution_dir): Renamed to ...
	(record_full_execution_dir): ... this. Updated all users.
	(record_resume): Renamed to ...
	(record_full_resume): ... this. Updated all users.
	(record_get_sig): Renamed to ...
	(record_full_get_sig): ... this. Updated all users.
	(record_sig_handler): Renamed to ...
	(record_full_sig_handler): ... this. Updated all users.
	(record_wait_cleanups): Renamed to ...
	(record_full_wait_cleanups): ... this. Updated all users.
	(record_wait_1): Renamed to ...
	(record_full_wait_1): ... this. Updated all users.
	(record_wait): Renamed to ...
	(record_full_wait): ... this. Updated all users.
	(record_stopped_by_watchpoint): Renamed to ...
	(record_full_stopped_by_watchpoint): ... this. Updated all users.
	(record_disconnect): Renamed to ...
	(record_full_disconnect): ... this. Updated all users.
	(record_detach): Renamed to ...
	(record_full_detach): ... this. Updated all users.
	(record_mourn_inferior): Renamed to ...
	(record_full_mourn_inferior): ... this. Updated all users.
	(record_kill): Renamed to ...
	(record_full_kill): ... this. Updated all users.
	(record_stopped_data_address): Renamed to ...
	(record_full_stopped_data_address): ... this. Updated all users.
	(record_registers_change): Renamed to ...
	(record_full_registers_change): ... this. Updated all users.
	(record_store_registers): Renamed to ...
	(record_full_store_registers): ... this. Updated all users.
	(record_xfer_partial): Renamed to ...
	(record_full_xfer_partial): ... this. Updated all users.
	(record_breakpoint): Renamed to ...
	(record_full_breakpoint): ... this. Updated all users.
	(record_breakpoint_p): Renamed to ...
	(record_full_breakpoint_p): ... this. Updated all users.
	(record_breakpoints): Renamed to ...
	(record_full_breakpoints): ... this. Updated all users.
	(record_sync_record_breakpoints): Renamed to ...
	(record_full_sync_record_breakpoints): ... this.
	Updated all users.
	(record_init_record_breakpoints): Renamed to ...
	(record_full_init_record_breakpoints): ... this.
	Updated all users.
	(record_insert_breakpoint): Renamed to ...
	(record_full_insert_breakpoint): ... this. Updated all users.
	(record_remove_breakpoint): Renamed to ...
	(record_full_remove_breakpoint): ... this. Updated all users.
	(record_can_execute_reverse): Renamed to ...
	(record_full_can_execute_reverse): ... this. Updated all users.
	(record_get_bookmark): Renamed to ...
	(record_full_get_bookmark): ... this. Updated all users.
	(record_goto_bookmark): Renamed to ...
	(record_full_goto_bookmark): ... this. Updated all users.
	(record_async): Renamed to ...
	(record_full_async): ... this. Updated all users.
	(record_can_async_p): Renamed to ...
	(record_full_can_async_p): ... this. Updated all users.
	(record_is_async_p): Renamed to ...
	(record_full_is_async_p): ... this. Updated all users.
	(record_execution_direction): Renamed to ...
	(record_full_execution_direction): ... this. Updated all users.
	(record_info): Renamed to ...
	(record_full_info): ... this. Updated all users.
	(record_delete): Renamed to ...
	(record_full_delete): ... this. Updated all users.
	(record_is_replaying): Renamed to ...
	(record_full_is_replaying): ... this. Updated all users.
	(record_goto_entry): Renamed to ...
	(record_full_goto_entry): ... this. Updated all users.
	(record_goto_begin): Renamed to ...
	(record_full_goto_begin): ... this. Updated all users.
	(record_goto_end): Renamed to ...
	(record_full_goto_end): ... this. Updated all users.
	(record_goto): Renamed to ...
	(record_full_goto): ... this. Updated all users.
	(init_record_ops): Renamed to ...
	(init_record_full_ops): ... this. Updated all users.
	(record_core_resume): Renamed to ...
	(record_full_core_resume): ... this. Updated all users.
	(record_core_kill): Renamed to ...
	(record_full_core_kill): ... this. Updated all users.
	(record_core_fetch_registers): Renamed to ...
	(record_full_core_fetch_registers): ... this. Updated all users.
	(record_core_prepare_to_store): Renamed to ...
	(record_full_core_prepare_to_store): ... this. Updated all users.
	(record_core_store_registers): Renamed to ...
	(record_full_core_store_registers): ... this. Updated all users.
	(record_core_xfer_partial): Renamed to ...
	(record_full_core_xfer_partial): ... this. Updated all users.
	(record_core_insert_breakpoint): Renamed to ...
	(record_full_core_insert_breakpoint): ... this. Updated all users.
	(record_core_remove_breakpoint): Renamed to ...
	(record_full_core_remove_breakpoint): ... this. Updated all users.
	(record_core_has_execution): Renamed to ...
	(record_full_core_has_execution): ... this. Updated all users.
	(init_record_core_ops): Renamed to ...
	(init_record_full_core_ops): ... this. Updated all users.
	(cmd_record_restore): Renamed to ...
	(cmd_record_full_restore): ... this. Updated all users.
	(record_save_cleanups): Renamed to ...
	(record_full_save_cleanups): ... this. Updated all users.
	(cmd_record_start): Renamed to ...
	(cmd_record_full_start): ... this. Updated all users.
	(set_record_insn_max_num): Renamed to ...
	(set_record_full_insn_max_num): ... this. Updated all users.
	(set_record_command): Renamed to ...
	(set_record_full_command): ... this. Updated all users.
	(show_record_command): Renamed to ...
	(show_record_full_command): ... this. Updated all users.
	(_initialize_record): Renamed to ...
	(_initialize_record_full): ... this. Updated all users.
2013-03-11 08:44:14 +00:00
Markus Metzger
d02ed0bbfa Split record.h into record.h and record-full.h.
Split record.c into record.c and record-full.c.

The split leaves the command part in record.c and moves the target part into
record-full.c.

gdb/
	* record.h: Split into this and ...
	* record-full.h: ... this.
	* record.c: Split into this and ...
	* record-full.c: ... this.
	* target.h (target_ops): Add new fields to_info_record,
	to_save_record, to_delete_record, to_record_is_replaying,
	to_goto_record_begin, to_goto_record_end, to_goto_record.
	(target_info_record): New.
	(target_save_record): New.
	(target_supports_delete_record): New.
	(target_delete_record): New.
	(target_record_is_replaying): New.
	(target_goto_record_begin): New.
	(target_goto_record_end): New.
	(target_goto_record): New.
	* target.c (target_info_record): New.
	(target_save_record): New.
	(target_supports_delete_record): New.
	(target_delete_record): New.
	(target_record_is_replaying): New.
	(target_goto_record_begin): New.
	(target_goto_record_end): New.
	(target_goto_record): New.
	* record.h: Declare struct cmd_list_element.
	(record_cmdlist): New declaration.
	(set_record_cmdlist): New declaration.
	(show_record_cmdlist): New declaration.
	(info_record_cmdlist): New declaration.
	(cmd_record_goto): New declaration.
	* record.c: Remove unnecessary includes.
	Include inferior.h.
	(cmd_record_goto): Remove declaration.
	(record_cmdlist): Now extern. Initialize.
	(set_record_cmdlist): Now extern. Initialize.
	(show_record_cmdlist): Now extern. Initialize.
	(info_record_cmdlist): Now extern. Initialize.
	(find_record_target): New.
	(require_record_target): New.
	(cmd_record_start): Update.
	(cmd_record_delete): Remove target-specific code.
	Call target_delete_record.
	(cmd_record_stop): Unpush any record target.
	(set_record_insn_max_num): Move to record-full.c
	(set_record_command): Add comment.
	(show_record_command): Add comment.
	(info_record_command): Update comment.
	Remove target-specific code.
	Call the record target's to_info_record.
	(cmd_record_start): New.
	(cmd_record_goto): Now extern.
	Remove target-specific code.
	Call target_goto_begin,  target_goto_end, or target_goto.
	(_initialize_record): Move record target ops initialization to
	record-full.c.
	Change "record" command help text.
	Move "record restore", "record set", and "record show" commands to
	record-full.c.
	* Makefile.in (SFILES): Add record-full.c.
	(HFILES_NO_SRCDIR): Add record-full.h.
	(COMMON_OBS): Add record-full.o.
	* amd64-linux-tdep.c: Include record-full.h instead of record.h.
	* arm-tdep.c: Include record-full.h.
	* i386-linux-tdep.c: Include record-full.h instead of record.h.
	* i386-tdep.c: Include record-full.h.
	* infrun.c: Include record-full.h.
	* linux-record.c: Include record-full.h.
	* moxie-tdep.c: Include record-full.h.
	* record-full.c: Include record-full.h.
	Change module comment.
	(set_record_full_cmdlist): New.
	(show_record_full_cmdlist): New.
	(record_full_cmdlist): New.
	(record_goto_insn): New declaration.
	(record_save): New declaration.
	(record_check_insn_num): Change query string.
	(record_info): New.
	(record_delete): New.
	(record_is_replaying): New.
	(record_goto_entry): New.
	(record_goto_begin): New.
	(record_goto_end): New.
	(record_goto): New.
	(init_record_ops): Update.
	(init_record_core_ops): Update.
	(cmd_record_save): Rename to record_save. Remove target and arg checks.
	(cmd_record_start): New.
	(set_record_insn_max_num): Moved from record.c
	(set_record_full_command): New.
	(show_record_full_command): New.
	(_initialize_record_full): New.
2013-03-11 08:42:55 +00:00