From a54b27c1ba55b9c4bfd82bd8eb5ca8853b7ffcbd Mon Sep 17 00:00:00 2001 From: "Bernhard C. Schrenk" Date: Mon, 29 Nov 2004 18:59:02 +0000 Subject: [PATCH] Bernhard C. Schrenk: Added clone to handled system calls in strace flist creation [2004111816542112991] (https://www.rocklinux.net/submaster) git-svn-id: http://www.rocklinux.org/svn/rock-linux/trunk@4867 c5f82cb5-29bc-0310-9cd0-bff59a50e3bc --- misc/tools-source/fl_stparse.c | 9 +++++++-- scripts/Build-Pkg | 5 +++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/misc/tools-source/fl_stparse.c b/misc/tools-source/fl_stparse.c index 207cc5b93..a244c0517 100644 --- a/misc/tools-source/fl_stparse.c +++ b/misc/tools-source/fl_stparse.c @@ -130,11 +130,17 @@ int main(int argc, char ** argv) { do { // ignore this line if syscall returned error if ( strstr(line, " = -1 E") ) continue; - if ( sscanf(line, "%d fork() = %d", &pid, &newpid) == 2 || + sscanf(line, "%d clone(%[^)]) = %d", &pid, buf1, + &newpid) == 3 || sscanf(line, "%d vfork() = %d", &pid, &newpid) == 2 || sscanf(line, "%d <... fork resumed> ) = %d", &pid, &newpid) == 2 || + sscanf(line, "%d <... clone resumed> %[^)]) = %d", + &pid, buf1, + &newpid) == 3 || + sscanf(line, "%d <... clone resumed> ) = %d", + &pid, &newpid) == 2 || sscanf(line, "%d <... vfork resumed> ) = %d", &pid, &newpid) == 2) { sp1 = getproc(pid)->cwd; @@ -159,7 +165,6 @@ int main(int argc, char ** argv) { if ( sscanf(line, "%d open(\"%[^\"]\", %s", &pid, buf1, buf2) == 3 ) { - if (strstr(buf2, "O_RDONLY") == NULL) logfile = wlog; else logfile = rlog; diff --git a/scripts/Build-Pkg b/scripts/Build-Pkg index 479fbcc2b..0940cf0ab 100755 --- a/scripts/Build-Pkg +++ b/scripts/Build-Pkg @@ -799,8 +799,9 @@ abort() { SYSEXIT="_exit" fi strace -o $builddir/strace.out -F -f -q -e open,creat,mkdir,` - `mknod,link,symlink,rename,utime,chdir,execve,fork,` - `vfork,$SYSEXIT,exit_group -p `cat $builddir/build.pid` & + `mknod,link,symlink,rename,utime,chdir,execve,` + `fork,clone,vfork,` + `$SYSEXIT,exit_group -p `cat $builddir/build.pid` & strace_pid=$! ; sleep 1 ; cd $base fi