A Very High Level Debugging Language

نویسنده

  • Michael Golan
چکیده

Programmers spend a significant part of their time debugging, yet most of them simply add print statements and avoid debugging tools. Although the user interface of debuggers has improved significantly in the past decade, their basic debugging methodologies have changed little. This thesis examines single-process sequential debuggers and attempts to elucidate their weaknesses. Target-state exploration and conditional program execution are essential idioms that cannot be practiced effectively with existing debuggers. State exploration seeks answers to queries such as detecting a linked list containing a negative element and finding where that element was added. Previous work has focussed on the use of source-language interpreters and graphical interactive exploration as solutions to the state-exploration problem, but these cannot effectively search for a negative element in a linked list, specify a search for it, etc. This thesis describes Duel, a very high-level language designed specifically for state exploration in a debugger. Duel allows complex state queries to be expressed succinctly and it produces meaningful output. The traditional C operators are extended to process sequences of values, and special operators manipulate these sequences in novel ways. Over a hundred programmers have used Duel and their experience substantiates the importance of state exploration and of the inadequacies in previous approaches. Conditional execution that detects state changes in complex data structures is at the crux of advanced debugging, and it is useful to specify such conditions in Duel. Such use of Duel raises important semantic and implementation problems. These problems, possible solutions, and Duel extensions are discussed.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

DUEL - A Very High-Level Debugging Language

Most source-level debuggers accept expressions in the source language, e.g., C, and can print sourcelanguage values. This approach is usually justi ed on grounds that programmers need to know only one language. But the evaluation of source-language expressions or even statements is poorly suited for making non-trivial queries about the program state, e.g., \which elements of array x[100] are po...

متن کامل

An Integrated SystemC Debugging Environment

Since its first release the system level language SystemC had a significant impact on various areas in VLSI-CAD. One remarkable benefit of SystemC lies in the support of abstraction levels beyond RTL. But being able to implement complex System-on-Chip (SoC) designs in SystemC raises the necessity of new techniques to support debugging, system exploration, and verification. We present an integra...

متن کامل

An Extensible Debugging Architecture Based on a Hybrid Debugging Framework

The cost of writing debuggers is very high. Most debuggers are written employing low level operating system and hardware specific code, which is hard to port to new platforms or architectures and to extend with new debugging techniques. Moreover, current debuggers are usually limited in the amount of analysis that they perform and the level of detail that they provide in order to assist with de...

متن کامل

Position Paper: Static Debugging of Programs Using High-Level Concurrency Libraries

High-level concurrency libraries, such as MapReduce and frameworks for fork/join parallelism, are promising tools to make parallelism available to the application developer. Optimizations and intrinsics provided by mainstream VM platforms, as well as programming languages supporting powerful means of abstraction greatly improve the performance and use of such frameworks. However, debugging prog...

متن کامل

Design and Implementation of a high-level multi- language .NET Debugger

The Microsoft .NET Common Language Runtime (CLR) provides a low-level debugging application programmers interface (API), which can be used to implement traditional source code debuggers but can also be useful to implement other dynamic program introspection tools. This paper describes our experience in using this API for the implementation of a high-level debugger. The API is difficult to use f...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1994