#exe { --name optionals -Mroot=optionals.zig #} #write optionals.zig { pub fn main() void { { var null_u32: ?u32 = null; var maybe_u32: ?u32 = null; var nonnull_u32: ?u32 = 456; null_u32 = null_u32; maybe_u32 = 123; nonnull_u32 = nonnull_u32; } } #} #update #check lldb { (lldb) breakpoint set --file optionals.zig --source-pattern-regexp 'maybe_u32 = 123;' Breakpoint 1: where = optionals`optionals.main + #... at optionals.zig:7:9, address = 0x#... (lldb) process launch Process #... launched: '#.../optionals' (#...) Process #... stopped * thread #1, name = 'optionals', stop reason = breakpoint 1.1 frame #0: optionals`optionals.main at optionals.zig:7:9 (lldb) frame variable --show-all-children -- null_u32 maybe_u32 nonnull_u32 nonnull_u32.? (?u32) null_u32 = null (?u32) maybe_u32 = null (?u32) nonnull_u32 = (nonnull_u32.? = 456) (u32) nonnull_u32.? = 456 (lldb) breakpoint delete --force 1 1 breakpoints deleted; 0 breakpoint locations disabled. (lldb) #--- (lldb) breakpoint set --file optionals.zig --source-pattern-regexp 'nonnull_u32 = nonnull_u32;' Breakpoint 2: where = optionals`optionals.main + #... at optionals.zig:8:9, address = 0x#... (lldb) process continue Process #... resuming Process #... stopped * thread #1, name = 'optionals', stop reason = breakpoint 2.1 frame #0: optionals`optionals.main at optionals.zig:8:9 (lldb) frame variable --show-all-children --show-types -- null_u32 maybe_u32 maybe_u32.? nonnull_u32 nonnull_u32.? (?u32) null_u32 = null (?u32) maybe_u32 = { (u32) maybe_u32.? = 123 } (u32) maybe_u32.? = 123 (?u32) nonnull_u32 = { (u32) nonnull_u32.? = 456 } (u32) nonnull_u32.? = 456 (lldb) breakpoint delete --force 2 1 breakpoints deleted; 0 breakpoint locations disabled. #}