Lines Matching +full:- +full:rpath
3 * Copyright (c) 2011-2018 The strace developers.
47 for (i = 0; i < set->num_selected; ++i) { in pathmatch()
48 if (strcmp(path, set->paths_selected[i]) == 0) in pathmatch()
55 * Return true if specified path (in user-space) matches.
89 if (set->num_selected >= set->size) in storepath()
90 set->paths_selected = in storepath()
91 xgrowarray(set->paths_selected, &set->size, in storepath()
92 sizeof(set->paths_selected[0])); in storepath()
94 set->paths_selected[set->num_selected++] = path; in storepath()
107 return -1; in getfdpath()
109 xsprintf(linkpath, "/proc/%u/fd/%u", tcp->pid, fd); in getfdpath()
110 n = readlink(linkpath, buf, bufsize - 1); in getfdpath()
113 * it returns truncated result (IOW: n == bufsize - 1). in getfdpath()
127 char *rpath; in pathtrace_select_set() local
131 rpath = realpath(path, NULL); in pathtrace_select_set()
133 if (rpath == NULL) in pathtrace_select_set()
137 if (strcmp(path, rpath) == 0) { in pathtrace_select_set()
138 free(rpath); in pathtrace_select_set()
142 error_msg("Requested path '%s' resolved into '%s'", path, rpath); in pathtrace_select_set()
143 storepath(rpath, set); in pathtrace_select_set()
155 /* Beware of select(2^31-1, NULL, NULL, NULL) and similar... */ in match_xselect_args()
158 unsigned int fdsize = (((nfds + 7) / 8) + current_wordsize-1) & -current_wordsize; in match_xselect_args()
190 s = tcp->s_ent; in pathtrace_match_set()
192 if (!(s->sys_flags & (TRACE_FILE | TRACE_DESC | TRACE_NETWORK))) in pathtrace_match_set()
200 switch (s->sen) { in pathtrace_match_set()
208 return fdmatch(tcp, tcp->u_arg[0], set) || in pathtrace_match_set()
209 fdmatch(tcp, tcp->u_arg[1], set); in pathtrace_match_set()
228 return fdmatch(tcp, tcp->u_arg[0], set) || in pathtrace_match_set()
229 upathmatch(tcp, tcp->u_arg[1], set); in pathtrace_match_set()
235 return upathmatch(tcp, tcp->u_arg[0], set) || in pathtrace_match_set()
236 upathmatch(tcp, tcp->u_arg[1], set); in pathtrace_match_set()
241 return upathmatch(tcp, tcp->u_arg[1], set); in pathtrace_match_set()
247 return fdmatch(tcp, tcp->u_arg[0], set) || in pathtrace_match_set()
248 fdmatch(tcp, tcp->u_arg[2], set) || in pathtrace_match_set()
249 upathmatch(tcp, tcp->u_arg[1], set) || in pathtrace_match_set()
250 upathmatch(tcp, tcp->u_arg[3], set); in pathtrace_match_set()
259 fetch_indirect_syscall_args(tcp, tcp->u_arg[0], 6); in pathtrace_match_set()
270 return fdmatch(tcp, tcp->u_arg[4], set); in pathtrace_match_set()
274 return fdmatch(tcp, tcp->u_arg[1], set) || in pathtrace_match_set()
275 upathmatch(tcp, tcp->u_arg[2], set); in pathtrace_match_set()
280 return fdmatch(tcp, tcp->u_arg[0], set) || in pathtrace_match_set()
281 fdmatch(tcp, tcp->u_arg[2], set); in pathtrace_match_set()
285 return fdmatch(tcp, tcp->u_arg[2], set); in pathtrace_match_set()
293 return fdmatch(tcp, tcp->u_arg[argn], set) || in pathtrace_match_set()
294 upathmatch(tcp, tcp->u_arg[argn + 1], set); in pathtrace_match_set()
300 fetch_indirect_syscall_args(tcp, tcp->u_arg[0], 5); in pathtrace_match_set()
307 return match_xselect_args(tcp, tcp->u_arg, set); in pathtrace_match_set()
315 start = tcp->u_arg[0]; in pathtrace_match_set()
316 nfds = tcp->u_arg[1]; in pathtrace_match_set()
375 if (s->sys_flags & TRACE_FILE) in pathtrace_match_set()
376 return upathmatch(tcp, tcp->u_arg[0], set); in pathtrace_match_set()
378 if (s->sys_flags & (TRACE_DESC | TRACE_NETWORK)) in pathtrace_match_set()
379 return fdmatch(tcp, tcp->u_arg[0], set); in pathtrace_match_set()