Tracking down software bugs using automatic anomaly detection

This paper introduces DIDUCE, a practical and effective tool that aids programmers in detecting complex program errors and identifying their root causes. By instrumenting a program and observing its behavior as it runs, DIDUCE dynamically formulates hypotheses of invariants obeyed by the program. DI...

Full description

Saved in:
Bibliographic Details
Published inProceedings - International Conference on Software Engineering pp. 291 - 301
Main Authors Hangal, Sudheendra, Lam, Monica S.
Format Conference Proceeding Journal Article
LanguageEnglish
Published New York, NY, USA ACM 01.01.2002
SeriesACM Conferences
Subjects
Online AccessGet full text
ISBN158113472X
9781581134728
ISSN0270-5257
DOI10.1145/581339.581377

Cover

Abstract This paper introduces DIDUCE, a practical and effective tool that aids programmers in detecting complex program errors and identifying their root causes. By instrumenting a program and observing its behavior as it runs, DIDUCE dynamically formulates hypotheses of invariants obeyed by the program. DIDUCE hypothesizes the strictest invariants at the beginning, and gradually relaxes the hypothesis as violations are detected to allow for new behavior. The violations reported help users to catch software bugs as soon as they occur. They also give programmers new visibility into the behavior of the programs such as identifying rare corner cases in the program logic or even locating hidden errors that corrupt the program's results.We implemented the DIDUCE system for Java programs and applied it to four programs of significant size and complexity. DIDUCE succeeded in identifying the root causes of programming errors in each of the programs quickly and automatically. In particular, DIDUCE is effective in isolating a timing-dependent bug in a released JSSE (Java Secure Socket Extension) library, which would have taken an experienced programmer days to find. Our experience suggests that detecting and checking program invariants dynamically is a simple and effective methodology for debugging many different kinds of program errors across a wide variety of application domains.
AbstractList This paper introduces DIDUCE, a practical and effective tool that aids programmers in detecting complex program errors and identifying their root causes. By instrumenting a program and observing its behavior as it runs, DIDUCE dynamically formulates hypotheses of invariants obeyed by the program. DIDUCE hypothesizes the strictest invariants at the beginning, and gradually relaxes the hypothesis as violations are detected to allow for new behavior. The violations reported help users to catch software bugs as soon as they occur. They also give programmers new visibility into the behavior of the programs such as identifying rare corner cases in the program logic or even locating hidden errors that corrupt the program's results.We implemented the DIDUCE system for Java programs and applied it to four programs of significant size and complexity. DIDUCE succeeded in identifying the root causes of programming errors in each of the programs quickly and automatically. In particular, DIDUCE is effective in isolating a timing-dependent bug in a released JSSE (Java Secure Socket Extension) library, which would have taken an experienced programmer days to find. Our experience suggests that detecting and checking program invariants dynamically is a simple and effective methodology for debugging many different kinds of program errors across a wide variety of application domains.
Author Hangal, Sudheendra
Lam, Monica S.
Author_xml – sequence: 1
  givenname: Sudheendra
  surname: Hangal
  fullname: Hangal, Sudheendra
  organization: Sun Microsystems India Pvt. Ltd. Divyasree Chambers, Shantinagar Bangalore
– sequence: 2
  givenname: Monica S.
  surname: Lam
  fullname: Lam, Monica S.
  organization: Stanford University, Stanford, CA
BackLink http://pascal-francis.inist.fr/vibad/index.php?action=getRecordDetail&idt=16076172$$DView record in Pascal Francis
BookMark eNqFkL1rwzAQxQVNoUmasbuXdqpbnWRZ9tChhH5BoEsK3cRZloIb20otm5D_vgoOdMwt78H9uI83I5PWtYaQG6APAIl4FBlwnj8cRcoLMoPggCeSfU_IlDJJY8GEvCIL739oqIQnAviUPK071Nuq3USl27eRd7bfY2eiYtj4aPDHBg69a7CvdIRtMPUhKk1vdF-59ppcWqy9WZx0Tr5eX9bL93j1-faxfF7FyIH3MZgUkVpesiS30oqiKBOqqWDhxDTT1uSInIEu0Qid0SCQQ5oDRyazJDN8Tu7GubvO_Q7G96qpvDZ1ja1xg1ccUgGCwlmQSZmHv0UAb08geo217bDVlVe7rmqwOyhIqUxBssDdjxzqRhXObb0Cqo6RqzFyNUauiq4y9n__GZz_AZZ-gIM
ContentType Conference Proceeding
Journal Article
Copyright 2002 ACM
2004 INIST-CNRS
Copyright_xml – notice: 2002 ACM
– notice: 2004 INIST-CNRS
DBID IQODW
7SC
8FD
JQ2
L7M
L~C
L~D
DOI 10.1145/581339.581377
DatabaseName Pascal-Francis
Computer and Information Systems Abstracts
Technology Research Database
ProQuest Computer Science Collection
Advanced Technologies Database with Aerospace
Computer and Information Systems Abstracts – Academic
Computer and Information Systems Abstracts Professional
DatabaseTitle Computer and Information Systems Abstracts
Technology Research Database
Computer and Information Systems Abstracts – Academic
Advanced Technologies Database with Aerospace
ProQuest Computer Science Collection
Computer and Information Systems Abstracts Professional
DatabaseTitleList Computer and Information Systems Abstracts

Computer and Information Systems Abstracts
DeliveryMethod fulltext_linktorsrc
Discipline Applied Sciences
Computer Science
EndPage 301
ExternalDocumentID 16076172
Genre Conference Paper
GroupedDBID 6IE
6IF
6IH
6IK
6IL
6IN
AAJGR
AAVQY
ACM
ADPZR
ALMA_UNASSIGNED_HOLDINGS
APO
BEFXN
BFFAM
BGNUA
BKEBE
BPEOZ
CBEJK
GUFHI
IEGSK
IERZE
OCL
RIB
RIC
RIE
RIL
RIO
-~X
.4S
.DC
123
23M
29O
5VS
6IM
8US
AAWTH
ABLEC
ADZIZ
AFFNX
ARCSS
AVWKF
CHZPO
EDO
FEDTE
I-F
I07
IJVOP
IPLJI
IQODW
M43
RIG
RNS
XOL
7SC
8FD
JQ2
L7M
L~C
L~D
ADFMO
LHSKQ
ID FETCH-LOGICAL-a313t-1e6aa0f3d249f7f5bbd40c05211368cfe9aa321cdae5c80dae1916913a27848e3
ISBN 158113472X
9781581134728
ISSN 0270-5257
IngestDate Fri Jul 11 16:47:17 EDT 2025
Fri Sep 05 09:09:58 EDT 2025
Wed Apr 02 07:25:04 EDT 2025
Wed Jan 31 06:47:05 EST 2024
Wed Jan 31 06:46:06 EST 2024
IsPeerReviewed false
IsScholarly true
Keywords JAVA language
Debugging program
User assistance
Checking program
Localization
Timed system
Program complexity
Program behavior
Defect detection
Language English
License Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from Permissions@acm.org
CC BY 4.0
LinkModel OpenURL
MeetingName ICSE02: International Conference on Software Engineering
MergedId FETCHMERGED-LOGICAL-a313t-1e6aa0f3d249f7f5bbd40c05211368cfe9aa321cdae5c80dae1916913a27848e3
Notes SourceType-Scholarly Journals-2
ObjectType-Feature-2
ObjectType-Conference Paper-1
content type line 23
SourceType-Conference Papers & Proceedings-1
ObjectType-Article-3
content type line 25
PQID 27795135
PQPubID 23500
PageCount 11
ParticipantIDs proquest_miscellaneous_31651501
acm_books_10_1145_581339_581377_brief
proquest_miscellaneous_27795135
pascalfrancis_primary_16076172
acm_books_10_1145_581339_581377
PublicationCentury 2000
PublicationDate 2002-01-01
PublicationDateYYYYMMDD 2002-01-01
PublicationDate_xml – month: 01
  year: 2002
  text: 2002-01-01
  day: 01
PublicationDecade 2000
PublicationPlace New York, NY, USA
PublicationPlace_xml – name: New York, NY, USA
– name: New York NY
PublicationSeriesTitle ACM Conferences
PublicationTitle Proceedings - International Conference on Software Engineering
PublicationYear 2002
Publisher ACM
Publisher_xml – name: ACM
SSID ssj0000434513
ssj0006499
Score 2.239079
Snippet This paper introduces DIDUCE, a practical and effective tool that aids programmers in detecting complex program errors and identifying their root causes. By...
SourceID proquest
pascalfrancis
acm
SourceType Aggregation Database
Index Database
Publisher
StartPage 291
SubjectTerms Applied sciences
Computer science; control theory; systems
Exact sciences and technology
Software
Software and its engineering -- Software creation and management -- Software verification and validation -- Software defect analysis -- Software testing and debugging
Software engineering
Title Tracking down software bugs using automatic anomaly detection
URI https://www.proquest.com/docview/27795135
https://www.proquest.com/docview/31651501
hasFullText 1
inHoldings 1
isFullTextHit
isPrint
link http://utb.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwnV1Lb9QwELZoT9xAFLFAWx_gtEqJ47z2iCpQhQAhtZV6sxzHpgfIok0iBL-eb-w8utuiCi6J13LiaL7Z8czYM8PYK2gBRleOInosDBSZmEibJI-czHUiKilz509bfM7PLtMPV9nVWKt8iC7pqhPz-864kv9BFX3AlaJk_wHZ6aXoQBv44gqEcd1Rfu9cZ75Mne241Z-k3fWOl2-O6aONgXOI3Z902utGIsItttloQ97zZQ3zfNmOo6sec_Ter6D7bj3meUXj269lbTt_oKuZxVnz1RcSgFyqr2Ep15tJ-n8MHEiyxOjl-UkQa5RuuQVffLrxudseiWTHI_F2yA_tjVSRlYKiVX3N9ElKhgJdw4Irw7O3ZXlKaS_wvATydCuKPbZXlCJE6U2etDiVaSggOU82JPMaf5djdtU0e7P1QtJJzHc6EKtb_CdcKGZya132ysbFI3Yw04DPGD9mD2zzhE0IcUKIjwhxQoh7hPiEEB8Q4hNCB-zy_buL07NoqIERaSlkFwmbax07WcNMdoXLqqpOY0MR10LmpXF2pbVMhKm1zUwZ4wYDPF8JqWlHubTyKdtv1o19xjgUMYjnVWFhEqCVaJGKEmuMzVYwuutiwY5BC0X83aoQr56pQC0VqLVgr-8ZoSqwi1uwoy16qh8hc4qibIakMmOqkcAK4oz2qHRj132rkqKAzi-zv4-QIocOHovn937uC_ZwZs-XbL_b9PYQKmRXHXkO-gMuEWtK
linkProvider IEEE
openUrl ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=proceeding&rft.title=Proceedings+of+the+24th+International+Conference+on+Software+Engineering&rft.atitle=Tracking+down+software+bugs+using+automatic+anomaly+detection&rft.au=Hangal%2C+Sudheendra&rft.au=Lam%2C+Monica+S.&rft.series=ACM+Conferences&rft.date=2002-01-01&rft.pub=ACM&rft.isbn=158113472X&rft.spage=291&rft.epage=301&rft_id=info:doi/10.1145%2F581339.581377
thumbnail_l http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/lc.gif&issn=0270-5257&client=summon
thumbnail_m http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/mc.gif&issn=0270-5257&client=summon
thumbnail_s http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=/sc.gif&issn=0270-5257&client=summon