Please use this identifier to cite or link to this item: https://doi.org/10.1145/2211616.2211622
DC FieldValue
dc.titleDARWIN: An approach to debugging evolving programs
dc.contributor.authorQi, D.
dc.contributor.authorRoychoudhury, A.
dc.contributor.authorLiang, Z.
dc.date.accessioned2013-07-04T07:32:00Z
dc.date.available2013-07-04T07:32:00Z
dc.date.issued2012
dc.identifier.citationQi, D., Roychoudhury, A., Liang, Z. (2012). DARWIN: An approach to debugging evolving programs. ACM Transactions on Software Engineering and Methodology 21 (3). ScholarBank@NUS Repository. https://doi.org/10.1145/2211616.2211622
dc.identifier.issn1049331X
dc.identifier.urihttp://scholarbank.nus.edu.sg/handle/10635/39014
dc.description.abstractBugs in programs are often introduced when programs evolve from a stable version to a new version. In this article, we propose a new approach called DARWIN for automatically finding potential root causes of such bugs. Given two programs-A reference program and a modified program-And an input that fails on the modified program, our approach uses symbolic execution to automatically synthesize a new input that (a) is very similar to the failing input and (b) does not fail. We find the potential cause(s) of failure by comparing control-flow behavior of the passing and failing inputs and identifying code fragments where the control flows diverge. A notable feature of our approach is that it handles hard-To-explain bugs, like code missing errors, by pointing to code in the reference program. We have implemented this approach and conducted experiments using several real-world applications, such as the Apache Web server, libPNG (a library for manipulating PNG images), and TCPflow (a program for displaying data sent through TCP connections). In each of these applications, DARWIN was able to localize bugs with high accuracy. Even though these applications contain several thousands of lines of code, DARWIN could usually narrow down the potential root cause(s) to less than ten lines. In addition, we find that the inputs synthesized by DARWIN provide additional value by revealing other undiscovered errors. © 2012 ACM.
dc.description.urihttp://libproxy1.nus.edu.sg/login?url=http://dx.doi.org/10.1145/2211616.2211622
dc.sourceScopus
dc.typeArticle
dc.contributor.departmentCOMPUTER SCIENCE
dc.description.doi10.1145/2211616.2211622
dc.description.sourcetitleACM Transactions on Software Engineering and Methodology
dc.description.volume21
dc.description.issue3
dc.description.codenATSME
dc.identifier.isiut000305963800006
Appears in Collections:Staff Publications

Show simple item record
Files in This Item:
There are no files associated with this item.

Google ScholarTM

Check

Altmetric


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.