#exe { --name storage -Mroot=storage.zig #} #write storage.zig { comptime { _ = @import("externs.zig"); } const global_const: u64 = 0x19e50dc8d6002077; var global_var: u64 = 0xcc423cec08622e32; threadlocal var global_threadlocal1: u64 = 0xb4d643528c042121; threadlocal var global_threadlocal2: u64 = 0x43faea1cf5ad7a22; extern const extern_const: u64; extern var extern_var: u64; extern threadlocal var extern_threadlocal1: u64; extern threadlocal var extern_threadlocal2: u64; fn testStorage( param1: u64, param2: u64, param3: u64, param4: u64, param5: u64, param6: u64, param7: u64, param8: u64, ) callconv(.c) void { const local_comptime_val: u64 = global_const *% global_const; const local_comptime_ptr: struct { u64 } = .{ local_comptime_val *% local_comptime_val }; const local_const: u64 = global_var ^ global_threadlocal1 ^ global_threadlocal2 ^ extern_const ^ extern_var ^ extern_threadlocal1 ^ extern_threadlocal2 ^ param1 ^ param2 ^ param3 ^ param4 ^ param5 ^ param6 ^ param7 ^ param8; var local_var: u64 = local_comptime_ptr[0] ^ local_const; local_var = local_var; } pub fn main() void { testStorage( 0x6a607e08125c7e00, 0x98944cb2a45a8b51, 0xa320cf10601ee6fb, 0x691ed3535bad3274, 0x63690e6867a5799f, 0x8e163f0ec76067f2, 0xf9a252c455fb4c06, 0xc88533722601e481, ); } #} #write externs.zig { export const extern_const: u64 = 0x1b0c91ea0470b0b2; export var extern_var: u64 = 0x19bc17b3f0b61ebc; export threadlocal var extern_threadlocal1: u64 = 0x3034c4ce967ed64d; export threadlocal var extern_threadlocal2: u64 = 0xfd330ab00b4bc5eb; #} #update #check lldb { (lldb) breakpoint set --file storage.zig --source-pattern-regexp 'local_var = local_var;' Breakpoint 1: where = storage`storage.testStorage + #... at storage.zig:28:5, address = 0x#... (lldb) process launch Process #... launched: '#.../storage' (#...) Process #... stopped * thread #1, name = 'storage', stop reason = breakpoint 1.1 frame #0: storage`storage.testStorage(param1=7665265138917473792, param2=10994496920463510353, param3=11754622696676058875, param4=7574723978257576564, param5=7163272523887770015, param6=10238440135580477426, param7=17988030864880782342, param8=14449011544845051009) at storage.zig:28:5 (lldb) target variable --show-types --format hex -- global_const global_var global_threadlocal1 global_threadlocal2 extern_const extern_var extern_threadlocal1 extern_threadlocal2 (u64) global_const = 0x19e50dc8d6002077 (u64) global_var = 0xcc423cec08622e32 (u64) global_threadlocal1 = 0xb4d643528c042121 (u64) global_threadlocal2 = 0x43faea1cf5ad7a22 (u64) extern_const = 0x1b0c91ea0470b0b2 (u64) extern_const = 0x1b0c91ea0470b0b2 (u64) extern_var = 0x19bc17b3f0b61ebc (u64) extern_var = 0x19bc17b3f0b61ebc (u64) extern_threadlocal1 = 0x3034c4ce967ed64d (u64) extern_threadlocal1 = 0x3034c4ce967ed64d (u64) extern_threadlocal2 = 0xfd330ab00b4bc5eb (u64) extern_threadlocal2 = 0xfd330ab00b4bc5eb (lldb) frame variable --show-all-children --show-types --format hex -- param1 param2 param3 param4 param5 param6 param7 param8 local_comptime_val 'local_comptime_ptr.@"0"' local_comptime_ptr[0] local_const local_var (u64) param1 = 0x6a607e08125c7e00 (u64) param2 = 0x98944cb2a45a8b51 (u64) param3 = 0xa320cf10601ee6fb (u64) param4 = 0x691ed3535bad3274 (u64) param5 = 0x63690e6867a5799f (u64) param6 = 0x8e163f0ec76067f2 (u64) param7 = 0xf9a252c455fb4c06 (u64) param8 = 0xc88533722601e481 (u64) local_comptime_val = 0x69490636f81df751 (u64) local_comptime_ptr.@"0" = 0x82e834dae74767a1 (u64) local_comptime_ptr[0] = 0x82e834dae74767a1 (u64) local_const = 0x104ba3ac46b25fad (u64) local_var = 0x92a39776a1f5380c (lldb) breakpoint delete --force 1 1 breakpoints deleted; 0 breakpoint locations disabled. #}