gdb: fix thread_step_over_chain_length
authorSimon Marchi <simon.marchi@polymtl.ca>
Tue, 17 Aug 2021 19:23:41 +0000 (15:23 -0400)
committerSimon Marchi <simon.marchi@polymtl.ca>
Tue, 17 Aug 2021 19:26:10 +0000 (15:26 -0400)
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

index 8f0584e5238e0e720dcfca5ec7c894fab2cbc71d..a82fb49140a326867cc37c4887f87c0b889c0db0 100644 (file)
@@ -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;