def _execute(self, show_all):
        # find task to trace and wrap it
        selected = self.sel_tasks[0]
        for task in self.task_list:
            if task.name == selected:
                self.wrap_strace(task)
                break

        # add task to print report
        report_strace = Task(
            'strace_report',
            actions=[(find_deps, [self.outstream, self.TRACE_OUT, show_all])],
            verbosity=2,
            task_dep=[selected],
            uptodate=[False],
        )
        self.task_list.append(report_strace)
        self.sel_tasks.append(report_strace.name)

        # clear strace file
        return Run._execute(self, sys.stdout)
1) wrap the original action with strace and save output in file
dataset/ETHPy150Open pydoit/doit/doit/cmd_strace.py/Strace._execute