def METHOD_NAME(self, path, cwd):
	# uncomment the following line to disable the dependencies and force a file scan
	# return
	try:
		cnt = Utils.readf(path)
	finally:
		try:
			os.remove(path)
		except OSError:
			pass
	if not isinstance(cwd, str):
		cwd = cwd.abspath()
	nodes = []
	bld = self.generator.bld
	try:
		cache = bld.strace_cache
	except AttributeError:
		cache = bld.strace_cache = {}
	# chdir and relative paths
	pid_to_cwd = {}
	global BANNED
	done = set()
	for m in re.finditer(re_lines, cnt):
		# scraping the output of strace
		pid = m.group('pid')
		if m.group('npid'):
			npid = m.group('npid')
			pid_to_cwd[npid] = pid_to_cwd.get(pid, cwd)
			continue
		p = m.group('path').replace('\\"', '"')
		if p == '.' or m.group().find('= -1 ENOENT') > -1:
			# just to speed it up a bit
			continue
		if not os.path.isabs(p):
			p = os.path.join(pid_to_cwd.get(pid, cwd), p)
		call = m.group('call')
		if call == 'chdir':
			pid_to_cwd[pid] = p
			continue
		if p in done:
			continue
		done.add(p)
		for x in BANNED:
			if p.startswith(x):
				break
		else:
			if p.endswith('/') or os.path.isdir(p):
				continue
			try:
				node = cache[p]
			except KeyError:
				strace_lock.acquire()
				try:
					cache[p] = node = bld.root.find_node(p)
					if not node:
						continue
				finally:
					strace_lock.release()
			nodes.append(node)
	# record the dependencies then force the task signature recalculation for next time
	if Logs.verbose:
		Logs.debug('deps: real scanner for %r returned %r', self, nodes)
	bld = self.generator.bld
	bld.node_deps[self.uid()] = nodes
	bld.raw_deps[self.uid()] = []
	try:
		del self.cache_sig
	except AttributeError:
		pass
	self.signature()