1 // min-lldb-version: 310
5 // === GDB TESTS ===================================================================================
9 // gdb-command:print variable
11 // gdb-command:print constant
13 // gdb-command:print a_struct
14 // gdbg-check:$3 = {a = -3, b = 4.5, c = 5}
15 // gdbr-check:$3 = var_captured_in_stack_closure::Struct {a: -3, b: 4.5, c: 5}
16 // gdb-command:print *struct_ref
17 // gdbg-check:$4 = {a = -3, b = 4.5, c = 5}
18 // gdbr-check:$4 = var_captured_in_stack_closure::Struct {a: -3, b: 4.5, c: 5}
19 // gdb-command:print *owned
22 // gdb-command:continue
24 // gdb-command:print variable
26 // gdb-command:print constant
28 // gdb-command:print a_struct
29 // gdbg-check:$8 = {a = -3, b = 4.5, c = 5}
30 // gdbr-check:$8 = var_captured_in_stack_closure::Struct {a: -3, b: 4.5, c: 5}
31 // gdb-command:print *struct_ref
32 // gdbg-check:$9 = {a = -3, b = 4.5, c = 5}
33 // gdbr-check:$9 = var_captured_in_stack_closure::Struct {a: -3, b: 4.5, c: 5}
34 // gdb-command:print *owned
38 // === LLDB TESTS ==================================================================================
42 // lldb-command:print variable
43 // lldbg-check:[...]$0 = 1
44 // lldbr-check:(isize) variable = 1
45 // lldb-command:print constant
46 // lldbg-check:[...]$1 = 2
47 // lldbr-check:(isize) constant = 2
48 // lldb-command:print a_struct
49 // lldbg-check:[...]$2 = { a = -3 b = 4.5 c = 5 }
50 // lldbr-check:(var_captured_in_stack_closure::Struct) a_struct = { a = -3 b = 4.5 c = 5 }
51 // lldb-command:print *struct_ref
52 // lldbg-check:[...]$3 = { a = -3 b = 4.5 c = 5 }
53 // lldbr-check:(var_captured_in_stack_closure::Struct) *struct_ref = { a = -3 b = 4.5 c = 5 }
54 // lldb-command:print *owned
55 // lldbg-check:[...]$4 = 6
56 // lldbr-check:(isize) *owned = 6
58 // lldb-command:continue
60 // lldb-command:print variable
61 // lldbg-check:[...]$5 = 2
62 // lldbr-check:(isize) variable = 2
63 // lldb-command:print constant
64 // lldbg-check:[...]$6 = 2
65 // lldbr-check:(isize) constant = 2
66 // lldb-command:print a_struct
67 // lldbg-check:[...]$7 = { a = -3 b = 4.5 c = 5 }
68 // lldbr-check:(var_captured_in_stack_closure::Struct) a_struct = { a = -3 b = 4.5 c = 5 }
69 // lldb-command:print *struct_ref
70 // lldbg-check:[...]$8 = { a = -3 b = 4.5 c = 5 }
71 // lldbr-check:(var_captured_in_stack_closure::Struct) *struct_ref = { a = -3 b = 4.5 c = 5 }
72 // lldb-command:print *owned
73 // lldbg-check:[...]$9 = 6
74 // lldbr-check:(isize) *owned = 6
77 // === CDB TESTS ===================================================================================
81 // cdb-command: dx variable
82 // cdb-check:variable : 1 [Type: [...]]
83 // cdb-command: dx constant
84 // cdb-check:constant : 2 [Type: [...]]
85 // cdb-command: dx a_struct
86 // cdb-check:a_struct [Type: var_captured_in_stack_closure::Struct]
87 // cdb-check: [+0x[...]] a : -3 [Type: [...]]
88 // cdb-check: [+0x[...]] b : 4.500000 [Type: [...]]
89 // cdb-check: [+0x[...]] c : 0x5 [Type: unsigned [...]]
90 // cdb-command: dx struct_ref
91 // cdb-check:struct_ref : 0x[...] [Type: var_captured_in_stack_closure::Struct *]
92 // cdb-check: [+0x[...]] a : -3 [Type: [...]]
93 // cdb-check: [+0x[...]] b : 4.500000 [Type: [...]]
94 // cdb-check: [+0x[...]] c : 0x5 [Type: unsigned [...]]
95 // cdb-command: dx owned
96 // cdb-check:owned : 0x[...] : 6 [Type: [...] *]
101 // cdb-command: dx variable
102 // cdb-check:variable : 2 [Type: [...]]
103 // cdb-command: dx constant
104 // cdb-check:constant : 2 [Type: [...]]
105 // cdb-command: dx a_struct
106 // cdb-check:a_struct [Type: var_captured_in_stack_closure::Struct]
107 // cdb-check: [+0x[...]] a : -3 [Type: [...]]
108 // cdb-check: [+0x[...]] b : 4.500000 [Type: [...]]
109 // cdb-check: [+0x[...]] c : 0x5 [Type: unsigned [...]]
110 // cdb-command: dx struct_ref
111 // cdb-check:struct_ref : 0x[...] [Type: var_captured_in_stack_closure::Struct *]
112 // cdb-check: [+0x[...]] a : -3 [Type: [...]]
113 // cdb-check: [+0x[...]] b : 4.500000 [Type: [...]]
114 // cdb-check: [+0x[...]] c : 0x5 [Type: unsigned [...]]
115 // cdb-command: dx owned
116 // cdb-check:owned : 0x[...] : 6 [Type: [...] *]
118 #![allow(unused_variables)]
119 #![feature(omit_gdb_pretty_printer_section)]
120 #![omit_gdb_pretty_printer_section]
129 let mut variable = 1;
132 let a_struct = Struct {
138 let struct_ref = &a_struct;
139 let owned: Box<_> = Box::new(6);
142 let mut first_closure = || {
144 variable = constant + a_struct.a + struct_ref.a + *owned;
151 let mut second_closure = || {
153 variable = constant + a_struct.a + struct_ref.a + *owned;