Depurador declarativo para plataforma .NET
Loading...
Download
Official URL
Full text at PDC
Publication date
2008
Advisors (or tutors)
Editors
Journal Title
Journal ISSN
Volume Title
Publisher
Citation
Abstract
El proyecto consiste en la construcción de un Depurador Declarativo para la
Plataforma .NET de Microsoft.
El Depurador construido es multilenguaje, es decir, acepta aplicaciones
implementadas con los lenguajes pertenecientes a la Plataforma .NET, como C#, Visual
Basic, C++, Fortran, Haskell, Java, Pascal, Perl, Phyton o Smalltalk.
Realizando una copia de la estructura de la aplicación por medio de la Reflexión,
se obtiene el código IL (bytes generados por el compilador de .NET Just-in-time), que
es traducido a código MSIL (Microsoft Intemediate Language). Al nuevo Ensamblado
se le añade código instrumentado, permitiendo así que al realizar una nueva ejecución se
pueda extraer la traza relativa a lo sucedido durante la misma. Con estos datos se genera
un árbol de cómputo en el que cada nodo representa la información en tiempo de
ejecución de una función del programa.
Además, se ha implementado un sistema de localización de errores, que
interactuando con el usuario clasifica los nodos como válidos o inválidos y consigue
determinar cuál es la función crítica, mostrando al usuario dónde está el error.
[ABSTRACT]
The project consists of the construction of a Declarative Debugger for the
Microsoft´s .NET Platform.
The Debugger built is multilingual, that is to say, accepts applications
implemented with the languages belonging to the Platform .NET, like C#, Visual Basic,
C++, Fortran, Haskell, Java, Pascal, Perl, Phyton or Smalltalk.
Making a copy of the application´s structure by means of Reflection, you get the
IL code (generated bytes from the .NET´s compiler, Just-in-Time) wich is translated
into MSIL code (Microsoft Intermediate Language). Orchestrated code is added to the
new Assembly, allowing like this that when making a new execution the relative trace
to the happened during the same one can be drawn. With this data a computation tree is
generated in which each node represents information in execution time about one of the
program´s function.
Moreover, an error location system has been implemented, that interacting with
the user classifies the nodes as valid or invalid and manages to determine which is the
critical function, showing to the user where the mistake is.
Description
Trabajo de clase de la asignatura Sistemas Informáticos (Facultad de Informática, Curso 2007-2008)