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>
17 lines
204 B
C
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;
|
|
}
|