Dissertação

Fault Reproduction for Multithreaded Applications EVALUATED

Escrever aplicações distribuídas e paralelas é uma tarefa bastante complicada. Devido a esta dificuldade, é comum erros de software aparecerem durante a fase de desenvolvimento das aplicações e, frequentemente, após a sua instalação. Além disso, as técnicas de depuração clássicas revelam-se insuficientes devido ao não-determinismo induzido por este tipo de aplicações. As técnicas de gravação e reprodução foram criadas com o intuito de ajudar os programadores na tarefa de depuração. Estas técnicas são compostas por duas fases principais. A fase de gravação começa por capturar todos os eventos não-deterministas da execução. Posteriormente, durante a fase de reprodução, a execução original pode ser reproduzida, permitindo assim pesquisar a causa dos erros. Infelizmente, rastrear todos os eventos não-deterministas introduz um elevado custo adicional. Esta dissertação apresenta o Symber, uma ferramenta de gravação e reprodução para aplicações Java concorrentes, que combina gravação parcial com um mecanismo de inferência baseado em execução simbólica. Deste modo, o Symber é capaz de reduzir o custo adicional introduzido ao rastrear apenas o caminho de execução local e a ordem na qual os trincos são adquiridos. Os nossos resultados demonstram que o Symber induz uma sobrecarga competitiva em comparação com outras técnicas relacionadas, mantendo ainda a capacidade de reproduzir erros de concorrência de forma eficiente.
Erros de Concorrência, Depuração, Reprodução Determinista, Mecanismos de Inferência, Execução Simbólica

Julho 4, 2013, 9:0

Publicação

Obra sujeita a Direitos de Autor

Orientação

ORIENTADOR

Luís Eduardo Teixeira Rodrigues

Departamento de Engenharia Informática (DEI)

Professor Catedrático