[Lldb-commits] [lldb] 88ac913 - [lldb] Try harder to optimize away a test variable
Pavel Labath via lldb-commits
lldb-commits at lists.llvm.org
Thu Feb 2 02:24:56 PST 2023
Author: Pavel Labath
Date: 2023-02-02T11:24:47+01:00
New Revision: 88ac9138f4eb7b8c06154dd6e3f801d9882b66d7
URL: https://github.com/llvm/llvm-project/commit/88ac9138f4eb7b8c06154dd6e3f801d9882b66d7
DIFF: https://github.com/llvm/llvm-project/commit/88ac9138f4eb7b8c06154dd6e3f801d9882b66d7.diff
LOG: [lldb] Try harder to optimize away a test variable
The test was checking that we can print an error message when a variable
is optimized away, but the optimizer got smarter (D140404) in tracking
the variable's value (so that we were not able to recover its value).
Using a value in an argument registers (argc) makes it more likely to be
overwritten by subsequent function calls (and permanently lost).
Added:
Modified:
lldb/test/API/tools/lldb-vscode/optimized/TestVSCode_optimized.py
lldb/test/API/tools/lldb-vscode/optimized/main.cpp
Removed:
################################################################################
diff --git a/lldb/test/API/tools/lldb-vscode/optimized/TestVSCode_optimized.py b/lldb/test/API/tools/lldb-vscode/optimized/TestVSCode_optimized.py
index 3f7ac7cdc77a..5dfc35a927f2 100644
--- a/lldb/test/API/tools/lldb-vscode/optimized/TestVSCode_optimized.py
+++ b/lldb/test/API/tools/lldb-vscode/optimized/TestVSCode_optimized.py
@@ -45,6 +45,6 @@ def test_optimized_variable(self):
self.assertEqual(len(breakpoint_ids), len(lines),
"expect correct number of breakpoints")
self.continue_to_breakpoints(breakpoint_ids)
- optimized_variable = self.vscode.get_local_variable('optimized')
+ optimized_variable = self.vscode.get_local_variable('argc')
self.assertTrue(optimized_variable['value'].startswith('<error:'))
diff --git a/lldb/test/API/tools/lldb-vscode/optimized/main.cpp b/lldb/test/API/tools/lldb-vscode/optimized/main.cpp
index 24ace4e4196f..cf94bc3e3ea2 100644
--- a/lldb/test/API/tools/lldb-vscode/optimized/main.cpp
+++ b/lldb/test/API/tools/lldb-vscode/optimized/main.cpp
@@ -7,10 +7,8 @@ int foo(int x, int y) {
}
int main(int argc, char const *argv[]) {
- int optimized = argc > 1 ? std::stoi(argv[1]) : 0;
-
- printf("argc: %d, optimized: %d\n", argc, optimized);
- int result = foo(argc, 20);
+ printf("argc: %d\n", argc);
+ int result = foo(20, argv[0][0]);
printf("result: %d\n", result); // breakpoint 2
return 0;
}
More information about the lldb-commits
mailing list