BOLD: An Ontology-based Log Debugger for C Programs

04/23/2020
by   Dileep Kumar P, et al.
0

The different activities related to debugging such as program instrumentation, representation of execution trace and analysis of trace are not typically performed in an unified framework. We propose BOLD, an Ontology-based Log Debugger to unify and standardize the activities in debugging. The syntactical information of programs can be represented in the from of Resource Description Framework (RDF) triples. Using the BOLD framework, the programs can be automatically instrumented by using declarative specifications over these triples. A salient feature of the framework is to store the execution trace of the program also as RDF triples called trace triples. These triples can be queried to implement the common debug operations. The novelty of the framework is to abstract these triples as spans for high-level reasoning. A span gives a way of examining the values of a particular variable over certain portion of the program execution. The properties of the spans are defined formally as a Web Ontology Language (OWL) ontology called Program Debug (PD) Ontology. Using the span abstraction and PD ontology, end-users can debug a given buggy program in a standard manner. A notable feature of using ontology is that users can accurately debug in some cases of missing information, which can be practically useful. To demonstrate the feasibility of the proposed framework, we have debugged the programs in a standard bug benchmark suite Software-artifact Infrastructure Repository (SIR). Experiments show that the querying time is almost the same as in gdb. The reasoning time depends on the sub-language of OWL. We find that the expressibility offered by OWL-DL language is sufficient for the bugs in SIR programs; but to achieve scalability in reasoning, a restricted OWL-RL language is required.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
04/11/2014

Datalog Rewritability of Disjunctive Datalog Programs and its Applications to Ontology Reasoning

We study the problem of rewriting a disjunctive datalog program into pla...
research
10/07/2014

Ontology-based Representation and Reasoning on Process Models: A Logic Programming Approach

We propose a framework grounded in Logic Programming for representing an...
research
03/18/2019

Specification and Inference of Trace Refinement Relations

Modern software is constantly changing. Researchers and practitioners ar...
research
06/15/2022

FixEval: Execution-based Evaluation of Program Fixes for Competitive Programming Problems

Source code repositories consist of large codebases, often containing er...
research
05/29/2017

Deep Learning for Ontology Reasoning

In this work, we present a novel approach to ontology reasoning that is ...
research
08/01/2017

Bonsai: Synthesis-Based Reasoning for Type Systems

We describe algorithms for symbolic reasoning about executable models of...
research
03/18/2015

Exploration of the scalability of LocFaults

A model checker can produce a trace of counterexample, for an erroneous ...

Please sign up or login with your details

Forgot password? Click here to reset