[all-commits] [llvm/llvm-project] f0e67e: [lldb] Fix flaky TestConcurrentTwoWatchpointsOneSi...

Charles Zablit via All-commits all-commits at lists.llvm.org
Tue Sep 8 03:59:43 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: f0e67ea7d15c44b252f46388fecac396382e1a16
      https://github.com/llvm/llvm-project/commit/f0e67ea7d15c44b252f46388fecac396382e1a16
  Author: Charles Zablit <c_zablit at apple.com>
  Date:   2026-09-08 (Tue, 08 Sep 2026)

  Changed paths:
    M lldb/packages/Python/lldbsuite/test/concurrent_base.py
    M lldb/test/API/functionalities/thread/concurrent_events/main.cpp

  Log Message:
  -----------
  [lldb] Fix flaky TestConcurrentTwoWatchpointsOneSignal (#221697)

`g_watchme` was declared right next to `g_sigusr1_count`. Hardware
watchpoints round the watched address/size to an alignment boundary, so
a watchpoint on `g_watchme` could also end up covering
`g_sigusr1_count`. When the signal thread's handler touches
`g_sigusr1_count` while the watchpoint threads write `g_watchme`, that
overlap causes a spurious hit and lldb can attribute the stop to the
wrong thread.

See llvm.org/PR35228.

Fix: group the watched field and its padding into a single aligned
struct (`WatchMePadding`), so the compiler is guaranteed to lay out the
data and padding together.

Assisted by Claude.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list