Please use this identifier to cite or link to this item: http://hdl.handle.net/1843/40072
Full metadata record
DC FieldValueLanguage
dc.contributor.advisor1Fernando Magno Quintão Pereirapt_BR
dc.contributor.advisor1Latteshttp://lattes.cnpq.br/4608001746330875pt_BR
dc.contributor.referee1Chunhua Liaopt_BR
dc.contributor.referee2Rafael Dueire Linspt_BR
dc.creatorJosé Wesley de Souza Magalhãespt_BR
dc.creator.Latteshttp://lattes.cnpq.br/5322689552829310pt_BR
dc.date.accessioned2022-03-15T01:33:04Z-
dc.date.available2022-03-15T01:33:04Z-
dc.date.issued2021-10-15-
dc.identifier.urihttp://hdl.handle.net/1843/40072-
dc.description.abstractO estado interno de um programa é formado pelos valores que tal programa manipula. Estes valores são armazenados na pilha de chamadas de funções, na heap, ou em memória estática. A habilidade de inspecionar o estado interno de um programa é útil para propósitos de depuração e verificação. Entretanto, não existe técnica geral para inserir pontos de inspeção em linguagens com um sistema de tipos não seguros, como C ou C++. A dificuldade vem da necessidade de percorrer o grafo de memória em um assim chamado ambiente não cooperativo. Nesta dissertação, uma técnica automática para lidar com esse problema é proposta. Nós introduzimos uma transformação estática de programa para reportar o seu estado interno. Nossa técnica foi implementada utilizando Low Level Virtual Machine (LLVM). É possível ajustar a granularidade dos pontos de inspeção, trocando precisão por desempenho. Nesta dissertação, nós demonstramos como utilizar pontos de inspeção para depurar otimizações de compiladores; para inserir código de verificação em benchmarks; e para visualizar estruturas de dados.pt_BR
dc.description.resumoThe program state is formed by the values that the program manipulates. These values are stored in the stack, in the heap, or in static memory. The ability to inspect the program state is useful as a debugging or as a verification aid. Yet, there exists no general technique to insert inspection points in type-unsafe languages such as C or C++. The difficulty comes from the need to traverse the memory graph in a so-called uncooperative environment. In this dissertation, we propose an automatic technique to deal with this problem. We introduce a static code transformation approach that inserts in a program the instrumentation necessary to report its internal state. Our technique has been implemented in Low Level Virtual Machine (LLVM). It is possible to adjust the granularity of inspection points trading precision for performance. In this paper, we demonstrate how to use inspection points to debug compiler optimizations; to augment benchmarks with verification code; and to visualize data structures.pt_BR
dc.description.sponsorshipCAPES - Coordenação de Aperfeiçoamento de Pessoal de Nível Superiorpt_BR
dc.languageengpt_BR
dc.publisherUniversidade Federal de Minas Geraispt_BR
dc.publisher.countryBrasilpt_BR
dc.publisher.departmentICEX - INSTITUTO DE CIÊNCIAS EXATASpt_BR
dc.publisher.programPrograma de Pós-Graduação em Ciência da Computaçãopt_BR
dc.publisher.initialsUFMGpt_BR
dc.rightsAcesso Abertopt_BR
dc.rights.urihttp://creativecommons.org/licenses/by-nd/3.0/pt/*
dc.subjectInspection pointpt_BR
dc.subjectVerificationpt_BR
dc.subjectProgram statept_BR
dc.subject.otherComputação – Tesespt_BR
dc.subject.otherProgramas de computador – Inspeção – Tesespt_BR
dc.subject.otherCompiladores (Programas de computador) – Tesespt_BR
dc.titleAutomatic inspection of program state in an uncooperative environmentpt_BR
dc.title.alternativeInspeção automática do estado interno de programas em um ambiente não cooperativopt_BR
dc.typeDissertaçãopt_BR
Appears in Collections:Dissertações de Mestrado

Files in This Item:
File Description SizeFormat 
wesley_dissertation.pdf2.97 MBAdobe PDFView/Open


This item is licensed under a Creative Commons License Creative Commons