To find global variables, `SymbolFileNativePDB` used to search the globals stream for the name passed to `FindGlobalVariables`. However, the symbols in the globals stream contain the fully qualified name and `FindGlobalVariables` only gets the basename. The approach here is similar to the one for types and functions. As we already search the globals stream for functions, we can cache the basenames for global variables there as well. This makes the `expressions.test` from the DIA PDB plugin pass with the native one (#114906).
37 lines
1.5 KiB
Plaintext
37 lines
1.5 KiB
Plaintext
REQUIRES: target-windows, msvc
|
|
RUN: %build --compiler=msvc --nodefaultlib --output=%t.exe %S/Inputs/ExpressionsTest.cpp
|
|
RUN: env LLDB_USE_NATIVE_PDB_READER=0 not %lldb -b -s %S/Inputs/ExpressionsTest0.script -s %S/Inputs/ExpressionsTest1.script -s %S/Inputs/ExpressionsTest2.script -- %t.exe 2>&1 | FileCheck %s
|
|
RUN: env LLDB_USE_NATIVE_PDB_READER=1 not %lldb -b -s %S/Inputs/ExpressionsTest0.script -s %S/Inputs/ExpressionsTest1.script -s %S/Inputs/ExpressionsTest2.script -- %t.exe 2>&1 | FileCheck %s
|
|
|
|
// Check the variable value through `expression`
|
|
CHECK: (lldb) expression result
|
|
CHECK: (char) $0 = '\x1c'
|
|
|
|
// Call the function just like in the code
|
|
CHECK: (lldb) expression N0::N1::sum(N0::N1::buf1, sizeof(N0::N1::buf1))
|
|
CHECK: (char) $1 = '\x1c'
|
|
|
|
// Try the relaxed namespaces search
|
|
CHECK: (lldb) expression N1::sum(N1::buf1, sizeof(N1::buf1))
|
|
CHECK: (char) $2 = '\x1c'
|
|
|
|
// Try the relaxed variables and functions search
|
|
CHECK: (lldb) expression sum(buf1, sizeof(buf1))
|
|
CHECK: (char) $3 = '\x1c'
|
|
|
|
// Make a crash during expression calculation
|
|
CHECK: (lldb) expression sum(buf1, 1000000000)
|
|
CHECK: The process has been returned to the state before expression evaluation.
|
|
|
|
// Make one more crash
|
|
CHECK: (lldb) expression sum(buf0, 1)
|
|
CHECK: The process has been returned to the state before expression evaluation.
|
|
|
|
// Check if the process state was restored succesfully
|
|
CHECK: (lldb) expression sum(buf0, result - 28)
|
|
CHECK: (char) $4 = '\0'
|
|
|
|
// Call the function with arbitrary parameters
|
|
CHECK: (lldb) expression sum(buf1 + 3, 3)
|
|
CHECK: (char) $5 = '\f'
|