Abstract
The Microsoft .NET Framework represents a major advance over previous runtime environments available for Windows platforms and offers a number of architectural features that would be of value in scientific programs. However there are such major differences between .NET and legacy environments under both Windows and UNIX, that the effort of migrating software is substantial. Accordingly, software migration is unlikely to occur unless tools are developed for supporting this process. In this paper we discuss a 'relative debugger' called Guard which provides powerful support for debugging programs as they are ported from one environment or platform to another. We describe a prototype implementation developed for Microsoft's Visual Studio.NET - a rich interactive environment that supports code development for the .NET Framework. The paper discusses the overall architecture of Guard under VS.NET and highlights some of the technical challenges that were encountered during its development. A simple case study is provided that demonstrates the effectiveness of relative debugging in locating subtle errors that occur when even a minor upgrade is attempted from one version of a language to another. For this example, we illustrate the use of relative debugging using a Visual Basic program that was ported from Visual Basic 6.0 to Visual Basic.NET.
| Original language | English |
|---|---|
| Pages (from-to) | 665-678 |
| Number of pages | 14 |
| Journal | Future Generation Computer Systems |
| Volume | 19 |
| Issue number | 5 SPEC |
| DOIs | |
| State | Published - Jul 2003 |
| Externally published | Yes |
Funding
This work has been funded by grants from the Australian Research Council and Microsoft Corporation. We wish to acknowledge the support of a number of individuals at Microsoft for their assistance on various issues related to Visual Studio and .NET. Particular thanks go to Todd Needham, Dan Fay and Frank Gocinski. We also wish to acknowledge our colleagues, Professor Christine Mingins, Professor Bertrand Meyer and Dr. Damien Watkins for many helpful discussions. Some of the coding for the UNIX debug engine was performed by Le Phu Dung, and the ‘Earth’ case study was performed by Tim Ka-chung Ho and Clement Chu.
Keywords
- Common Language Specification
- Microsoft .NET Framework
- Relative debugger