4 ms·
Can it tell (using access times under windows) that the files were modified by that stage of the build command, and not by another unrelated process? How does
by joe_bleau 17y ago
Can it tell (using access times under windows) that the files were modified by that stage of the build command, and not by another unrelated process?
How does it know which drives and directories to scan for recently modified files? Scanning all of them would take a while.
- silentbicycle 17y agoIt uses strace, a Linux-specific file change notification hook. It's not available on BSD or (IIRC) OS X, though ktrace is, so it could conceivably be ported. (The page says something vague about cygwin having a comparable hook to strace. I haven't developed for cygwin, though.) It looks like it checks for files modified specifically by its subprocesses.
- modeless 17y agoIt is possible to do strace-like stuff on Windows too as evidenced by Process Monitor. http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx http://technet.microsoft.com/en-us/sysinternals/bb896645.asp... If scanning atimes is too slow or unreliable, perhaps fabricate could be updated to use procmon?
- benhoyt 17y agoHere's a version of strace for Windows: http://www.intellectualheaven.com/default.asp?BH=projects&H=strace.htm http://www.intellectualheaven.com/default.asp?BH=projects... I've hacked it to print the actual file names on CreateFile() calls, but it's failing because it doesn't recurse and trace sub-processes. It should be theoretically possible by hooking CreateProcess(), but it's probably hard.