xref: /llvm-project/lldb/test/Shell/SymbolFile/PDB/expressions.test (revision 20c4e95b9c03a77c2e5ce5f354114752d380c591)
1REQUIRES: target-windows, msvc
2RUN: %build --compiler=msvc --nodefaultlib --output=%t.exe %S/Inputs/ExpressionsTest.cpp
3RUN: not %lldb -b -s %S/Inputs/ExpressionsTest0.script -s %S/Inputs/ExpressionsTest1.script -s %S/Inputs/ExpressionsTest2.script -- %t.exe 2>&1 | FileCheck %s
4
5// Check the variable value through `expression`
6CHECK: (lldb) expression result
7CHECK: (char) $0 = '\x1c'
8
9// Call the function just like in the code
10CHECK: (lldb) expression N0::N1::sum(N0::N1::buf1, sizeof(N0::N1::buf1))
11CHECK: (char) $1 = '\x1c'
12
13// Try the relaxed namespaces search
14CHECK: (lldb) expression N1::sum(N1::buf1, sizeof(N1::buf1))
15CHECK: (char) $2 = '\x1c'
16
17// Try the relaxed variables and functions search
18CHECK: (lldb) expression sum(buf1, sizeof(buf1))
19CHECK: (char) $3 = '\x1c'
20
21// Make a crash during expression calculation
22CHECK: (lldb) expression sum(buf1, 1000000000)
23CHECK: The process has been returned to the state before expression evaluation.
24
25// Make one more crash
26CHECK: (lldb) expression sum(buf0, 1)
27CHECK: The process has been returned to the state before expression evaluation.
28
29// Check if the process state was restored succesfully
30CHECK: (lldb) expression sum(buf0, result - 28)
31CHECK: (char) $4 = '\0'
32
33// Call the function with arbitrary parameters
34CHECK: (lldb) expression sum(buf1 + 3, 3)
35CHECK: (char) $5 = '\f'
36