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...

Descripción completa

Detalles Bibliográficos
Autores principales: Jaffar, Joxan, Maghareh, Rasool, Godboley, Sangharatna, Ha, Xuan-Linh
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