Современные информационные технологии и IT-образование (Sep 2020)
Debugging System for Programs with Different Execution Models
Abstract
This article is devoted to the issues of debugging programs in modern high-level languages. There are many different languages with different paradigms and different execution models. Each of them needs an instrument to analyze a program during its execution. For most programming languages, there are debugging tools that provide this capability, but debugging a program that consists of several parts in different programming languages is very difficult. The article contains an analysis of the tools for debugging programs for various programming languages. We provide the minimum requirements for the debugger and describe the main approaches to the implementation of debuggers for basic computation models - compilation, interpretation and dynamic compilation. The drawbacks of using existing tools for debugging programs that combine two different computation models are identified. As a solution, we propose a system that allows us to debug such programs by combining the capabilities of the debuggers for each of the languages. The software implementation of the described system for debugging programs combining the C # and C ++ languages has been developed. The debugger interaction protocol underlying the system does not depend on the implementation of its components and can be used for other combinations of languages.
Keywords