The correctness of debug information included in optimized binaries has been the subject of recent attention by the research community. Indeed, it represents a practically important problem, as most of the software running in production is produced by an optimizing compiler. Current solutions rely on invariants, human-defined rules that embed the desired behavior, whose violation may indicate the presence of a bug. Although this approach proved to be effective in discovering several bugs, it is unable to identify bugs that do not trigger invariants. In this paper, we investigate the feasibility of using Deep Neural Networks (DNNs) to discover incorrect debug information. We trained a set of different models borrowed from the NLP community in an unsupervised way on a large dataset of debug traces and tested their performance on two novel datasets that we propose. Our results are positive and show that DNNs are capable of discovering bugs in both synthetic and real datasets. More interestingly, we performed a live analysis of our models by using them as bug detectors in a fuzzing system. We show that they were able to report 12 unknown bugs in the latest version of the widely used LLVM toolchain, 2 of which have been confirmed.

Debugging Debug Information with Neural Networks / Artuso, F.; Di Luna, G. A.; Querzoni, L.. - In: IEEE ACCESS. - ISSN 2169-3536. - 10:(2022), pp. 54136-54148. [10.1109/ACCESS.2022.3176617]

Debugging Debug Information with Neural Networks

Artuso F.
;
Di Luna G. A.;Querzoni L.
2022

Abstract

The correctness of debug information included in optimized binaries has been the subject of recent attention by the research community. Indeed, it represents a practically important problem, as most of the software running in production is produced by an optimizing compiler. Current solutions rely on invariants, human-defined rules that embed the desired behavior, whose violation may indicate the presence of a bug. Although this approach proved to be effective in discovering several bugs, it is unable to identify bugs that do not trigger invariants. In this paper, we investigate the feasibility of using Deep Neural Networks (DNNs) to discover incorrect debug information. We trained a set of different models borrowed from the NLP community in an unsupervised way on a large dataset of debug traces and tested their performance on two novel datasets that we propose. Our results are positive and show that DNNs are capable of discovering bugs in both synthetic and real datasets. More interestingly, we performed a live analysis of our models by using them as bug detectors in a fuzzing system. We show that they were able to report 12 unknown bugs in the latest version of the widely used LLVM toolchain, 2 of which have been confirmed.
2022
Behavioral sciences; Bugs; Codes; Compilers; Computer bugs; Debug Information; Debugging; Neural Networks; Optimization; Software; Software Engineering; Testing
01 Pubblicazione su rivista::01a Articolo in rivista
Debugging Debug Information with Neural Networks / Artuso, F.; Di Luna, G. A.; Querzoni, L.. - In: IEEE ACCESS. - ISSN 2169-3536. - 10:(2022), pp. 54136-54148. [10.1109/ACCESS.2022.3176617]
File allegati a questo prodotto
File Dimensione Formato  
Artuso_Debugging_2022.pdf

accesso aperto

Note: https://ieeexplore.ieee.org/abstract/document/9779237
Tipologia: Versione editoriale (versione pubblicata con il layout dell'editore)
Licenza: Creative commons
Dimensione 1.24 MB
Formato Adobe PDF
1.24 MB Adobe PDF

I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/11573/1639211
Citazioni
  • ???jsp.display-item.citation.pmc??? ND
  • Scopus 4
  • ???jsp.display-item.citation.isi??? 2
social impact