%0 Book Section %B Static AnalysisStatic Analysis %D 2011 %T Directed Symbolic Execution %A Ma,Kin-Keung %A Yit Phang,Khoo %A Foster, Jeffrey S. %A Hicks, Michael W. %E Yahav,Eran %X In this paper, we study the problem of automatically finding program executions that reach a particular target line. This problem arises in many debugging scenarios; for example, a developer may want to confirm that a bug reported by a static analysis tool on a particular line is a true positive. We propose two new directed symbolic execution strategies that aim to solve this problem: shortest-distance symbolic execution (SDSE) uses a distance metric in an interprocedural control flow graph to guide symbolic execution toward a particular target; and call-chain-backward symbolic execution (CCBSE) iteratively runs forward symbolic execution, starting in the function containing the target line, and then jumping backward up the call chain until it finds a feasible path from the start of the program. We also propose a hybrid strategy, Mix-CCBSE, which alternates CCBSE with another (forward) search strategy. We compare these three with several existing strategies from the literature on a suite of six GNU Coreutils programs. We find that SDSE performs extremely well in many cases but may fail badly. CCBSE also performs quite well, but imposes additional overhead that sometimes makes it slower than SDSE. Considering all our benchmarks together, Mix-CCBSE performed best on average, combining to good effect the features of its constituent components. %B Static AnalysisStatic Analysis %S Lecture Notes in Computer Science %I Springer Berlin / Heidelberg %V 6887 %P 95 - 111 %8 2011/// %@ 978-3-642-23701-0 %G eng %U http://dx.doi.org/10.1007/978-3-642-23702-7_11