Abstract
Many bugs in JavaScript applications manifest themselves as objects that have incorrect property values when a failure occurs. For this type of error, stack traces and log files are often insuffcient for diagnosing problems. In such cases, it is helpful for developers to know the control ow path from the creation of an object to a crashing statement. Such crash paths are useful for understanding where the object originated and whether any properties of the object were corrupted since its creation. We present a feedback-directed instrumentation technique for computing crash paths that allows the instrumentation overhead to be distributed over a crowd of users and to re-duce it for users who do not encounter the crash. We imple-mented our technique in a tool, Crowdie, and evaluated it on 10 real-world issues for which error messages and stack traces are insuffcient to isolate the problem. Our results show that feedback-directed instrumentation requires 5% to 25% of the program to be instrumented, that the same crash must be observed 3 to 10 times to discover the crash path, and that feedback-directed instrumentation typically slows down execution by a factor 2x{9x compared to 8x{90x for an approach where applications are fully instrumented.
Original language | English |
---|---|
Title of host publication | Proceedings - 2016 IEEE/ACM 38th IEEE International Conference on Software Engineering Companion, ICSE 2016 : ICSE 2016 |
Number of pages | 12 |
Place of publication | New York, NY, USA |
Publisher | Association for Computing Machinery |
Publication date | 2016 |
Pages | 899-910 |
ISBN (Electronic) | 978-1-4503-3900-1 |
DOIs | |
Publication status | Published - 2016 |
Event | The 38th International Conference on Software Engineering - Austin, United States Duration: 14 May 2016 → 22 May 2016 Conference number: 38 http://2016.icse.cs.txstate.edu/ |
Conference
Conference | The 38th International Conference on Software Engineering |
---|---|
Number | 38 |
Country/Territory | United States |
City | Austin |
Period | 14/05/2016 → 22/05/2016 |
Internet address |