Home | History | Annotate | Download | only in strace

Lines Matching full:tcp

299 copy_sigset_len(tcp, addr, s, len)
300 struct tcb *tcp;
308 if (umoven(tcp, addr, len, (char *)s) < 0)
315 #define copy_sigset(tcp, addr, s) copy_sigset_len(tcp, addr, s, sizeof(long))
317 #define copy_sigset(tcp, addr, s) copy_sigset_len(tcp, addr, s, sizeof(sigset_t))
402 print_sigset(struct tcb *tcp, long addr, int rt)
408 else if (copy_sigset(tcp, addr, &ss) < 0)
856 * Check process TCP for the disposition of signal SIG.
861 sigishandled(tcp, sig)
862 struct tcb *tcp;
904 sprintf(sname, "/proc/%d/status", tcp->pid);
943 if (upeek(tcp, uoff(u_signal[0]) + sig*sizeof(u_signal),
957 sys_sigvec(tcp)
958 struct tcb *tcp;
963 if (entering(tcp)) {
964 printsignal(tcp->u_arg[0]);
966 addr = tcp->u_arg[1];
968 addr = tcp->u_arg[2];
972 else if (!verbose(tcp))
974 else if (umove(tcp, addr, &sv) < 0)
985 if (tcp->u_arg[0] == SIGTRAP) {
986 tcp->flags |= TCB_SIGTRAPPED;
987 kill(tcp->pid, SIGSTOP);
992 if (tcp->u_arg[0] == SIGTRAP) {
993 tcp->flags |= TCB_SIGTRAPPED;
994 kill(tcp->pid, SIGSTOP);
999 if (tcp->u_arg[0] == SIGTRAP) {
1000 tcp->flags |= TCB_SIGTRAPPED;
1001 kill(tcp->pid, SIGSTOP);
1010 if (entering(tcp))
1016 sys_sigpause(tcp)
1017 struct tcb *tcp;
1019 if (entering(tcp)) { /* WTA: UD had a bug here: he forgot the braces */
1021 long_to_sigset(tcp->u_arg[0], &sigm);
1028 sys_sigstack(tcp)
1029 struct tcb *tcp;
1034 if (entering(tcp))
1035 addr = tcp->u_arg[0];
1037 addr = tcp->u_arg[1];
1040 else if (umove(tcp, addr, &ss) < 0)
1046 if (entering(tcp))
1052 sys_sigcleanup(tcp)
1053 struct tcb *tcp;
1063 sys_sigsetmask(tcp)
1064 struct tcb *tcp;
1066 if (entering(tcp)) {
1068 long_to_sigset(tcp->u_arg[0], &sigm);
1071 if ((tcp->u_arg[0] & sigmask(SIGTRAP))) {
1073 tcp->flags |= TCB_SIGTRAPPED;
1075 kill(tcp->pid, SIGSTOP);
1079 else if (!syserror(tcp)) {
1081 long_to_sigset(tcp->u_rval, &sigm);
1082 tcp->auxstr = sprintsigmask("old mask ", &sigm, 0);
1091 sys_sigblock(tcp)
1092 struct tcb *tcp;
1094 return sys_sigsetmask(tcp);
1117 sys_sigaction(tcp)
1118 struct tcb *tcp;
1129 if (entering(tcp)) {
1130 printsignal(tcp->u_arg[0]);
1132 addr = tcp->u_arg[1];
1134 addr = tcp->u_arg[2];
1137 else if (!verbose(tcp))
1139 else if (umove(tcp, addr, &sa) < 0)
1156 if (tcp->u_arg[0] == SIGTRAP) {
1157 tcp->flags |= TCB_SIGTRAPPED;
1158 kill(tcp->pid, SIGSTOP);
1165 if (tcp->u_arg[0] == SIGTRAP) {
1166 tcp->flags |= TCB_SIGTRAPPED;
1167 kill(tcp->pid, SIGSTOP);
1186 if (entering(tcp))
1196 sys_signal(tcp)
1197 struct tcb *tcp;
1199 if (entering(tcp)) {
1200 printsignal(tcp->u_arg[0]);
1202 switch (tcp->u_arg[1]) {
1211 if (tcp->u_arg[0] == SIGTRAP) {
1212 tcp->flags |= TCB_SIGTRAPPED;
1213 kill(tcp->pid, SIGSTOP);
1220 if (tcp->u_arg[0] == SIGTRAP) {
1221 tcp->flags |= TCB_SIGTRAPPED;
1222 kill(tcp->pid, SIGSTOP);
1225 tprintf("%#lx", tcp->u_arg[1]);
1229 else if (!syserror(tcp)) {
1230 switch (tcp->u_rval) {
1232 tcp->auxstr = "SIG_ERR"; break;
1234 tcp->auxstr = "SIG_DFL"; break;
1236 tcp->auxstr = "SIG_IGN"; break;
1238 tcp->auxstr = NULL;
1247 sys_sighold(tcp)
1248 struct tcb *tcp;
1250 if (entering(tcp)) {
1251 printsignal(tcp->u_arg[0]);
1262 sys_sigreturn(struct tcb *tcp)
1268 if (entering(tcp)) {
1269 tcp->u_arg[0] = 0;
1271 if (ptrace(PTRACE_GETREGS, tcp->pid, NULL, (void *)&regs) == -1)
1274 if (umove(tcp, regs.ARM_sp, &sc) < 0)
1277 tcp->u_arg[0] = 1;
1278 tcp->u_arg[1] = sc.oldmask;
1281 long_to_sigset(tcp->u_arg[1], &sigm);
1282 tcp->u_rval = tcp->u_error = 0;
1283 if (tcp->u_arg[0] == 0)
1285 tcp->auxstr = sprintsigmask("mask now ", &sigm, 0);
1293 if (entering(tcp)) {
1294 tcp->u_arg[0] = 0;
1295 if (upeek(tcp,PT_GPR15,&usp)<0)
1297 if (umove(tcp, usp+__SIGNAL_FRAMESIZE, &sc) < 0)
1299 tcp->u_arg[0] = 1;
1300 memcpy(&tcp->u_arg[1],&sc.oldmask[0],sizeof(sigset_t));
1302 tcp->u_rval = tcp->u_error = 0;
1303 if (tcp->u_arg[0] == 0)
1305 tcp->auxstr = sprintsigmask("mask now ",(sigset_t *)&tcp->u_arg[1],0);
1313 if (entering(tcp)) {
1314 tcp->u_arg[0] = 0;
1315 if (upeek(tcp, 4*UESP, &esp) < 0)
1317 if (umove(tcp, esp, &sc) < 0)
1319 tcp->u_arg[0] = 1;
1320 tcp->u_arg[1] = sc.oldmask;
1324 long_to_sigset(tcp->u_arg[1], &sigm);
1325 tcp->u_rval = tcp->u_error = 0;
1326 if (tcp->u_arg[0] == 0)
1328 tcp->auxstr = sprintsigmask("mask now ", &sigm, 0);
1336 if (entering(tcp)) {
1339 tcp->u_arg[0] = 0;
1340 if (upeek(tcp, PT_R12, &sp) < 0)
1342 if (umove(tcp, sp + 16 + SIGFRAME_SC_OFFSET, &sc) < 0)
1344 tcp->u_arg[0] = 1;
1345 memcpy(tcp->u_arg + 1, &sc.sc_mask, sizeof(sc.sc_mask));
1350 memcpy(&sigm, tcp->u_arg + 1, sizeof (sigm));
1351 tcp->u_rval = tcp->u_error = 0;
1352 if (tcp->u_arg[0] == 0)
1354 tcp->auxstr = sprintsigmask("mask now ", &sigm, 0);
1362 if (entering(tcp)) {
1363 tcp->u_arg[0] = 0;
1364 if (upeek(tcp, sizeof(unsigned long)*PT_R1, &esp) < 0)
1375 if (umove(tcp, esp, &sc) < 0)
1377 tcp->u_arg[0] = 1;
1378 tcp->u_arg[1] = sc.oldmask;
1382 long_to_sigset(tcp->u_arg[1], &sigm);
1383 tcp->u_rval = tcp->u_error = 0;
1384 if (tcp->u_arg[0] == 0)
1386 tcp->auxstr = sprintsigmask("mask now ", &sigm, 0);
1394 if (entering(tcp)) {
1395 tcp->u_arg[0] = 0;
1396 if (upeek(tcp, 4*PT_USP, &usp) < 0)
1398 if (umove(tcp, usp, &sc) < 0)
1400 tcp->u_arg[0] = 1;
1401 tcp->u_arg[1] = sc.sc_mask;
1405 long_to_sigset(tcp->u_arg[1], &sigm);
1406 tcp->u_rval = tcp->u_error = 0;
1407 if (tcp->u_arg[0] == 0)
1409 tcp->auxstr = sprintsigmask("mask now ", &sigm, 0);
1417 if (entering(tcp)) {
1418 tcp->u_arg[0] = 0;
1419 if (upeek(tcp, REG_FP, &fp) < 0)
1421 if (umove(tcp, fp, &sc) < 0)
1423 tcp->u_arg[0] = 1;
1424 tcp->u_arg[1] = sc.sc_mask;
1428 long_to_sigset(tcp->u_arg[1], &sigm);
1429 tcp->u_rval = tcp->u_error = 0;
1430 if (tcp->u_arg[0] == 0)
1432 tcp->auxstr = sprintsigmask("mask now ", &sigm, 0);
1441 if(ptrace(PTRACE_GETREGS, tcp->pid, (char *)&regs, 0) < 0) {
1445 if(entering(tcp)) {
1446 tcp
1448 if(umove(tcp, i1, &si) < 0) {
1452 tcp->u_arg[0] = 1;
1453 tcp->u_arg[1] = si.si_mask;
1456 long_to_sigset(tcp->u_arg[1], &sigm);
1457 tcp->u_rval = tcp->u_error = 0;
1458 if(tcp->u_arg[0] == 0)
1460 tcp->auxstr = sprintsigmask("mask now ", &sigm, 0);
1470 if(entering(tcp)) {
1471 tcp->u_arg[0] = 0;
1472 if (upeek(tcp, REG_SP, &sp) < 0)
1476 if (umove(tcp, sp, &uc) < 0)
1478 tcp->u_arg[0] = 1;
1479 tcp->u_arg[1] = *(long *) &uc.uc_sigmask;
1482 long_to_sigset(tcp->u_arg[1], &sigm);
1483 tcp->u_rval = tcp->u_error = 0;
1484 if(tcp->u_arg[0] == 0)
1486 tcp->auxstr = sprintsigmask("mask now ", &sigm, 0);
1495 if(ptrace(PTRACE_GETREGS, tcp->pid, (char *)&regs, 0) < 0) {
1499 if(entering(tcp)) {
1500 tcp->u_arg[0] = 0;
1502 if (umove(tcp, sp, &si) < 0)
1504 tcp->u_arg[0] = 1;
1505 tcp->u_arg[1] = si.si_mask;
1508 long_to_sigset(tcp->u_arg[1], &sigm);
1509 tcp->u_rval = tcp->u_error = 0;
1510 if(tcp->u_arg[0] == 0)
1512 tcp->auxstr = sprintsigmask("mask now ", &sigm, 0);
1519 if (entering(tcp)) {
1522 tcp->u_arg[0] = 0;
1524 if (ptrace(PTRACE_GETREGS, tcp->pid, NULL, (long)regs) < 0) {
1528 if (umove(tcp, regs[PT_USP], &sc) < 0)
1530 tcp->u_arg[0] = 1;
1531 tcp->u_arg[1] = sc.oldmask;
1534 long_to_sigset(tcp->u_arg[1], &sigm);
1535 tcp->u_rval = tcp->u_error = 0;
1537 if (tcp->u_arg[0] == 0)
1539 tcp->auxstr = sprintsigmask("mask now ", &sigm, 0);
1550 if (entering(tcp)) {
1551 tcp->u_arg[0] = 0;
1552 if (upeek(tcp, PTREGS_OFFSET_SP, &sp) < 0)
1554 if (umove(tcp, sp + SIGFRAME_UC_OFFSET, &uc) < 0)
1556 tcp->u_arg[0] = 1;
1557 memcpy(tcp->u_arg + 1, &uc.uc_sigmask, sizeof(uc.uc_sigmask));
1562 memcpy(&sigm, tcp->u_arg + 1, sizeof (sigm));
1563 tcp->u_rval = tcp->u_error = 0;
1564 if (tcp->u_arg[0] == 0)
1566 tcp->auxstr = sprintsigmask("mask now ", &sigm, 0);
1574 if (entering(tcp)) {
1577 tcp->u_arg[0] = 0;
1580 if (upeek(tcp, 1 * 4, &sp) < 0)
1582 if (umove(tcp, sp, &sc) < 0)
1584 tcp->u_arg[0] = 1;
1585 tcp->u_arg[1] = sc.oldmask;
1588 long_to_sigset(tcp->u_arg[1], &sigm);
1589 tcp->u_rval = tcp->u_error = 0;
1590 if (tcp->u_arg[0] == 0)
1592 tcp->auxstr = sprintsigmask("mask now ", &sigm, 0);
1604 sys_siggetmask(tcp)
1605 struct tcb *tcp;
1607 if (exiting(tcp)) {
1609 long_to_sigset(tcp->u_rval, &sigm);
1610 tcp->auxstr = sprintsigmask("mask ", &sigm, 0);
1616 sys_sigsuspend(struct tcb *tcp)
1618 if (entering(tcp)) {
1620 long_to_sigset(tcp->u_arg[2], &sigm);
1631 sys_sigsuspend(tcp)
1632 struct tcb *tcp;
1636 if (entering(tcp)) {
1637 if (umove(tcp, tcp->u_arg[0], &sigset) < 0)
1686 printcontext(tcp, ucp)
1687 struct tcb *tcp;
1691 if (!abbrev(tcp)) {
1698 if (!abbrev(tcp)) {
1709 sys_getcontext(tcp)
1710 struct tcb *tcp;
1714 if (exiting(tcp)) {
1715 if (tcp->u_error)
1716 tprintf("%#lx", tcp->u_arg[0]);
1717 else if (!tcp->u_arg[0])
1719 else if (umove(tcp, tcp->u_arg[0], &uc) < 0)
1722 printcontext(tcp, &uc);
1728 sys_setcontext(tcp)
1729 struct tcb *tcp;
1733 if (entering(tcp)) {
1734 if (!tcp->u_arg[0])
1736 else if (umove(tcp, tcp->u_arg[0], &uc) < 0)
1739 printcontext(tcp, &uc);
1742 tcp->u_rval = tcp->u_error = 0;
1743 if (tcp->u_arg[0] == 0)
1755 print_stack_t(tcp, addr)
1756 struct tcb *tcp;
1760 if (umove(tcp, addr, &ss) < 0)
1769 sys_sigaltstack(tcp)
1770 struct tcb *tcp;
1772 if (entering(tcp)) {
1773 if (tcp->u_arg[0] == 0)
1775 else if (print_stack_t(tcp, tcp->u_arg[0]) < 0)
1780 if (tcp->u_arg[1] == 0)
1782 else if (print_stack_t(tcp, tcp->u_arg[1]) < 0)
1792 sys_sigprocmask(tcp)
1793 struct tcb *tcp;
1796 if (entering(tcp)) {
1797 printxval(sigprocmaskcmds, tcp->u_arg[0], "SIG_???");
1799 printsigmask(tcp->u_arg[1], 0);
1801 else if (!syserror(tcp)) {
1802 tcp->auxstr = sprintsigmask("old mask ", tcp->u_rval, 0);
1806 if (entering(tcp)) {
1808 if (tcp->u_arg[0] == 0)
1812 printxval(sigprocmaskcmds, tcp->u_arg[0], "SIG_???");
1814 print_sigset(tcp, tcp->u_arg[1], 0);
1818 if (!tcp->u_arg[2])
1820 else if (syserror(tcp))
1821 tprintf("%#lx", tcp->u_arg[2]);
1823 print_sigset(tcp, tcp->u_arg[2], 0);
1832 sys_kill(tcp)
1833 struct tcb *tcp;
1835 if (entering(tcp)) {
1839 long pid = tcp->u_arg[0];
1842 tprintf("%ld, %s", pid, signame(tcp->u_arg[1]));
1849 sys_killpg(tcp)
1850 struct tcb *tcp;
1852 return sys_kill(tcp);
1858 sys_tgkill(tcp)
1859 struct tcb *tcp;
1861 if (entering(tcp)) {
1863 tcp->u_arg[0], tcp->u_arg[1], signame(tcp->u_arg[2]));
1870 sys_sigpending(tcp)
1871 struct tcb *tcp;
1875 if (exiting(tcp)) {
1876 if (syserror(tcp))
1877 tprintf("%#lx", tcp->u_arg[0]);
1878 else if (copy_sigset(tcp, tcp->u_arg[0], &sigset) < 0)
1887 int sys_sigwait(tcp)
1888 struct tcb *tcp;
1892 if (entering(tcp)) {
1893 if (copy_sigset(tcp, tcp->u_arg[0], &sigset) < 0)
1899 if (!syserror(tcp)) {
1900 tcp->auxstr = signalent[tcp->u_rval];
1911 sys_rt_sigprocmask(tcp)
1912 struct tcb *tcp;
1917 if (entering(tcp)) {
1918 printxval(sigprocmaskcmds, tcp->u_arg[0], "SIG_???");
1920 if (!tcp->u_arg[1])
1922 else if (copy_sigset_len(tcp, tcp->u_arg[1], &sigset, tcp->u_arg[3]) < 0)
1923 tprintf("%#lx, ", tcp->u_arg[1]);
1930 if (!tcp->u_arg[2])
1933 else if (syserror(tcp))
1934 tprintf("%#lx", tcp->u_arg[2]);
1935 else if (copy_sigset_len(tcp, tcp->u_arg[2], &sigset, tcp->u_arg[3]) < 0)
1939 tprintf(", %lu", tcp->u_arg[3]);
1965 sys_rt_sigaction(struct tcb *tcp)
1972 if (entering(tcp)) {
1973 printsignal(tcp->u_arg[0]);
1975 addr = tcp->u_arg[1];
1977 addr = tcp->u_arg[2];
1983 if (!verbose(tcp)) {
1992 r = umove(tcp, addr, &sa32);
2011 r = umove(tcp, addr, &sa);
2036 * therefore tcp->u_arg[3(4)] _must_ be NSIG / 8 here,
2040 if (tcp->u_arg[4] <= sizeof(sigset))
2041 memcpy(&sigset, &sa.sa_mask, tcp->u_arg[4]);
2043 if (tcp->u_arg[3] <= sizeof(sigset))
2044 memcpy(&sigset, &sa.sa_mask, tcp->u_arg[3]);
2058 if (entering(tcp))
2062 tprintf(", %#lx, %lu", tcp->u_arg[3], tcp->u_arg[4]);
2064 tprintf(", %lu, %#lx", tcp->u_arg[3], tcp->u_arg[4]);
2066 tprintf(", %lu", tcp->u_arg[3]);
2072 sys_rt_sigpending(struct tcb *tcp)
2076 if (exiting(tcp)) {
2077 if (syserror(tcp))
2078 tprintf("%#lx", tcp->u_arg[0]);
2079 else if (copy_sigset_len(tcp, tcp->u_arg[0],
2080 &sigset, tcp->u_arg[1]) < 0)
2089 sys_rt_sigsuspend(struct tcb *tcp)
2091 if (entering(tcp)) {
2093 if (copy_sigset_len(tcp, tcp->u_arg[0], &sigm, tcp->u_arg[1]) < 0)
2102 sys_rt_sigqueueinfo(struct tcb *tcp)
2104 if (entering(tcp)) {
2106 tprintf("%lu, ", tcp->u_arg[0]);
2107 printsignal(tcp->u_arg[1]);
2109 if (umove(tcp, tcp->u_arg[2], &si) < 0)
2110 tprintf("%#lx", tcp->u_arg[2]);
2112 printsiginfo(&si, verbose(tcp));
2117 int sys_rt_sigtimedwait(struct tcb *tcp)
2119 if (entering(tcp)) {
2122 if (copy_sigset_len(tcp, tcp->u_arg[0],
2123 &sigset, tcp->u_arg[3]) < 0)
2129 if (tcp->u_arg[1] != 0)
2134 else if (tcp->u_arg[1] != 0) {
2136 if (syserror(tcp))
2137 tprintf("%#lx, ", tcp->u_arg[1]);
2140 if (umove(tcp, tcp->u_arg[1], &si) < 0)
2141 tprintf("%#lx, ", tcp->u_arg[1]);
2143 printsiginfo(&si, verbose(tcp));
2152 print_timespec(tcp, tcp->u_arg[2]);
2153 tprintf(", %d", (int) tcp->u_arg[3]);
2158 sys_restart_syscall(struct tcb *tcp)
2160 if (entering(tcp))
2166 do_signalfd(struct tcb *tcp, int flags_arg)
2168 if (entering(tcp)) {
2169 printfd(tcp, tcp->u_arg[0]);
2171 print_sigset(tcp, tcp->u_arg[1], 1);
2172 tprintf(", %lu", tcp->u_arg[2]);
2175 printflags(open_mode_flags, tcp->u_arg[flags_arg], "O_???");
2182 sys_signalfd(struct tcb *tcp)
2184 return do_signalfd(tcp, -1);
2188 sys_signalfd4(struct tcb *tcp)
2190 return do_signalfd(tcp, 3);