[all-commits] [llvm/llvm-project] 8b19d1: [lldb] Make frame var --regex always search globals
Felipe de Azevedo Piovezan via All-commits
all-commits at lists.llvm.org
Wed Jul 19 14:11:50 PDT 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 8b19d13fde6e32c8815f3f4e3f629208b0f1d0e9
https://github.com/llvm/llvm-project/commit/8b19d13fde6e32c8815f3f4e3f629208b0f1d0e9
Author: Felipe de Azevedo Piovezan <fpiovezan at apple.com>
Date: 2023-07-19 (Wed, 19 Jul 2023)
Changed paths:
M lldb/include/lldb/Symbol/VariableList.h
M lldb/source/Commands/CommandObjectFrame.cpp
M lldb/test/API/commands/frame/var/TestFrameVar.py
Log Message:
-----------
[lldb] Make frame var --regex always search globals
Currently frame var --regex sometimes searches globals, sometimes it doesn't.
This happens because `StackFrame::GetVariableList` always returns the biggest
list it has, regardless of whether only globals were requested or not. In other
words, if a previous call to `GetVariableList` requested globals, all subsequent
calls will see them.
The implication here is that users of `StackFrame::GetVariableList` are expected
to filter the results of this function. This is what we do for a vanilla
`frame var` command. But it is not what we do when `--regex` is used. This
commit solves the issue by:
1. Making `--regex` imply `--globals`. This matches the behavior of `frame var
<some_name>`, which will also search the global scope.
2. Making the `--regex` search respect the command object options.
See the added test for an example of the oddities this patch addresses. Without
the patch, the test fails. However it could be made to pass by calling a plain
`frame var` before calling `frame var --regex A::`.
Differential Revision: https://reviews.llvm.org/D155334
More information about the All-commits
mailing list