[pushed] gdb: fix thread_step_over_chain_length

Simon Marchi simon.marchi@polymtl.ca
Tue Aug 17 19:27:18 GMT 2021


If I debug a single-thread program and look at the infrun debug logs, I
see:

    [infrun] start_step_over: stealing global queue of threads to step, length = 2

That makes no sense... turns out there's a buglet in
thread_step_over_chain_length, "num" should be initialized to 0.  I
think this bug is a leftover from an earlier version of the code (not
merged upstream) that manually walked the list, where the first item was
implicitly counted (hence the 1).

Change-Id: I0af03aa93509aed36528be5076894dc156a0b5ce
---
 gdb/thread.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gdb/thread.c b/gdb/thread.c
index 8f0584e5238e..a82fb49140a3 100644
--- a/gdb/thread.c
+++ b/gdb/thread.c
@@ -380,7 +380,7 @@ thread_is_in_step_over_chain (struct thread_info *tp)
 int
 thread_step_over_chain_length (const thread_step_over_list &l)
 {
-  int num = 1;
+  int num = 0;
 
   for (const thread_info &thread ATTRIBUTE_UNUSED : l)
     ++num;
-- 
2.32.0



More information about the Gdb-patches mailing list