Med Ismail Bennani 8cd31aa2c6
[lldb/Breakpoint] Fix condition hash after updating condition text (#181409)
StopCondition::SetText was computing the hash from the moved-from text
parameter instead of the stored m_text member. After std::move(text),
the source parameter becomes empty, causing the hash to always be
computed from an empty string.

This caused breakpoint condition updates to fail silently. When a user
modified a condition (e.g., from "x == y" to "x > y"), the hash remained
unchanged. Breakpoint locations use this hash to detect when conditions
need re-evaluation, so with a stale hash they would continue using
cached state for the old condition, triggering at incorrect locations.

The patch fixes this issue by computing the hash from m_text after the
move operation, ensuring it reflects the actual stored condition text.

It also adds API test that updates a breakpoint condition and verifies
the new condition is properly evaluated.

rdar://170191229

Signed-off-by: Med Ismail Bennani <ismail@bennani.ma>
2026-02-13 20:08:17 +00:00

17 lines
204 B
C

int foo(int x, int y) {
return x - y + 5; // Set breakpoint here.
}
int main() {
foo(1, 4);
foo(5, 1);
foo(5, 5);
foo(3, -1);
foo(6, 6);
foo(7, 7);
foo(1, 3);
foo(3, 1);
return 0;
}