Skip to main navigation Skip to search Skip to main content

PathWalker: A dynamic symbolic execution tool based on LLVM byte code instrumentation

  • Zhang Jun-Xian*
  • , Li Zhou-Jun
  • , Zheng Xian-Chen
  • *Corresponding author for this work
  • Beihang University
  • University of Jinan

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

Abstract

Dynamic symbolic execution (or concolic execution) is a powerful method for program analysis and software testing by attaching symbolic execution to the concrete running of a program. This paper proposes an approach to handle aggregate types (e.g., pointers, arrays, structures) and their complex combinations for the dynamic symbolic execution of C programs. The main idea of the approach is splitting a complex type program variable into a series of primitive type variables. During the concrete execution of a program, a con- colic execution engine is provided to observe the operations on every program variable at the level of primitive types, and then the symbolic state of the program is updated. The path constraints which must be satisfied to drive the program running along the current execution path are collected to generate new test data for other paths. Our approach guarantees that only primitive type variables can appear in the symbolic states and path constraints. Based on LLVM byte code instrumentation, we present a new tool, called PathWalker, which implements this approach. Experimental results reveal that PathWalker is effective to deal with complex types in C codes.

Original languageEnglish
Title of host publicationDependable Software Engineering
Subtitle of host publicationTheories, Tools, and Applications - 1st International Symposium, SETTA 2015, Proceedings
EditorsZhiming Liu, Wang Yi, Xuandong Li
PublisherSpringer Verlag
Pages227-242
Number of pages16
ISBN (Print)9783319259413
DOIs
StatePublished - 2015
Event1st International Symposium on Dependable Software Engineering: Theories, Tools, and Applications, SETTA 2015 - Nanjing, China
Duration: 4 Nov 20156 Nov 2015

Publication series

NameLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
Volume9409
ISSN (Print)0302-9743
ISSN (Electronic)1611-3349

Conference

Conference1st International Symposium on Dependable Software Engineering: Theories, Tools, and Applications, SETTA 2015
Country/TerritoryChina
CityNanjing
Period4/11/156/11/15

Keywords

  • Dynamic symbolic execution
  • LLVM aggregate type
  • Program instrumentation

Fingerprint

Dive into the research topics of 'PathWalker: A dynamic symbolic execution tool based on LLVM byte code instrumentation'. Together they form a unique fingerprint.

Cite this