Techniques for automatically identifying input files used to generate output files in a software build process
First Claim
1. A method comprising:
- executing, by a computer system, one or more build commands for generating output files for a software product, the software product being associated with a build tree comprising input files;
concurrently with the executing of the one or more build commands;
intercepting, by the computer system, operating system calls invoked by the one or more build commands; and
for each intercepted operating system call;
determining whether the intercepted operating system call is relevant to process creation, file access, or file creation; and
if the intercepted operating system call is relevant to process creation, file access, or file creation, collecting, by the computer system, information pertaining to the intercepted operating system call, wherein collecting information pertaining to the intercepted operating system call comprises;
logging information regarding one or more input files that are accessed or one or more output files that are created by the one or more build commands using the intercepted operating system call; and
creating, by the computer system, a dependency graph based on the collected information, the dependency graph identifying a subset of input files in the build tree that are actually used by the one or more build commands to generate the output files.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques for automatically identifying input files used to generate output files in a software build process are provided. In one embodiment, a computer system can execute one or more build commands for generating output files for a software product, where the software product is associated with a build tree comprising various input files. The computer system can further intercept system calls invoked during the execution of the one or more build commands and can collect information pertaining to at least a portion of the intercepted system calls. The computer system can then create a dependency graph based on the collected information, where the dependency graph identifies a subset of input files in the build tree that are actually used by the one or more build commands to generate the output files.
24 Citations
18 Claims
-
1. A method comprising:
-
executing, by a computer system, one or more build commands for generating output files for a software product, the software product being associated with a build tree comprising input files; concurrently with the executing of the one or more build commands; intercepting, by the computer system, operating system calls invoked by the one or more build commands; and for each intercepted operating system call; determining whether the intercepted operating system call is relevant to process creation, file access, or file creation; and if the intercepted operating system call is relevant to process creation, file access, or file creation, collecting, by the computer system, information pertaining to the intercepted operating system call, wherein collecting information pertaining to the intercepted operating system call comprises; logging information regarding one or more input files that are accessed or one or more output files that are created by the one or more build commands using the intercepted operating system call; and creating, by the computer system, a dependency graph based on the collected information, the dependency graph identifying a subset of input files in the build tree that are actually used by the one or more build commands to generate the output files. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A non-transitory computer readable storage medium having stored thereon program code executable by one or more computer systems, the program code embodying a method that comprises:
-
executing one or more build commands for generating output files for a software product, the software product being associated with a build tree comprising input files; concurrently with the executing of the one or more build commands; intercepting operating system calls invoked by the one or more build commands; and for each intercepted operating system call; determining whether the intercepted operating system call is relevant to process creation, file access, or file creation; and if the intercepted operating system call is relevant to process creation, file access, or file creation, collecting information pertaining to the intercepted operating system call, wherein collecting information pertaining to the intercepted operating system call comprises; logging information regarding one or more input files that are accessed or one or more output files that are created by the one or more build commands using the intercepted operating system call; and creating a dependency graph based on the collected information, the dependency graph identifying a subset of input files in the build tree that are actually used by the one or more build commands to generate the output files. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A computer system comprising:
-
a processor; and a non-transitory computer readable medium having stored thereon program code that, when executed, causes the processor to; execute one or more build commands for generating output files for a software product, the software product being associated with a build tree comprising input files; concurrently with the executing of the one or more build commands; intercept operating system calls invoked by the one or more build commands; and for each intercepted operating system call; determine whether the intercepted operating system call is relevant to process creation, file access, or file creation; and if the intercepted operating system call is relevant to process creation, file access, or file creation, collect information pertaining to the intercepted operating system call, wherein collecting information pertaining to the intercepted operating system call comprises; logging information regarding one or more input files that are accessed or one or more output files that are created by the one or more build commands using the intercepted operating system call; and create a dependency graph based on the collected information, the dependency graph identifying a subset of input files in the build tree that are actually used by the one or more build commands to generate the output files. - View Dependent Claims (14, 15, 16, 17, 18)
-
Specification