  This paper introduces an automatic debugging framework that relies on
model-based reasoning techniques to locate faults in programs. In particular,
model-based diagnosis, together with an abstract interpretation based conflict
detection mechanism is used to derive diagnoses, which correspond to possible
faults in programs. Design information and partial specifications are applied
to guide a model revision process, which allows for automatic detection and
correction of structural faults.
