]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
2006-03-31 Michael Snyder <msnyder@redhat.com>
authorMichael Snyder <msnyder@vmware.com>
Fri, 31 Mar 2006 20:35:47 +0000 (20:35 +0000)
committerMichael Snyder <msnyder@vmware.com>
Fri, 31 Mar 2006 20:35:47 +0000 (20:35 +0000)
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.

gdb/ChangeLog
gdb/target.c
gdb/target.h

index 69d3ba775af2066536efc29ce13228e162147ecf..2cc5b60b69672b6ad29c45279944ec5540d7ce9f 100644 (file)
@@ -1,3 +1,128 @@
+2006-03-31  Michael Snyder  <msnyder@redhat.com>
+
+       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  <andrew.stubbs@st.com>
+
+       * 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  <ghost@cs.msu.su>
+
+       * remote.c (watchpoint_to_Z_packet): Use values of Z_packet_type enum
+       instead of hardcoded integer literals.
+
+2006-03-30  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * cli/cli-script.c (insert_args): Handle NULL user_args.
+
+2006-03-30  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * 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  <a_kunysz@yahoo.com>
+
+       * 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  <dan@codesourcery.com>
+       * 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  <dan@codesourcery.com>
+
+       * 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  <dan@codesourcery.com>
+
+       * 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  <tausq@debian.org>
+
+       * 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  <tausq@debian.org>
+
+       * 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  <dan@codesourcery.com>
 
        * NEWS: Mention the removal of NLM.
index fbfc58a6be57812a5a2539f8a8bd93b3c91a8d6b..eddf6a7c18c44952ec58c4cda77a08275a6d4648 100644 (file)
@@ -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
index b804b05df4359a5c8158369023c4595fcb90d9f0..105b38f53e7b1451e239176333952befb56c28e1 100644 (file)
@@ -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.