Questions: Symbolic Execution (Advanced)

4 questions to test your understanding

Score: 0 / 4
Question 1 Short Answer

Path explosion in symbolic execution occurs because the number of paths grows exponentially with branches. A simple mitigation is state merging: combine multiple symbolic states that have reached the same program point. What does merging involve?

Think about your answer, then reveal below.
Question 2 Short Answer

Directed symbolic execution prioritizes exploration toward a goal (e.g., reaching a specific program point or finding a specific bug). How does this differ from undirected symbolic execution?

Think about your answer, then reveal below.
Question 3 Multiple Choice

Interprocedural symbolic execution reasons about programs with function calls. A naive approach is to inline all called functions, unrolling them completely. Why is this problematic for scalability?

AInlining increases code size linearly with the number of calls
BIf a function is called multiple times, inlining duplicates the exploration effort for each call. For recursive functions, inlining can be infinite. This leads to exponential blowup in the number of paths. Using function summaries instead allows the executor to reuse analysis results across multiple calls to the same function
CInlining is not problematic
DInlining prevents the SMT solver from running
Question 4 Short Answer

Whole-system symbolic execution (S2E) combines symbolic execution at the application level with OS-level analysis. What does this enable that application-level symbolic execution alone cannot?

Think about your answer, then reveal below.