diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2020-12-21 18:24:11 -0700 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2020-12-23 13:36:21 -0800 |
| commit | f2ab9512af0154a291ce11ab0a1298fbf778d751 (patch) | |
| tree | fce5122f79698c8ad0838515f4dd30df76c23d3c /lib | |
| parent | 78ab1f609a4fb2514d8223e8ce6bf9195c01b5d6 (diff) | |
| download | zig-f2ab9512af0154a291ce11ab0a1298fbf778d751.tar.gz zig-f2ab9512af0154a291ce11ab0a1298fbf778d751.zip | |
std.valgrind: add helgrind functions
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/std/valgrind.zig | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/lib/std/valgrind.zig b/lib/std/valgrind.zig index 5373a2d513..e1a99e3083 100644 --- a/lib/std/valgrind.zig +++ b/lib/std/valgrind.zig @@ -80,6 +80,70 @@ pub const ClientRequest = extern enum { ChangeErrDisablement = 6145, VexInitForIri = 6401, InnerThreads = 6402, + + CLEAN_MEMORY = 1212612608, + SET_MY_PTHREAD_T = 1212612864, + PTH_API_ERROR = 1212612865, + PTHREAD_JOIN_POST = 1212612866, + PTHREAD_MUTEX_INIT_POST = 1212612867, + PTHREAD_MUTEX_DESTROY_PRE = 1212612868, + PTHREAD_MUTEX_UNLOCK_PRE = 1212612869, + PTHREAD_MUTEX_UNLOCK_POST = 1212612870, + PTHREAD_MUTEX_ACQUIRE_PRE = 1212612871, + PTHREAD_MUTEX_ACQUIRE_POST = 1212612872, + PTHREAD_COND_SIGNAL_PRE = 1212612873, + PTHREAD_COND_BROADCAST_PRE = 1212612874, + PTHREAD_COND_WAIT_PRE = 1212612875, + PTHREAD_COND_WAIT_POST = 1212612876, + PTHREAD_COND_DESTROY_PRE = 1212612877, + PTHREAD_RWLOCK_INIT_POST = 1212612878, + PTHREAD_RWLOCK_DESTROY_PRE = 1212612879, + PTHREAD_RWLOCK_LOCK_PRE = 1212612880, + PTHREAD_RWLOCK_ACQUIRED = 1212612881, + PTHREAD_RWLOCK_RELEASED = 1212612882, + PTHREAD_RWLOCK_UNLOCK_POST = 1212612883, + POSIX_SEM_INIT_POST = 1212612884, + POSIX_SEM_DESTROY_PRE = 1212612885, + POSIX_SEM_RELEASED = 1212612886, + POSIX_SEM_ACQUIRED = 1212612887, + PTHREAD_BARRIER_INIT_PRE = 1212612888, + PTHREAD_BARRIER_WAIT_PRE = 1212612889, + PTHREAD_BARRIER_DESTROY_PRE = 1212612890, + PTHREAD_SPIN_INIT_OR_UNLOCK_PRE = 1212612891, + PTHREAD_SPIN_INIT_OR_UNLOCK_POST = 1212612892, + PTHREAD_SPIN_LOCK_PRE = 1212612893, + PTHREAD_SPIN_LOCK_POST = 1212612894, + PTHREAD_SPIN_DESTROY_PRE = 1212612895, + CLIENTREQ_UNIMP = 1212612896, + USERSO_SEND_PRE = 1212612897, + USERSO_RECV_POST = 1212612898, + USERSO_FORGET_ALL = 1212612899, + RESERVED2 = 1212612900, + RESERVED3 = 1212612901, + RESERVED4 = 1212612902, + ARANGE_MAKE_UNTRACKED = 1212612903, + ARANGE_MAKE_TRACKED = 1212612904, + PTHREAD_BARRIER_RESIZE_PRE = 1212612905, + CLEAN_MEMORY_HEAPBLOCK = 1212612906, + PTHREAD_COND_INIT_POST = 1212612907, + GNAT_MASTER_HOOK = 1212612908, + GNAT_MASTER_COMPLETED_HOOK = 1212612909, + GET_ABITS = 1212612910, + PTHREAD_CREATE_BEGIN = 1212612911, + PTHREAD_CREATE_END = 1212612912, + PTHREAD_MUTEX_LOCK_PRE = 1212612913, + PTHREAD_MUTEX_LOCK_POST = 1212612914, + PTHREAD_RWLOCK_LOCK_POST = 1212612915, + PTHREAD_RWLOCK_UNLOCK_PRE = 1212612916, + POSIX_SEM_POST_PRE = 1212612917, + POSIX_SEM_POST_POST = 1212612918, + POSIX_SEM_WAIT_PRE = 1212612919, + POSIX_SEM_WAIT_POST = 1212612920, + PTHREAD_COND_SIGNAL_POST = 1212612921, + PTHREAD_COND_BROADCAST_POST = 1212612922, + RTLD_BIND_GUARD = 1212612923, + RTLD_BIND_CLEAR = 1212612924, + GNAT_DEPENDENT_MASTER_JOIN = 1212612925, }; pub fn ToolBase(base: [2]u8) u32 { return (@as(u32, base[0] & 0xff) << 24) | (@as(u32, base[1] & 0xff) << 16); @@ -259,6 +323,18 @@ pub fn monitorCommand(command: [*]u8) bool { return doClientRequestExpr(0, .GdbMonitorCommand, @ptrToInt(command.ptr), 0, 0, 0, 0) != 0; } +pub fn annotateHappensBefore(obj: *c_void) void { + doClientRequestStmt(.USERSO_SEND_PRE, @ptrToInt(obj), 0, 0, 0, 0); +} + +pub fn annotateHappensAfter(obj: *c_void) void { + doClientRequestStmt(.USERSO_RECV_POST, @ptrToInt(obj), 0, 0, 0, 0); +} + +pub fn annotateHappensBeforeForgetAll(obj: *c_void) void { + doClientRequestStmt(.USERSO_FORGET_ALL, @ptrToInt(obj), 0, 0, 0, 0); +} + pub const memcheck = @import("valgrind/memcheck.zig"); pub const callgrind = @import("valgrind/callgrind.zig"); |
