The invention discloses a code
static analysis-based data race detecting method and a
system of the detecting method. The method comprises the following steps of: reading
software to be detected, statically analyzing a source program of the
software to be detected, and generating an
abstract syntax tree, a
control flow graph and a
global function call graph of the
software to be detected; on thatbasis, computing
alias information in each function, outlet
alias information among functions, lock
assembly information, an access link of an access escapable variable quantity in each function and a thread building
relational graph; computing a plurality of initialized
sentence pair sets of a plurality of access nodes in every two threads; and gradually eliminating the sets according to the
alias information, the lock
assembly information and a
concurrency relation to obtain a
sentence pair which can finally have the data race. The detecting method and the detecting
system can effectively detect the data race of a multi-thread program compiled by C / C++, thereby having the characteristics of high test precision and high
automaticity, and being applied to detecting the data race caused bytwo threads or multiple threads.