A Differential Approach to Undefined Behavior Detection.

This paper studies undefined behavior arising in systems programming languages such as C/C++. Undefined behavior bugs lead to unpredictable and subtle systems behavior, and their effects can be further amplified by compiler optimizations. Undefined behavior bugs are present in many systems, includin...

Descripción completa

Detalles Bibliográficos
Publicado en:Communications of the ACM Vol. 59; no. 3; pp. 99 - 107
Autores principales: Xi Wang, Zeldovich, Nickolai, Kaashoek, M. Frans, Solar-Lezama, Armando
Formato: Artículo
Publicado: Association for Computing Machinery Mar2016
Materias:
Acceso en línea:Ver este registro en EBSCOhost
fields @attributes:
  recordID: 1
pdfLink:
plink: https://search.ebscohost.com/login.aspx?direct=true&db=hlh&AN=113448856&site=ehost-live
header:
  @attributes:
    shortDbName: hlh
    uiTerm: 113448856
    longDbName: Humanities International Complete
    uiTag: AN
  controlInfo:
    bkinfo:
    jinfo:
      jid:
        00010782
        ACM
      jtl: Communications of the ACM
      issn: 00010782
      maglogo: N
    pubinfo:
      dt: Mar2016
      vid: 59
      iid: 3
      pid: 68
      pub: Association for Computing Machinery
    artinfo:
      ui:
        113448856
        10.1145/2885256
      ppf: 99
      ppct: 8
      formats:
      tig:
        atl: A Differential Approach to Undefined Behavior Detection.
      aug:
        au:
          Xi Wang
          Zeldovich, Nickolai
          Kaashoek, M. Frans
          Solar-Lezama, Armando
        affil:
          University of Washington, Seattle, WA.
          Massachusetts Institute of Technology, Cambridge, MA.
      su:
        Systems programming (Computer science)
        Programming languages
        Compilers (Computer programs)
        Databases
        Computer software
      sug:
        subj:
          Systems programming (Computer science)
          Programming languages
          Compilers (Computer programs)
          Databases
          Computer software
      ab: This paper studies undefined behavior arising in systems programming languages such as C/C++. Undefined behavior bugs lead to unpredictable and subtle systems behavior, and their effects can be further amplified by compiler optimizations. Undefined behavior bugs are present in many systems, including the Linux kernel and the Postgres database. The consequences range from incorrect functionality to missing security checks. This paper proposes a formal and practical approach, which finds undefined behavior bugs by finding “unstable code” in terms of optimizations that leverage undefined behavior. Using this approach, we introduce a new static checker called Stack that precisely identifies undefined behavior bugs. Applying Stack to widely used systems has uncovered 161 new bugs that have been confirmed and fixed by developers.
      pubtype: Periodical
      doctype: Article
      src: R
    language: English
    refInfo:
    copyright:
      @attributes:
        flag: Y
      dt:
        @attributes:
          year: 2016
    holdings:
      @attributes:
        islocal: N