1#exe {
2--name optionals
3-Mroot=optionals.zig
4#}
5
6#write optionals.zig {
7pub fn main() void {
8 {
9 var null_u32: ?u32 = null;
10 var maybe_u32: ?u32 = null;
11 var nonnull_u32: ?u32 = 456;
12 null_u32 = null_u32;
13 maybe_u32 = 123;
14 nonnull_u32 = nonnull_u32;
15 }
16}
17#}
18#update
19#check lldb {
20(lldb) breakpoint set --file optionals.zig --source-pattern-regexp 'maybe_u32 = 123;'
21Breakpoint 1: where = optionals`optionals.main + #... at optionals.zig:7:9, address = 0x#...
22(lldb) process launch
23Process #... launched: '#.../optionals' (#...)
24Process #... stopped
25* thread #1, name = 'optionals', stop reason = breakpoint 1.1
26 frame #0: optionals`optionals.main at optionals.zig:7:9
27(lldb) frame variable --show-all-children -- null_u32 maybe_u32 nonnull_u32 nonnull_u32.?
28(?u32) null_u32 = null
29(?u32) maybe_u32 = null
30(?u32) nonnull_u32 = (nonnull_u32.? = 456)
31(u32) nonnull_u32.? = 456
32(lldb) breakpoint delete --force 1
331 breakpoints deleted; 0 breakpoint locations disabled.
34(lldb) #---
35(lldb) breakpoint set --file optionals.zig --source-pattern-regexp 'nonnull_u32 = nonnull_u32;'
36Breakpoint 2: where = optionals`optionals.main + #... at optionals.zig:8:9, address = 0x#...
37(lldb) process continue
38Process #... resuming
39Process #... stopped
40* thread #1, name = 'optionals', stop reason = breakpoint 2.1
41 frame #0: optionals`optionals.main at optionals.zig:8:9
42(lldb) frame variable --show-all-children --show-types -- null_u32 maybe_u32 maybe_u32.? nonnull_u32 nonnull_u32.?
43(?u32) null_u32 = null
44(?u32) maybe_u32 = {
45 (u32) maybe_u32.? = 123
46}
47(u32) maybe_u32.? = 123
48(?u32) nonnull_u32 = {
49 (u32) nonnull_u32.? = 456
50}
51(u32) nonnull_u32.? = 456
52(lldb) breakpoint delete --force 2
531 breakpoints deleted; 0 breakpoint locations disabled.
54#}