Optimal Refinement-based Array Constraint Solving for Symbolic Execution

被引:0
|
作者
Liu, Meixi [1 ,2 ]
Shuai, Ziqi [1 ,2 ]
Liu, Luyao [1 ]
Ma, Kelin [1 ]
Ma, Ke [1 ]
机构
[1] Natl Univ Def Technol, Coll Comp, Changsha, Peoples R China
[2] Natl Univ Def Technol, State Key Lab High Performance Comp, Changsha, Peoples R China
关键词
symbolic execution; constraint solving; array SMT theory; machine learning; BIT-VECTORS;
D O I
10.1109/APSEC57359.2022.00042
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Array constraint solving is widely adopted by the existing symbolic execution engines for encoding programs precisely. The counterexample-guided abstraction refinement (CEGAR) based method is state-of-the-art for array constraint solving. However, we observed that the CEGAR-based method may need many refinements to solve the array constraints produced by the symbolic executor, which decreases the performance of constraint solving. Based on the observation, we propose a machine learning-based method to improve the efficiency of the CEGAR-based array constraint solving. Our method adaptively turns on or off the CEGAR loop according to different solving problems. We have implemented our method on the symbolic executor KLEE and its underlying CEGAR-based constraint solver STP. We have conducted an extensive experiment on 55 real-world programs. On average, our method increases the number of explored paths by 21%. The results of the extensive experiments on real-world C programs show the effectiveness of our method.
引用
收藏
页码:299 / 308
页数:10
相关论文
共 50 条
  • [31] Refinement-based verification of elastic pipelined systems
    Srinivasan, S. K.
    Cai, Y.
    Sarker, K.
    IET COMPUTERS AND DIGITAL TECHNIQUES, 2012, 6 (02): : 136 - 152
  • [32] Compositional Symbolic Execution: Incremental Solving Revisited
    Lin, Yude
    Miller, Tim
    Sondergaard, Harald
    2016 23RD ASIA-PACIFIC SOFTWARE ENGINEERING CONFERENCE (APSEC 2016), 2016, : 273 - 280
  • [33] A refinement-based development of a distributed signalling system
    Stankaitis, Paulius
    Iliasov, Alexei
    Kobayashi, Tsutomu
    Ait-Ameur, Yamine
    Ishikawa, Fuyuki
    Romanovsky, Alexander
    FORMAL ASPECTS OF COMPUTING, 2021, 33 (06) : 1009 - 1036
  • [34] Adaptive solving strategy synthesis for symbolic execution
    Chen, Zhenbang
    Zhang, Guofeng
    Chen, Zehua
    Shuai, Ziqi
    Pan, Weiyu
    Zhang, Yufeng
    Wang, Ji
    JOURNAL OF SOFTWARE-EVOLUTION AND PROCESS, 2024, 36 (04)
  • [35] Parallel SMT Solving and Concurrent Symbolic Execution
    Rakadjiev, Emil
    Shimosawa, Taku
    Mine, Hiroshi
    Oshima, Satoshi
    2015 IEEE TRUSTCOM/BIGDATASE/ISPA, VOL 3, 2015, : 17 - 26
  • [36] Synthesizing Smart Solving Strategy for Symbolic Execution
    Chen, Zehua
    Chen, Zhenbang
    Shuai, Ziqi
    Zhang, Yufeng
    Pan, Weiyu
    2020 35TH IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING (ASE 2020), 2020, : 1262 - 1263
  • [37] A Relational Symbolic Execution Algorithm for Constraint-Based Testing of Database Programs
    Marcozzi, Michael
    Vanhoof, Wim
    Hainaut, Jean-Luc
    2013 IEEE 13TH INTERNATIONAL WORKING CONFERENCE ON SOURCE CODE ANALYSIS AND MANIPULATION (SCAM), 2013, : 179 - 188
  • [38] A Refinement-based compiler development for synchronous languages
    Bodeveix, Jean-Paul
    Filali-Amine, Mamoun
    Kan, Shuanglong
    MEMOCODE 2017: PROCEEDINGS OF THE 15TH ACM-IEEE INTERNATIONAL CONFERENCE ON FORMAL METHODS AND MODELS FOR SYSTEM DESIGN, 2017, : 165 - 174
  • [39] A Refinement-Based Approach to Spectre Invulnerability Verification
    Mathure, Nimish
    Srinivasan, Sudarshan K.
    Ponugoti, Kushal K.
    IEEE ACCESS, 2022, 10 : 80949 - 80957
  • [40] Symbolic execution of Reo circuits using constraint automata
    Pourvatan, Bahman
    Sirjani, Marjan
    Hojjat, Hossein
    Arbab, Farhad
    SCIENCE OF COMPUTER PROGRAMMING, 2012, 77 (7-8) : 848 - 869