static const char *kEventNames[] = { "NOOP", // Should not appear. "READ", // {tid, pc, addr, size} "WRITE", // {tid, pc, addr, size} "READER_LOCK", // {tid, pc, lock, 0} "WRITER_LOCK", // {tid, pc, lock, 0} "UNLOCK", // {tid, pc, lock, 0} "UNLOCK_OR_INIT", // {tid, pc, lock, 0} "LOCK_CREATE", // {tid, pc, lock, 0} "LOCK_DESTROY", // {tid, pc, lock, 0} "THR_CREATE_BEFORE", // Parent thread's event. {tid, pc, 0, 0} "THR_CREATE_AFTER", // Parent thread's event. {tid, 0, 0, child_tid} "THR_START", // Child thread's event {tid, CallStack, 0, parent_tid} "THR_FIRST_INSN", // Used only by valgrind. "THR_END", // {tid, 0, 0, 0} "THR_JOIN_AFTER", // {tid, pc, joined_tid} "THR_STACK_TOP", // {tid, pc, stack_top, stack_size_if_known} "RTN_EXIT", // {tid, 0, 0, 0} "RTN_CALL", // {tid, pc, 0, 0} "SBLOCK_ENTER", // {tid, pc, 0, 0} "SIGNAL", // {tid, pc, obj, 0} "WAIT", // {tid, pc, obj, 0} "CYCLIC_BARRIER_INIT", // {tid, pc, obj, n} "CYCLIC_BARRIER_WAIT_BEFORE", // {tid, pc, obj, 0} "CYCLIC_BARRIER_WAIT_AFTER", // {tid, pc, obj, 0} "PCQ_CREATE", // {tid, pc, pcq_addr, 0} "PCQ_DESTROY", // {tid, pc, pcq_addr, 0} "PCQ_PUT", // {tid, pc, pcq_addr, 0} "PCQ_GET", // {tid, pc, pcq_addr, 0} "STACK_MEM_DIE", // deprecated. "MALLOC", // {tid, pc, addr, size} "FREE", // {tid, pc, addr, 0} "MMAP", // {tid, pc, addr, size} "MUNMAP", // {tid, pc, addr, size} "PUBLISH_RANGE", // may be deprecated later. "UNPUBLISH_RANGE", // deprecated. TODO(kcc): get rid of this. "HB_LOCK", // {tid, pc, addr, 0} "NON_HB_LOCK", // {tid, pc, addr, 0} "IGNORE_READS_BEG", // {tid, pc, 0, 0} "IGNORE_READS_END", // {tid, pc, 0, 0} "IGNORE_WRITES_BEG", // {tid, pc, 0, 0} "IGNORE_WRITES_END", // {tid, pc, 0, 0} "SET_THREAD_NAME", // {tid, pc, name_str, 0} "SET_LOCK_NAME", // {tid, pc, lock, lock_name_str} "TRACE_MEM", // {tid, pc, addr, 0} "EXPECT_RACE", // {tid, descr_str, ptr, size} "BENIGN_RACE", // {tid, descr_str, ptr, size} "EXPECT_RACE_BEGIN", // {tid, pc, 0, 0} "EXPECT_RACE_END", // {tid, pc, 0, 0} "VERBOSITY", // Used for debugging. "STACK_TRACE", // {tid, pc, 0, 0}, for debugging. "FLUSH_STATE", // {tid, pc, 0, 0} "PC_DESCRIPTION", // {0, pc, descr_str, 0}, for ts_offline. "PRINT_MESSAGE", // {tid, pc, message_str, 0}, for ts_offline. "FLUSH_EXPECTED_RACES", // {0, 0, 0, 0} "LAST_EVENT" // Should not appear. };