• DocumentCode
    3031175
  • Title

    Predictive Typestate Checking of Multithreaded Java Programs

  • Author

    Joshi, Pallavi ; Sen, Koushik

  • Author_Institution
    EECS, UC, Berkeley, CA
  • fYear
    2008
  • fDate
    15-19 Sept. 2008
  • Firstpage
    288
  • Lastpage
    296
  • Abstract
    Writing correct multithreaded programs is difficult. Existing tools for finding bugs in multithreaded programs primarily focus on finding generic concurrency problems such as data races, atomicity violations, and deadlocks. However, these generic bugs may sometimes be benign and may not help to catch other functional errors in multithreaded programs. In this paper, we focus on a high-level programming error, called typestate error, which happens when a program does not follow the correct usage protocol of an object. We present a novel technique that finds typestate errors in multithreaded programs by looking at a successful execution. An appealing aspect of our technique is that it not only finds typestate errors that occur during a program execution, but also many other typestate errors that could have occurred in a different execution. We have implemented this technique in a prototype tool for Java and have experimented it with a number of real-world Java programs.
  • Keywords
    Java; multi-threading; multiprocessing programs; program debugging; protocols; generic bugs; generic concurrency problems; high-level programming error; multithreaded Java programs; predictive typestate checking; protocol; Automata; Computer bugs; Concurrent computing; Error correction; Interleaved codes; Java; Protocols; Prototypes; System recovery; Yarn;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Automated Software Engineering, 2008. ASE 2008. 23rd IEEE/ACM International Conference on
  • Conference_Location
    L´Aquila
  • ISSN
    1938-4300
  • Print_ISBN
    978-1-4244-2187-9
  • Electronic_ISBN
    1938-4300
  • Type

    conf

  • DOI
    10.1109/ASE.2008.39
  • Filename
    4639332