mirror of
https://codeberg.org/ziglang/zig.git
synced 2026-10-28 19:00:52 +08:00
90 lines
3.6 KiB
Plaintext
90 lines
3.6 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_var = 0x19bc17b3f0b61ebc
|
|
(u64) extern_threadlocal1 = 0x3034c4ce967ed64d
|
|
(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.
|
|
#}
|