Cargando…
TracerX: Dynamic Symbolic Execution with Interpolation (Competition Contribution)
Dynamic Symbolic Execution (DSE) is an important method for testing of programs. An important system on DSE is KLEE [1] which inputs a C/C++ program annotated with symbolic variables, compiles it into LLVM, and then emulates the execution paths of LLVM using a specified backtracking strategy. The ma...
Autores principales: | , , , |
---|---|
Formato: | Online Artículo Texto |
Lenguaje: | English |
Publicado: |
2020
|
Materias: | |
Acceso en línea: | https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7418121/ http://dx.doi.org/10.1007/978-3-030-45234-6_28 |
_version_ | 1783569629844602880 |
---|---|
author | Jaffar, Joxan Maghareh, Rasool Godboley, Sangharatna Ha, Xuan-Linh |
author_facet | Jaffar, Joxan Maghareh, Rasool Godboley, Sangharatna Ha, Xuan-Linh |
author_sort | Jaffar, Joxan |
collection | PubMed |
description | Dynamic Symbolic Execution (DSE) is an important method for testing of programs. An important system on DSE is KLEE [1] which inputs a C/C++ program annotated with symbolic variables, compiles it into LLVM, and then emulates the execution paths of LLVM using a specified backtracking strategy. The major challenge in symbolic execution is path explosion. The method of abstraction learning [7] has been used to address this. The key step here is the computation of an interpolant to represent the learned abstraction. TracerX, our tool, is built on top of KLEE and it implements and utilizes abstraction learning. The core feature in abstraction learning is subsumption of paths whose traversals are deemed to no longer be necessary due to similarity with already-traversed paths. Despite the overhead of computing interpolants, the pruning of the symbolic execution tree that interpolants provide often brings significant overall benefits. In particular, TracerX can fully explore many programs that would be impossible for any non-pruning system like KLEE to do so. |
format | Online Article Text |
id | pubmed-7418121 |
institution | National Center for Biotechnology Information |
language | English |
publishDate | 2020 |
record_format | MEDLINE/PubMed |
spelling | pubmed-74181212020-08-11 TracerX: Dynamic Symbolic Execution with Interpolation (Competition Contribution) Jaffar, Joxan Maghareh, Rasool Godboley, Sangharatna Ha, Xuan-Linh Fundamental Approaches to Software Engineering Article Dynamic Symbolic Execution (DSE) is an important method for testing of programs. An important system on DSE is KLEE [1] which inputs a C/C++ program annotated with symbolic variables, compiles it into LLVM, and then emulates the execution paths of LLVM using a specified backtracking strategy. The major challenge in symbolic execution is path explosion. The method of abstraction learning [7] has been used to address this. The key step here is the computation of an interpolant to represent the learned abstraction. TracerX, our tool, is built on top of KLEE and it implements and utilizes abstraction learning. The core feature in abstraction learning is subsumption of paths whose traversals are deemed to no longer be necessary due to similarity with already-traversed paths. Despite the overhead of computing interpolants, the pruning of the symbolic execution tree that interpolants provide often brings significant overall benefits. In particular, TracerX can fully explore many programs that would be impossible for any non-pruning system like KLEE to do so. 2020-03-13 /pmc/articles/PMC7418121/ http://dx.doi.org/10.1007/978-3-030-45234-6_28 Text en © The Author(s) 2020 Open Access This chapter is licensed under the terms of the Creative Commons Attribution 4.0 International License (http://creativecommons.org/licenses/by/4.0/), which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license and indicate if changes were made. The images or other third party material in this chapter are included in the chapter's Creative Commons license, unless indicated otherwise in a credit line to the material. If material is not included in the chapter's Creative Commons license and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. |
spellingShingle | Article Jaffar, Joxan Maghareh, Rasool Godboley, Sangharatna Ha, Xuan-Linh TracerX: Dynamic Symbolic Execution with Interpolation (Competition Contribution) |
title | TracerX: Dynamic Symbolic Execution with Interpolation (Competition Contribution) |
title_full | TracerX: Dynamic Symbolic Execution with Interpolation (Competition Contribution) |
title_fullStr | TracerX: Dynamic Symbolic Execution with Interpolation (Competition Contribution) |
title_full_unstemmed | TracerX: Dynamic Symbolic Execution with Interpolation (Competition Contribution) |
title_short | TracerX: Dynamic Symbolic Execution with Interpolation (Competition Contribution) |
title_sort | tracerx: dynamic symbolic execution with interpolation (competition contribution) |
topic | Article |
url | https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7418121/ http://dx.doi.org/10.1007/978-3-030-45234-6_28 |
work_keys_str_mv | AT jaffarjoxan tracerxdynamicsymbolicexecutionwithinterpolationcompetitioncontribution AT magharehrasool tracerxdynamicsymbolicexecutionwithinterpolationcompetitioncontribution AT godboleysangharatna tracerxdynamicsymbolicexecutionwithinterpolationcompetitioncontribution AT haxuanlinh tracerxdynamicsymbolicexecutionwithinterpolationcompetitioncontribution |