Files

94 lines
3.8 KiB
Plaintext

#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.
#}