Mise au point d'applications distribuées pour environnement de développement basé sur une technologie objet

Fichier postcript

Français :

Mots clef : debogage parallèle, points d'arrêt distribués, programmation orientée objet, réexécution

Ce travail s'inscrit dans le cadre du projet PVC/BOX dont le but est le développement d'un environnement orienté objet pour l'exploitation des machines parallèles distribuées. Dans ce projet, nous nous sommes plus particulièrement intéressé à la mise au point des programmes parallèles. Celle-ci est compliquée par le caractère non-déterministe de tels programmes et le manque d'état global d'une application distribuée. Notre objectif était de mettre à la disposition du programmeur des outils permettant une reproductibilité du comportement de l'application et une interactivité avec l'exécution. Nous avons conçu et mis en oeuvre un mécanisme de réexécution pour la couche système PVC développée par notre équipe. Un tel mécanisme permet de reproduire le comportement d'une exécution de référence en levant le non-déterminisme à l'aide d'une trace d'événements. La réexécution que nous proposons est une réexécution totale de l'application dont le contrôle est distribué sur chaque site. Nous proposons également un mécanisme de réexécution partielle, c'est à dire la réexécution d'un seul processus. BOX est un langage orienté objet parallèle développé par notre équipe. Les programmes BOX, s'exécutant au dessus de la couche PVC, profitent du mécanisme de réexécution. Nous proposons comme outil de mise au point des programmes BOX des points d'arrêt distribués. Ces points d'arrêt sont associés à des événements. Plusieurs types d'événements de base ont été définis prenant en compte l'aspect objet et l'aspet processus communiquant du langage. Le programmeur a la possibilité de filtrer les événements et de les composer pour en définir de nouveaux.

English :

Keywords : parallel debugging, distributed breakpoints, object oriented programming, execution replay

This work is part of the PVC/BOX project the goal of which is a full parallel object oriented environment for distributed architectures. We have focused our work on debugging parallel programs. This task is more difficult than for sequential programs because of the nondeterminism of parallel programs and the lack of a global state in a distributed execution. Our goal was to provide programmers debugging tools which allow reproducible behavior of the program and interactivity with the execution. We have designed and implemented an execution replay mecanism for the PVC system layer developped by our team. An execution replay mecanism allows a reproducible behavior of a reference execution using an event trace. Our mecanism is a full execution replay the control of which is distributed on each node. We also provide a partial execution replay (execution replay of one process.) BOX is a parallel object oriented language developped by our team. BOX programs are executed over the PVC layer, so they can easily be replayed. We have proposed distributed breakpoints as a debugging tool for BOX programs. Distributed breakpoints are associated to events. Several basic event types were defined that handle the object side and the communicating process side of the language. The programmer can filter events and compose them to define new ones.

Page d'acceuil du LIFL Communications internationnales (avec comité de lecture)

roos@lifl.fr
Last modified: Tue Mar 7 14:27:53 1995