Finding errors in multithreaded GUI applications

8 years 5 months ago
Finding errors in multithreaded GUI applications
To keep a Graphical User Interface (GUI) responsive and active, a GUI application often has a main UI thread (or event dispatching thread) and spawns separate threads to handle lengthy operations in the background, such as expensive computation, I/O tasks, and network requests. Many GUI frameworks require all GUI objects to be accessed exclusively by the UI thread. If a GUI object is accessed from a non-UI thread, an invalid thread access error occurs and the whole application may abort. This paper presents a general technique to find such invalid thread access errors in multithreaded GUI applications. We formulate finding invalid thread access errors as a call graph reachability problem with thread spawning as the sources and GUI object accessing as the sinks. Standard call graph construction algorithms fail to build a good call graph for some modern GUI applications, because of heavy use of reflection. Thus, our technique builds reflection-aware call graphs. We implemented our t...
Sai Zhang, Hao Lü, Michael D. Ernst
Added 28 Sep 2012
Updated 28 Sep 2012
Type Journal
Year 2012
Authors Sai Zhang, Hao Lü, Michael D. Ernst
Comments (0)