| 1 | #exe { |
| 2 | --name storage |
| 3 | -Mroot=storage.zig |
| 4 | #} |
| 5 | |
| 6 | #write storage.zig { |
| 7 | comptime { |
| 8 | _ = @import("externs.zig"); |
| 9 | } |
| 10 | const global_const: u64 = 0x19e50dc8d6002077; |
| 11 | var global_var: u64 = 0xcc423cec08622e32; |
| 12 | threadlocal var global_threadlocal1: u64 = 0xb4d643528c042121; |
| 13 | threadlocal var global_threadlocal2: u64 = 0x43faea1cf5ad7a22; |
| 14 | extern const extern_const: u64; |
| 15 | extern var extern_var: u64; |
| 16 | extern threadlocal var extern_threadlocal1: u64; |
| 17 | extern threadlocal var extern_threadlocal2: u64; |
| 18 | fn testStorage( |
| 19 | param1: u64, |
| 20 | param2: u64, |
| 21 | param3: u64, |
| 22 | param4: u64, |
| 23 | param5: u64, |
| 24 | param6: u64, |
| 25 | param7: u64, |
| 26 | param8: u64, |
| 27 | ) callconv(.c) void { |
| 28 | const local_comptime_val: u64 = global_const *% global_const; |
| 29 | const local_comptime_ptr: struct { u64 } = .{ local_comptime_val *% local_comptime_val }; |
| 30 | const local_const: u64 = global_var ^ global_threadlocal1 ^ global_threadlocal2 ^ |
| 31 | extern_const ^ extern_var ^ extern_threadlocal1 ^ extern_threadlocal2 ^ |
| 32 | param1 ^ param2 ^ param3 ^ param4 ^ param5 ^ param6 ^ param7 ^ param8; |
| 33 | var local_var: u64 = local_comptime_ptr[0] ^ local_const; |
| 34 | local_var = local_var; |
| 35 | } |
| 36 | pub fn main() void { |
| 37 | testStorage( |
| 38 | 0x6a607e08125c7e00, |
| 39 | 0x98944cb2a45a8b51, |
| 40 | 0xa320cf10601ee6fb, |
| 41 | 0x691ed3535bad3274, |
| 42 | 0x63690e6867a5799f, |
| 43 | 0x8e163f0ec76067f2, |
| 44 | 0xf9a252c455fb4c06, |
| 45 | 0xc88533722601e481, |
| 46 | ); |
| 47 | } |
| 48 | #} |
| 49 | #write externs.zig { |
| 50 | export const extern_const: u64 = 0x1b0c91ea0470b0b2; |
| 51 | export var extern_var: u64 = 0x19bc17b3f0b61ebc; |
| 52 | export threadlocal var extern_threadlocal1: u64 = 0x3034c4ce967ed64d; |
| 53 | export threadlocal var extern_threadlocal2: u64 = 0xfd330ab00b4bc5eb; |
| 54 | #} |
| 55 | #update |
| 56 | #check lldb { |
| 57 | (lldb) breakpoint set --file storage.zig --source-pattern-regexp 'local_var = local_var;' |
| 58 | Breakpoint 1: where = storage`storage.testStorage + #... at storage.zig:28:5, address = 0x#... |
| 59 | (lldb) process launch |
| 60 | Process #... launched: '#.../storage' (#...) |
| 61 | Process #... stopped |
| 62 | * thread #1, name = 'storage', stop reason = breakpoint 1.1 |
| 63 | 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 |
| 64 | (lldb) target variable --show-types --format hex -- global_const global_var global_threadlocal1 global_threadlocal2 extern_const extern_var extern_threadlocal1 extern_threadlocal2 |
| 65 | (u64) global_const = 0x19e50dc8d6002077 |
| 66 | (u64) global_var = 0xcc423cec08622e32 |
| 67 | (u64) global_threadlocal1 = 0xb4d643528c042121 |
| 68 | (u64) global_threadlocal2 = 0x43faea1cf5ad7a22 |
| 69 | (u64) extern_const = 0x1b0c91ea0470b0b2 |
| 70 | (u64) extern_var = 0x19bc17b3f0b61ebc |
| 71 | (u64) extern_threadlocal1 = 0x3034c4ce967ed64d |
| 72 | (u64) extern_threadlocal2 = 0xfd330ab00b4bc5eb |
| 73 | (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 |
| 74 | (u64) param1 = 0x6a607e08125c7e00 |
| 75 | (u64) param2 = 0x98944cb2a45a8b51 |
| 76 | (u64) param3 = 0xa320cf10601ee6fb |
| 77 | (u64) param4 = 0x691ed3535bad3274 |
| 78 | (u64) param5 = 0x63690e6867a5799f |
| 79 | (u64) param6 = 0x8e163f0ec76067f2 |
| 80 | (u64) param7 = 0xf9a252c455fb4c06 |
| 81 | (u64) param8 = 0xc88533722601e481 |
| 82 | (u64) local_comptime_val = 0x69490636f81df751 |
| 83 | (u64) local_comptime_ptr.@"0" = 0x82e834dae74767a1 |
| 84 | (u64) local_comptime_ptr[0] = 0x82e834dae74767a1 |
| 85 | (u64) local_const = 0x104ba3ac46b25fad |
| 86 | (u64) local_var = 0x92a39776a1f5380c |
| 87 | (lldb) breakpoint delete --force 1 |
| 88 | 1 breakpoints deleted; 0 breakpoint locations disabled. |
| 89 | #} |