GNU Binutils with patches for OS216
Revisión | 1f8a316b13dd3ff6cb8e27aef3a3d3e514af26db (tree) |
---|---|
Tiempo | 2006-04-01 05:35:47 |
Autor | Michael Snyder <msnyder@vmwa...> |
Commiter | Michael Snyder |
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.
@@ -1,3 +1,128 @@ | ||
1 | +2006-03-31 Michael Snyder <msnyder@redhat.com> | |
2 | + | |
3 | + Target interface for reverse execution. | |
4 | + * target.h (enum target_waitkind): | |
5 | + Add new wait event, TARGET_WAITKIND_NO_HISTORY. | |
6 | + (enum exec_direction_kind): New enum. | |
7 | + (struct target_ops): New methods to_set_execdir, to_get_execdir. | |
8 | + (target_set_execution_direction): New macro. | |
9 | + (target_get_execution_direction): New macro. | |
10 | + * target.c (update_current_target): Inherit new execdir methods. | |
11 | + | |
12 | +2006-03-31 Andrew Stubbs <andrew.stubbs@st.com> | |
13 | + | |
14 | + * value.h (struct internalvar): Add field 'endian'. | |
15 | + * value.c (lookup_internalvar): Initialise endian. | |
16 | + (value_of_internalvar): Flip the endian of built-in types if required. | |
17 | + (set_internalvar): Set the endian. | |
18 | + (show_convenience): Access the value through value_of_internalvar(). | |
19 | + | |
20 | +2006-03-30 Vladimir Prus <ghost@cs.msu.su> | |
21 | + | |
22 | + * remote.c (watchpoint_to_Z_packet): Use values of Z_packet_type enum | |
23 | + instead of hardcoded integer literals. | |
24 | + | |
25 | +2006-03-30 Daniel Jacobowitz <dan@codesourcery.com> | |
26 | + | |
27 | + * cli/cli-script.c (insert_args): Handle NULL user_args. | |
28 | + | |
29 | +2006-03-30 Daniel Jacobowitz <dan@codesourcery.com> | |
30 | + | |
31 | + * arm-tdep.c (thumb_scan_prologue): Don't try to analyze | |
32 | + the function at zero if we have no symbols. | |
33 | + | |
34 | +2006-03-30 Adrien Kunysz <a_kunysz@yahoo.com> | |
35 | + | |
36 | + * i386-stub.c (getpacket): Fix array overflow. | |
37 | + * m32r-stub.c (getpacket): Likewise. | |
38 | + * m68k-stub.c (getpacket): Likewise. | |
39 | + * sh-stub.c (getpacket): Likewise. | |
40 | + * sparc-stub.c (getpacket): Likewise. | |
41 | + | |
42 | +2006-03-30 Daniel Jacobowitz <dan@codesourcery.com> | |
43 | + | |
44 | + * frame.h (set_current_sal_from_frame): New prototype. | |
45 | + * stack.c (set_current_sal_from_frame): Make global. | |
46 | + * infrun.c (normal_stop): Call set_current_sal_from_frame. | |
47 | + | |
48 | +2006-03-30 Daniel Jacobowitz <dan@codesourcery.com> | |
49 | + | |
50 | + * linux-thread-db.c: Include "linux-nat.h". | |
51 | + (check_for_thread_db): New function, split out from | |
52 | + thread_db_new_objfile. Remove dead check for active | |
53 | + thread_db on inapplicable targets. | |
54 | + (thread_db_new_objfile): Call check_for_thread_db. | |
55 | + * Makefile.in (linux-thread-db.o): Update. | |
56 | + * linux-nat.c (child_post_attach): Call check_for_thread_db. | |
57 | + (linux_child_post_startup_inferior): Likewise. | |
58 | + (lin_lwp_attach_lwp): Call target_post_attach instead of | |
59 | + child_post_attach. | |
60 | + * linux-nat.h (check_for_thread_db): New prototype. | |
61 | + | |
62 | +2006-03-30 Daniel Jacobowitz <dan@codesourcery.com> | |
63 | + | |
64 | + * remote.c (struct remote_state): Add BUF and BUF_SIZE. | |
65 | + (init_remote_state): Initialize the new fields. | |
66 | + (get_memory_packet_size): Update BUF and BUF_SIZE if necessary. | |
67 | + (set_thread, remote_thread_alive, remote_unpack_thread_info_response) | |
68 | + (remote_get_threadinfo, parse_threadlist_response) | |
69 | + (remote_get_threadlist, remote_current_thread, remote_threads_info) | |
70 | + (remote_threads_extra_info, extended_remote_restart, get_offsets) | |
71 | + (remote_check_symbols, remote_open_1, remote_detach) | |
72 | + (remove_vcont_probe, remote_vcont_resume, remote_resume) | |
73 | + (remote_wait, remote_async_wait, fetch_register_using_p) | |
74 | + (remote_fetch_registers, store_register_using_P) | |
75 | + (remote_store_registers, check_binary_download, remote_write_bytes) | |
76 | + (remote_read_bytes, remote_insert_breakpoint) | |
77 | + (remote_remove_breakpoint, remote_insert_watchpoint) | |
78 | + (remote_remove_watchpoint, remote_insert_hw_breakpoint) | |
79 | + (remote_remove_hw_breakpoint, compare_sections_command) | |
80 | + (remote_xfer_partial, remote_rcmd, packet_command) | |
81 | + (remote_get_thread_local_address): Use the global incoming buffer | |
82 | + instead of alloca or xmalloc. Limit outgoing packets to | |
83 | + rs->remote_packet_size and incoming packets to rs->buf_size. | |
84 | + Update calls to getpkt and remote_send. | |
85 | + (remote_send): Take arguments by reference. | |
86 | + (putpkt_binary): Eliminate junkbuf. Use skip_frame. | |
87 | + (skip_frame): New function. | |
88 | + (read_frame): Take arguments by reference. Expand the packet | |
89 | + buffer instead of issuing an error. | |
90 | + (getpkt, getpkt_sane): Take arguments by reference. | |
91 | + * remote.h (getpkt): Update prototype and doc. | |
92 | + * tracepoint.c (remote_get_noisy_reply): Take arguments by | |
93 | + reference. | |
94 | + (target_buf): Change from array to pointer. | |
95 | + (target_buf_size): New variable. | |
96 | + (remote_set_transparent_ranges): Update call to getpkt. | |
97 | + (trace_start_command, trace_stop_command, trace_status_command): | |
98 | + Update calls to remote_get_noisy_reply. | |
99 | + (finish_tfind_command): Take arguments by reference. | |
100 | + (trace_find_command, trace_find_pc_command) | |
101 | + (trace_find_tracepoint_command, trace_find_line_command): | |
102 | + (trace_find_range_command, trace_find_outside_command): Update | |
103 | + calls to finish_tfind_command. | |
104 | + (_initialize_tracepoint): Initialize target_buf_size and target_buf. | |
105 | + | |
106 | +2005-03-30 Randolph Chung <tausq@debian.org> | |
107 | + | |
108 | + * hppa-linux-tdep.c: Include regset.h. | |
109 | + (GR_REGNUM, TR_REGNUM, greg_map): New. | |
110 | + (hppa_linux_supply_regset, hppa_linux_supply_fpregset): New. | |
111 | + (hppa_linux_regset, hppa_linux_fpregset): New. | |
112 | + (hppa_linux_regset_from_core_section): New. | |
113 | + (hppa_linux_init_abi): Set regset_from_core_section. | |
114 | + (_initialize_hppa_linux_tdep): Register osabi handler for | |
115 | + 64-bit Linux. | |
116 | + * Makefile.in (hppa-linux-tdep.o): Update dependencies. | |
117 | + * config/pa/linux.mh: Stop using core-regset.o | |
118 | + | |
119 | +2006-03-30 Randolph Chung <tausq@debian.org> | |
120 | + | |
121 | + * hppa-tdep.c (hppa_find_unwind_entry_in_block): New. | |
122 | + (hppa_frame_cache): Use new function to find unwind entry. | |
123 | + (hppa_frame_this_id): Likewise. | |
124 | + (hppa_frame_unwind_sniffer): Likewise. | |
125 | + | |
1 | 126 | 2006-03-29 Daniel Jacobowitz <dan@codesourcery.com> |
2 | 127 | |
3 | 128 | * NEWS: Mention the removal of NLM. |
@@ -457,6 +457,8 @@ update_current_target (void) | ||
457 | 457 | INHERIT (to_find_memory_regions, t); |
458 | 458 | INHERIT (to_make_corefile_notes, t); |
459 | 459 | INHERIT (to_get_thread_local_address, t); |
460 | + INHERIT (to_get_execdir, t); | |
461 | + INHERIT (to_set_execdir, t); | |
460 | 462 | INHERIT (to_magic, t); |
461 | 463 | } |
462 | 464 | #undef INHERIT |
@@ -129,7 +129,11 @@ enum target_waitkind | ||
129 | 129 | inferior, rather than being stuck in the remote_async_wait() |
130 | 130 | function. This way the event loop is responsive to other events, |
131 | 131 | like for instance the user typing. */ |
132 | - TARGET_WAITKIND_IGNORE | |
132 | + TARGET_WAITKIND_IGNORE, | |
133 | + | |
134 | + /* The target has run out of history information, | |
135 | + and cannot run backward any further. */ | |
136 | + TARGET_WAITKIND_NO_HISTORY | |
133 | 137 | }; |
134 | 138 | |
135 | 139 | struct target_waitstatus |
@@ -148,6 +152,14 @@ struct target_waitstatus | ||
148 | 152 | value; |
149 | 153 | }; |
150 | 154 | |
155 | +/* Reverse execution. */ | |
156 | +enum exec_direction_kind | |
157 | + { | |
158 | + EXEC_FORWARD, | |
159 | + EXEC_REVERSE, | |
160 | + EXEC_ERROR | |
161 | + }; | |
162 | + | |
151 | 163 | /* Possible types of events that the inferior handler will have to |
152 | 164 | deal with. */ |
153 | 165 | enum inferior_event_type |
@@ -423,6 +435,11 @@ struct target_ops | ||
423 | 435 | gdb_byte *readbuf, const gdb_byte *writebuf, |
424 | 436 | ULONGEST offset, LONGEST len); |
425 | 437 | |
438 | + /* Set execution direction (forward/reverse). */ | |
439 | + int (*to_set_execdir) (enum exec_direction_kind); | |
440 | + /* Get execution direction (forward/reverse). */ | |
441 | + enum exec_direction_kind (*to_get_execdir) (void); | |
442 | + | |
426 | 443 | int to_magic; |
427 | 444 | /* Need sub-structure for target machine related rather than comm related? |
428 | 445 | */ |
@@ -1074,6 +1091,18 @@ extern int target_stopped_data_address_p (struct target_ops *); | ||
1074 | 1091 | #define target_stopped_data_address_p(CURRENT_TARGET) (1) |
1075 | 1092 | #endif |
1076 | 1093 | |
1094 | +/* Forward/reverse execution direction. | |
1095 | + These will only be implemented by a target that supports reverse execution. | |
1096 | +*/ | |
1097 | +#define target_get_execution_direction() \ | |
1098 | + (current_target.to_get_execdir ? \ | |
1099 | + (*current_target.to_get_execdir) () : EXEC_ERROR) | |
1100 | + | |
1101 | +#define target_set_execution_direction(DIR) \ | |
1102 | + (current_target.to_set_execdir ? \ | |
1103 | + (*current_target.to_set_execdir) (DIR) : EXEC_ERROR) | |
1104 | + | |
1105 | + | |
1077 | 1106 | /* This will only be defined by a target that supports catching vfork events, |
1078 | 1107 | such as HP-UX. |
1079 | 1108 |