llvm-project
57414efc - [Dexter] Avoid incorrect state matching against frames below main (#206732)

Commit
4 days ago
[Dexter] Avoid incorrect state matching against frames below main (#206732) This patch fixes an error that caused some Dexter test failures, driven by two separate causes. The first issue is that frames below main were appearing in the program stacktrace; while Dexter tries to filter frames below main during the stacktrace collection step based on a pre-written list, this list may not be comprehensive enough, as the symbol "___lldb_unnamed_symbol_2a150" has also appeared. In order to guard against this and future cases that might appear, this patch adds a check to Dexter for "presentationHint: deemphasize" in the DAP response; this is added by LLDB (and other dap-based debuggers) as a hint that the frame is not user source, and should be a generally useful way of avoiding evaluating frames that are not wanted. The second issue is a mismatch between the breakpoint-setting logic and the state-matching logic: the former allows root !where nodes to omit the "file" field, using the script file as a default file. The state matching logic does not perform any checking for an omitted file. Together, this means that we may correctly set breakpoints for e.g. "test.cpp:10", but when we go to match against frames, the !where node may match against some other line-10 that appears below (e.g. as a caller of) the frame at test.cpp:10. This patch copies the default_file logic to state matching, meaning that we will only match against the intended frame.
Author
Parents
Loading