From: Michael Snyder Date: Fri, 31 Mar 2006 20:35:47 +0000 (+0000) Subject: 2006-03-31 Michael Snyder X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1f8a316b13dd3ff6cb8e27aef3a3d3e514af26db;p=thirdparty%2Fbinutils-gdb.git 2006-03-31 Michael Snyder Target interface for reverse execution. * target.h (enum target_waitkind): Add new wait event, TARGET_WAITKIND_NO_HISTORY. (enum exec_direction_kind): New enum. (struct target_ops): New methods to_set_execdir, to_get_execdir. (target_set_execution_direction): New macro. (target_get_execution_direction): New macro. * target.c (update_current_target): Inherit new execdir methods. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 69d3ba775af..2cc5b60b696 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,128 @@ +2006-03-31 Michael Snyder + + Target interface for reverse execution. + * target.h (enum target_waitkind): + Add new wait event, TARGET_WAITKIND_NO_HISTORY. + (enum exec_direction_kind): New enum. + (struct target_ops): New methods to_set_execdir, to_get_execdir. + (target_set_execution_direction): New macro. + (target_get_execution_direction): New macro. + * target.c (update_current_target): Inherit new execdir methods. + +2006-03-31 Andrew Stubbs + + * value.h (struct internalvar): Add field 'endian'. + * value.c (lookup_internalvar): Initialise endian. + (value_of_internalvar): Flip the endian of built-in types if required. + (set_internalvar): Set the endian. + (show_convenience): Access the value through value_of_internalvar(). + +2006-03-30 Vladimir Prus + + * remote.c (watchpoint_to_Z_packet): Use values of Z_packet_type enum + instead of hardcoded integer literals. + +2006-03-30 Daniel Jacobowitz + + * cli/cli-script.c (insert_args): Handle NULL user_args. + +2006-03-30 Daniel Jacobowitz + + * arm-tdep.c (thumb_scan_prologue): Don't try to analyze + the function at zero if we have no symbols. + +2006-03-30 Adrien Kunysz + + * i386-stub.c (getpacket): Fix array overflow. + * m32r-stub.c (getpacket): Likewise. + * m68k-stub.c (getpacket): Likewise. + * sh-stub.c (getpacket): Likewise. + * sparc-stub.c (getpacket): Likewise. + +2006-03-30 Daniel Jacobowitz + + * frame.h (set_current_sal_from_frame): New prototype. + * stack.c (set_current_sal_from_frame): Make global. + * infrun.c (normal_stop): Call set_current_sal_from_frame. + +2006-03-30 Daniel Jacobowitz + + * linux-thread-db.c: Include "linux-nat.h". + (check_for_thread_db): New function, split out from + thread_db_new_objfile. Remove dead check for active + thread_db on inapplicable targets. + (thread_db_new_objfile): Call check_for_thread_db. + * Makefile.in (linux-thread-db.o): Update. + * linux-nat.c (child_post_attach): Call check_for_thread_db. + (linux_child_post_startup_inferior): Likewise. + (lin_lwp_attach_lwp): Call target_post_attach instead of + child_post_attach. + * linux-nat.h (check_for_thread_db): New prototype. + +2006-03-30 Daniel Jacobowitz + + * remote.c (struct remote_state): Add BUF and BUF_SIZE. + (init_remote_state): Initialize the new fields. + (get_memory_packet_size): Update BUF and BUF_SIZE if necessary. + (set_thread, remote_thread_alive, remote_unpack_thread_info_response) + (remote_get_threadinfo, parse_threadlist_response) + (remote_get_threadlist, remote_current_thread, remote_threads_info) + (remote_threads_extra_info, extended_remote_restart, get_offsets) + (remote_check_symbols, remote_open_1, remote_detach) + (remove_vcont_probe, remote_vcont_resume, remote_resume) + (remote_wait, remote_async_wait, fetch_register_using_p) + (remote_fetch_registers, store_register_using_P) + (remote_store_registers, check_binary_download, remote_write_bytes) + (remote_read_bytes, remote_insert_breakpoint) + (remote_remove_breakpoint, remote_insert_watchpoint) + (remote_remove_watchpoint, remote_insert_hw_breakpoint) + (remote_remove_hw_breakpoint, compare_sections_command) + (remote_xfer_partial, remote_rcmd, packet_command) + (remote_get_thread_local_address): Use the global incoming buffer + instead of alloca or xmalloc. Limit outgoing packets to + rs->remote_packet_size and incoming packets to rs->buf_size. + Update calls to getpkt and remote_send. + (remote_send): Take arguments by reference. + (putpkt_binary): Eliminate junkbuf. Use skip_frame. + (skip_frame): New function. + (read_frame): Take arguments by reference. Expand the packet + buffer instead of issuing an error. + (getpkt, getpkt_sane): Take arguments by reference. + * remote.h (getpkt): Update prototype and doc. + * tracepoint.c (remote_get_noisy_reply): Take arguments by + reference. + (target_buf): Change from array to pointer. + (target_buf_size): New variable. + (remote_set_transparent_ranges): Update call to getpkt. + (trace_start_command, trace_stop_command, trace_status_command): + Update calls to remote_get_noisy_reply. + (finish_tfind_command): Take arguments by reference. + (trace_find_command, trace_find_pc_command) + (trace_find_tracepoint_command, trace_find_line_command): + (trace_find_range_command, trace_find_outside_command): Update + calls to finish_tfind_command. + (_initialize_tracepoint): Initialize target_buf_size and target_buf. + +2005-03-30 Randolph Chung + + * hppa-linux-tdep.c: Include regset.h. + (GR_REGNUM, TR_REGNUM, greg_map): New. + (hppa_linux_supply_regset, hppa_linux_supply_fpregset): New. + (hppa_linux_regset, hppa_linux_fpregset): New. + (hppa_linux_regset_from_core_section): New. + (hppa_linux_init_abi): Set regset_from_core_section. + (_initialize_hppa_linux_tdep): Register osabi handler for + 64-bit Linux. + * Makefile.in (hppa-linux-tdep.o): Update dependencies. + * config/pa/linux.mh: Stop using core-regset.o + +2006-03-30 Randolph Chung + + * hppa-tdep.c (hppa_find_unwind_entry_in_block): New. + (hppa_frame_cache): Use new function to find unwind entry. + (hppa_frame_this_id): Likewise. + (hppa_frame_unwind_sniffer): Likewise. + 2006-03-29 Daniel Jacobowitz * NEWS: Mention the removal of NLM. diff --git a/gdb/target.c b/gdb/target.c index fbfc58a6be5..eddf6a7c18c 100644 --- a/gdb/target.c +++ b/gdb/target.c @@ -457,6 +457,8 @@ update_current_target (void) INHERIT (to_find_memory_regions, t); INHERIT (to_make_corefile_notes, t); INHERIT (to_get_thread_local_address, t); + INHERIT (to_get_execdir, t); + INHERIT (to_set_execdir, t); INHERIT (to_magic, t); } #undef INHERIT diff --git a/gdb/target.h b/gdb/target.h index b804b05df43..105b38f53e7 100644 --- a/gdb/target.h +++ b/gdb/target.h @@ -129,7 +129,11 @@ enum target_waitkind inferior, rather than being stuck in the remote_async_wait() function. This way the event loop is responsive to other events, like for instance the user typing. */ - TARGET_WAITKIND_IGNORE + TARGET_WAITKIND_IGNORE, + + /* The target has run out of history information, + and cannot run backward any further. */ + TARGET_WAITKIND_NO_HISTORY }; struct target_waitstatus @@ -148,6 +152,14 @@ struct target_waitstatus value; }; +/* Reverse execution. */ +enum exec_direction_kind + { + EXEC_FORWARD, + EXEC_REVERSE, + EXEC_ERROR + }; + /* Possible types of events that the inferior handler will have to deal with. */ enum inferior_event_type @@ -423,6 +435,11 @@ struct target_ops gdb_byte *readbuf, const gdb_byte *writebuf, ULONGEST offset, LONGEST len); + /* Set execution direction (forward/reverse). */ + int (*to_set_execdir) (enum exec_direction_kind); + /* Get execution direction (forward/reverse). */ + enum exec_direction_kind (*to_get_execdir) (void); + int to_magic; /* Need sub-structure for target machine related rather than comm related? */ @@ -1074,6 +1091,18 @@ extern int target_stopped_data_address_p (struct target_ops *); #define target_stopped_data_address_p(CURRENT_TARGET) (1) #endif +/* Forward/reverse execution direction. + These will only be implemented by a target that supports reverse execution. +*/ +#define target_get_execution_direction() \ + (current_target.to_get_execdir ? \ + (*current_target.to_get_execdir) () : EXEC_ERROR) + +#define target_set_execution_direction(DIR) \ + (current_target.to_set_execdir ? \ + (*current_target.to_set_execdir) (DIR) : EXEC_ERROR) + + /* This will only be defined by a target that supports catching vfork events, such as HP-UX.