Lines Matching defs:pc
217 ScopedInterceptor(ThreadState *thr, const char *fname, uptr pc);
226 uptr pc)
228 , pc_(pc)
232 FuncEntry(thr, pc);
235 if (!thr_->in_ignored_lib && libignore()->IsIgnored(pc)) {
258 const uptr pc = StackTrace::GetCurrentPc(); \
259 (void)pc; \
280 #define READ_STRING_OF_LEN(thr, pc, s, len, n) \
281 MemoryAccessRange((thr), (pc), (uptr)(s), \
284 #define READ_STRING(thr, pc, s, n) \
285 READ_STRING_OF_LEN((thr), (pc), (s), internal_strlen(s), (n))
320 AfterSleep(thr, pc);
327 AfterSleep(thr, pc);
334 AfterSleep(thr, pc);
347 uptr pc = 0;
348 Acquire(thr, pc, (uptr)arg);
354 static int setup_at_exit_wrapper(ThreadState *thr, uptr pc, void(*f)(),
363 return setup_at_exit_wrapper(thr, pc, (void(*)())f, 0, 0);
370 return setup_at_exit_wrapper(thr, pc, (void(*)())f, arg, dso);
373 static int setup_at_exit_wrapper(ThreadState *thr, uptr pc, void(*f)(),
378 Release(thr, pc, (uptr)ctx);
381 ThreadIgnoreBegin(thr, pc);
383 ThreadIgnoreEnd(thr, pc);
389 uptr pc = 0;
390 Acquire(thr, pc, (uptr)arg);
403 Release(thr, pc, (uptr)ctx);
406 ThreadIgnoreBegin(thr, pc);
408 ThreadIgnoreEnd(thr, pc);
540 p = user_alloc(thr, pc, size);
548 return user_alloc(thr, pc, sz, align);
557 p = user_calloc(thr, pc, size, n);
570 p = user_realloc(thr, pc, p, size);
583 user_free(thr, pc, p);
593 user_free(thr, pc, p);
607 p = user_alloc(thr, pc, size); \
642 user_free(thr, pc, ptr);
671 MemoryAccessRange(thr, pc, (uptr)s, len + 1, false);
679 MemoryAccessRange(thr, pc, (uptr)dst, size, true);
688 MemoryAccessRange(thr, pc, (uptr)dst, size, true);
689 MemoryAccessRange(thr, pc, (uptr)src, size, false);
703 MemoryAccessRange(thr, pc, (uptr)s1, len < n ? len + 1 : n, false);
704 MemoryAccessRange(thr, pc, (uptr)s2, len < n ? len + 1 : n, false);
710 MemoryAccessRange(thr, pc, (uptr)dst, n, true);
711 MemoryAccessRange(thr, pc, (uptr)src, n, false);
720 READ_STRING_OF_LEN(thr, pc, s, len, n);
728 READ_STRING(thr, pc, s, len);
734 MemoryAccessRange(thr, pc, (uptr)s, internal_strlen(s) + 1, false);
741 MemoryAccessRange(thr, pc, (uptr)dst, srclen + 1, true);
742 MemoryAccessRange(thr, pc, (uptr)src, srclen + 1, false);
749 MemoryAccessRange(thr, pc, (uptr)dst, n, true);
750 MemoryAccessRange(thr, pc, (uptr)src, min(srclen + 1, n), false);
759 MemoryAccessRange(thr, pc, (uptr)s1, len1 + 1, false);
760 MemoryAccessRange(thr, pc, (uptr)s2, len2 + 1, false);
792 FdAccess(thr, pc, fd);
793 MemoryRangeImitateWrite(thr, pc, (uptr)res, sz);
807 FdAccess(thr, pc, fd);
808 MemoryRangeImitateWrite(thr, pc, (uptr)res, sz);
822 ctx->metamap.ResetRange(thr, pc, (uptr)addr, (uptr)sz);
831 return user_alloc(thr, pc, sz, align);
840 return user_alloc(thr, pc, sz, align);
845 return user_alloc(thr, pc, sz, GetPageSizeCached());
852 return user_alloc(thr, pc, sz, GetPageSizeCached());
861 *memptr = user_alloc(thr, pc, sz, align);
874 Acquire(thr, pc, (uptr)g);
884 Release(thr, pc, (uptr)g);
980 ThreadIgnoreBegin(thr, pc);
982 ThreadIgnoreEnd(thr, pc);
985 int tid = ThreadCreate(thr, pc, *(uptr*)th, detached);
998 int tid = ThreadTid(thr, pc, (uptr)th);
999 ThreadIgnoreBegin(thr, pc);
1001 ThreadIgnoreEnd(thr, pc);
1003 ThreadJoin(thr, pc, tid);
1012 int tid = ThreadTid(thr, pc, (uptr)th);
1015 ThreadDetach(thr, pc, tid);
1061 uptr pc;
1074 MutexLock(arg->thr, arg->pc, (uptr)arg->m);
1083 MemoryAccessRange(thr, pc, (uptr)c, sizeof(uptr), true);
1090 MutexUnlock(thr, pc, (uptr)m);
1091 MemoryAccessRange(thr, pc, (uptr)c, sizeof(uptr), false);
1092 CondMutexUnlockCtx arg = {&si, thr, pc, m};
1104 MutexRepair(thr, pc, (uptr)m);
1105 MutexLock(thr, pc, (uptr)m);
1112 MutexUnlock(thr, pc, (uptr)m);
1113 MemoryAccessRange(thr, pc, (uptr)c, sizeof(uptr), false);
1114 CondMutexUnlockCtx arg = {&si, thr, pc, m};
1125 MutexRepair(thr, pc, (uptr)m);
1126 MutexLock(thr, pc, (uptr)m);
1133 MemoryAccessRange(thr, pc, (uptr)c, sizeof(uptr), false);
1140 MemoryAccessRange(thr, pc, (uptr)c, sizeof(uptr), false);
1147 MemoryAccessRange(thr, pc, (uptr)c, sizeof(uptr), true);
1168 MutexCreate(thr, pc, (uptr)m, false, recursive, false);
1177 MutexDestroy(thr, pc, (uptr)m);
1186 MutexRepair(thr, pc, (uptr)m);
1188 MutexLock(thr, pc, (uptr)m, /*rec=*/1, /*try_lock=*/true);
1196 MutexLock(thr, pc, (uptr)m);
1205 MutexCreate(thr, pc, (uptr)m, false, false, false);
1214 MutexDestroy(thr, pc, (uptr)m);
1223 MutexLock(thr, pc, (uptr)m);
1232 MutexLock(thr, pc, (uptr)m, /*rec=*/1, /*try_lock=*/true);
1239 MutexUnlock(thr, pc, (uptr)m);
1248 MutexCreate(thr, pc, (uptr)m, true, false, false);
1257 MutexDestroy(thr, pc, (uptr)m);
1266 MutexReadLock(thr, pc, (uptr)m);
1275 MutexReadLock(thr, pc, (uptr)m, /*try_lock=*/true);
1284 MutexReadLock(thr, pc, (uptr)m);
1293 MutexLock(thr, pc, (uptr)m);
1302 MutexLock(thr, pc, (uptr)m, /*rec=*/1, /*try_lock=*/true);
1311 MutexLock(thr, pc, (uptr)m);
1318 MutexReadOrWriteUnlock(thr, pc, (uptr)m);
1325 MemoryWrite(thr, pc, (uptr)b, kSizeLog1);
1332 MemoryWrite(thr, pc, (uptr)b, kSizeLog1);
1339 Release(thr, pc, (uptr)b);
1340 MemoryRead(thr, pc, (uptr)b, kSizeLog1);
1342 MemoryRead(thr, pc, (uptr)b, kSizeLog1);
1344 Acquire(thr, pc, (uptr)b);
1359 Release(thr, pc, (uptr)o);
1367 Acquire(thr, pc, (uptr)o);
1388 Acquire(thr, pc, (uptr)s);
1397 Acquire(thr, pc, (uptr)s);
1406 Acquire(thr, pc, (uptr)s);
1413 Release(thr, pc, (uptr)s);
1422 Acquire(thr, pc, (uptr)s);
1430 READ_STRING(thr, pc, path, 0);
1441 READ_STRING(thr, pc, path, 0);
1445 READ_STRING(thr, pc, path, 0);
1453 READ_STRING(thr, pc, path, 0);
1464 READ_STRING(thr, pc, path, 0);
1475 READ_STRING(thr, pc, path, 0);
1486 READ_STRING(thr, pc, path, 0);
1490 READ_STRING(thr, pc, path, 0);
1498 READ_STRING(thr, pc, path, 0);
1509 READ_STRING(thr, pc, path, 0);
1521 FdAccess(thr, pc, fd);
1533 FdAccess(thr, pc, fd);
1538 FdAccess(thr, pc, fd);
1547 FdAccess(thr, pc, fd);
1559 FdAccess(thr, pc, fd);
1569 READ_STRING(thr, pc, name, 0);
1572 FdFileCreate(thr, pc, fd);
1579 READ_STRING(thr, pc, name, 0);
1582 FdFileCreate(thr, pc, fd);
1592 READ_STRING(thr, pc, name, 0);
1595 FdFileCreate(thr, pc, fd);
1602 READ_STRING(thr, pc, name, 0);
1605 FdFileCreate(thr, pc, fd);
1617 FdDup(thr, pc, oldfd, newfd);
1625 FdDup(thr, pc, oldfd, newfd2);
1633 FdDup(thr, pc, oldfd, newfd2);
1642 FdEventCreate(thr, pc, fd);
1654 FdClose(thr, pc, fd);
1657 FdSignalCreate(thr, pc, fd);
1670 FdInotifyCreate(thr, pc, fd);
1683 FdInotifyCreate(thr, pc, fd);
1695 FdSocketCreate(thr, pc, fd);
1703 FdPipeCreate(thr, pc, fd[0], fd[1]);
1709 FdSocketConnecting(thr, pc, fd);
1712 FdSocketConnect(thr, pc, fd);
1720 FdAccess(thr, pc, fd);
1728 FdAccess(thr, pc, fd);
1737 FdPollCreate(thr, pc, fd);
1750 FdPollCreate(thr, pc, fd);
1761 FdClose(thr, pc, fd);
1769 FdClose(thr, pc, fd);
1785 FdClose(thr, pc, fds[i]);
1798 FdPipeCreate(thr, pc, pipefd[0], pipefd[1]);
1806 FdPipeCreate(thr, pc, pipefd[0], pipefd[1]);
1813 FdAccess(thr, pc, fd);
1814 FdRelease(thr, pc, fd);
1823 FdAccess(thr, pc, fd);
1824 FdRelease(thr, pc, fd);
1833 FdAccess(thr, pc, fd);
1836 FdAcquire(thr, pc, fd);
1843 Release(thr, pc, File2addr(path));
1854 FdFileCreate(thr, pc, fd);
1866 FdFileCreate(thr, pc, fd);
1879 MemoryAccessRange(thr, pc, (uptr)ptr, size * nmemb, true);
1888 MemoryAccessRange(thr, pc, (uptr)p, size * nmemb, false);
1908 MemoryAccessRange(thr, pc, (uptr)s, internal_strlen(s), false);
1914 Release(thr, pc, Dir2addr(path));
1922 FdClose(thr, pc, fd);
1930 FdAccess(thr, pc, epfd);
1932 FdAccess(thr, pc, fd);
1934 FdRelease(thr, pc, epfd);
1947 FdAccess(thr, pc, epfd);
1950 FdAcquire(thr, pc, epfd);
1968 // Also need to remember pc for reporting before the call,
1970 volatile uptr pc = sigact ?
1973 if (pc != (uptr)SIG_DFL && pc != (uptr)SIG_IGN) {
1975 ((sigactionhandler_t)pc)(sig, info, uctx);
1977 ((sighandler_t)pc)(sig);
1988 // StackTrace::GetNestInstructionPc(pc) is used because return address is
1990 ObtainCurrentStack(thr, StackTrace::GetNextInstructionPc(pc), &stack);
2121 ReleaseStore(thr, pc, (uptr)&sigactions[sig]);
2199 ThreadIgnoreBegin(thr, pc);
2201 ThreadIgnoreEnd(thr, pc);
2209 ForkBefore(thr, pc);
2213 ForkChildAfter(thr, pc);
2214 FdOnFork(thr, pc);
2217 ForkParentAfter(thr, pc);
2220 ForkParentAfter(thr, pc);
2251 const uptr pc;
2254 static void HandleRecvmsg(ThreadState *thr, uptr pc,
2259 FdEventCreate(thr, pc, fds[i]);
2292 ((TsanInterceptorContext *)ctx)->pc, (uptr)ptr, size, \
2297 ((TsanInterceptorContext *) ctx)->pc, (uptr) ptr, size, \
2302 TsanInterceptorContext _ctx = {thr, caller_pc, pc}; \
2308 TsanInterceptorContext _ctx = {thr, caller_pc, pc}; \
2313 Acquire(thr, pc, File2addr(path)); \
2316 if (fd >= 0) FdFileCreate(thr, pc, fd); \
2322 if (fd >= 0) FdClose(thr, pc, fd); \
2332 Acquire(((TsanInterceptorContext *) ctx)->thr, pc, Dir2addr(path))
2335 FdAcquire(((TsanInterceptorContext *) ctx)->thr, pc, fd)
2338 FdRelease(((TsanInterceptorContext *) ctx)->thr, pc, fd)
2341 FdAccess(((TsanInterceptorContext *) ctx)->thr, pc, fd)
2344 FdSocketAccept(((TsanInterceptorContext *) ctx)->thr, pc, fd, newfd)
2359 ((TsanInterceptorContext *)ctx)->pc, (uptr)m)
2363 ((TsanInterceptorContext *)ctx)->pc, (uptr)m)
2367 ((TsanInterceptorContext *)ctx)->pc, (uptr)m)
2371 ((TsanInterceptorContext *)ctx)->pc, msg)
2395 static void syscall_access_range(uptr pc, uptr p, uptr s, bool write) {
2397 MemoryAccessRange(thr, pc, p, s, write);
2400 static void syscall_acquire(uptr pc, uptr addr) {
2402 Acquire(thr, pc, addr);
2406 static void syscall_release(uptr pc, uptr addr) {
2409 Release(thr, pc, addr);
2412 static void syscall_fd_close(uptr pc, int fd) {
2414 FdClose(thr, pc, fd);
2417 static USED void syscall_fd_acquire(uptr pc, int fd) {
2419 FdAcquire(thr, pc, fd);
2423 static USED void syscall_fd_release(uptr pc, int fd) {
2426 FdRelease(thr, pc, fd);
2429 static void syscall_pre_fork(uptr pc) {
2431 ForkBefore(thr, pc);
2434 static void syscall_post_fork(uptr pc, int pid) {
2438 ForkChildAfter(thr, pc);
2439 FdOnFork(thr, pc);
2442 ForkParentAfter(thr, pc);
2445 ForkParentAfter(thr, pc);