aboutsummaryrefslogtreecommitdiff
path: root/gdb/ChangeLog
diff options
context:
space:
mode:
authorMarkus Metzger <markus.t.metzger@intel.com>2015-08-24 16:28:06 +0200
committerMarkus Metzger <markus.t.metzger@intel.com>2015-09-18 14:23:38 +0200
commite3cfc1c76d89f904659b106d78b352884797967b (patch)
tree5d460f556fa10aabc40bcd4a2664ceb0ff479c00 /gdb/ChangeLog
parentcf8f8f0c4244b4980ce538680f81de3738ba08d6 (diff)
downloadgdb-e3cfc1c76d89f904659b106d78b352884797967b.zip
gdb-e3cfc1c76d89f904659b106d78b352884797967b.tar.gz
gdb-e3cfc1c76d89f904659b106d78b352884797967b.tar.bz2
btrace: lock-step
Record btrace's to_wait method picks a single thread to step. When passed minus_one_ptid, it picks the current thread. All other threads remain where they are. Change this to step all resumed threads together, one step at a time, until the first thread reports an event. We do delay reporting NO_HISTORY events until there are no other events to report to prevent threads at the end of their execution history from starving other threads. We keep threads at the end of their execution history moving and replaying until we announce their stop in to_wait. This shouldn't really be user-visible but its a detail worth mentioning. Since record btrace's to_resume method also picks only a single thread to resume, there shouldn't be a difference with the current all-stop. With non-stop or all-stop on top of non-stop, we will see differences. The behaviour should be more natural as we're moving all threads. gdb/ * record-btrace.c: Include vec.h. (record_btrace_find_thread_to_move): Removed. (btrace_step_no_resumed, btrace_step_again) (record_btrace_stop_replaying_at_end): New. (record_btrace_cancel_resume): Call record_btrace_stop_replaying_at_end. (record_btrace_single_step_forward): Remove calls to record_btrace_stop_replaying. (record_btrace_step_thread): Do only one step for BTHR_CONT and BTHR_RCONT. Keep threads at the end of their history moving. (record_btrace_wait): Call record_btrace_step_thread for all threads until one reports an event. Call record_btrace_stop_replaying_at_end for the eventing thread.
Diffstat (limited to 'gdb/ChangeLog')
-rw-r--r--gdb/ChangeLog15
1 files changed, 15 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 3fafdef..7c927bb 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,20 @@
2015-09-18 Markus Metzger <markus.t.metzger@intel.com>
+ * record-btrace.c: Include vec.h.
+ (record_btrace_find_thread_to_move): Removed.
+ (btrace_step_no_resumed, btrace_step_again)
+ (record_btrace_stop_replaying_at_end): New.
+ (record_btrace_cancel_resume): Call record_btrace_stop_replaying_at_end.
+ (record_btrace_single_step_forward): Remove calls to
+ record_btrace_stop_replaying.
+ (record_btrace_step_thread): Do only one step for BTHR_CONT and
+ BTHR_RCONT. Keep threads at the end of their history moving.
+ (record_btrace_wait): Call record_btrace_step_thread for all threads
+ until one reports an event. Call record_btrace_stop_replaying_at_end
+ for the eventing thread.
+
+2015-09-18 Markus Metzger <markus.t.metzger@intel.com>
+
* record-btrace.c (record_btrace_single_step_forward): Return
NO_HISTORY if a step brings us to the end of the execution history.