"Ontology-enabled log-based debugging for C programs"
Date25th Sep 2020
Time02:30 PM
Venue https://meet.google.com/msa-pfat-tdx
PAST EVENT
Details
Program Debugging is a major approach adopted to ensure correct functioning of the software. It is often an ad hoc activity, with
semi-automatic processing. A challenge posed by debugging is the lack of standardized procedures for instrumenting, representing, and analyzing the execution trace. There is no unified framework to address all the above aspects of debugging. Further, most of the existing tools for debugging forcethe users to perform manual analysis (e.g., gdb). The presence of libraries only exacerbates the issues (e.g., gdb-Python). For instance, the users need to get into the low-level details of stack frames and their semantics – rather than analyze at a high-level. There is a need to develop a tool that hides the low-level details and allows automated analysis for most of the common debugging scenarios.
We propose the use of ontologies to address the challenges in debugging. Ontology is a formal framework for knowledge representation. It is particularly helpful to integrate the knowledge from diversified sources. We propose BOLD, an Ontology-based Log Debugger, to unify various activities involved in debugging. The syntactical information of programs can be represented as Resource Description Framework (RDF) triples. BOLD automatically instruments programs by querying these triples. It represents the execution trace of the program also as RDF triples called trace triples. BOLD’s novel high-level reasoning approach abstracts these triples as spans. A span gives a
way of examining the values of a particular variable over certain portions of the program execution. The properties of the spans are defined formally as a Web Ontology Language ontology. An end-user can debug a given faulty program by querying the trace triples and reasoning with the spans.
We discuss two applications which are difficult to implement without ontologies: (i) Integration of source code, control-flow graph, and execution trace of a program and querying the combined information. (ii) Automatic bug detection on the usage of libraries. To empirically assess BOLD, we debugged the programs in standard Software-artifact Infrastructure Repository. Experiments show significant improvement in the response time, and specification conciseness in BOLD compared to that in gdb.
Speakers
Mr.Dileep Kumar Pattipati (CS15D002)
Computer Science & Engg.