Instrumentation and Evaluation for Dynamic Program Analysis
Instrumentace a vyhodnocení pro dynamickou analýzu aplikací.
dissertation thesis (DEFENDED)
![Document thumbnail](/bitstream/handle/20.500.11956/68909/thumbnail.png?sequence=8&isAllowed=y)
View/ Open
Permanent link
http://hdl.handle.net/20.500.11956/68909Identifiers
Study Information System: 73952
Collections
- Kvalifikační práce [10926]
Author
Advisor
Referee
Hasselbring, Wilhelm
Krall, Andreas
Faculty / Institute
Faculty of Mathematics and Physics
Discipline
Software Systems
Department
Department of Distributed and Dependable Systems
Date of defense
17. 9. 2014
Publisher
Univerzita Karlova, Matematicko-fyzikální fakultaLanguage
English
Grade
Pass
Keywords (Czech)
Bajtkódová instrumentace, dynamická analýza programů, aspektově orientované programování, JVMKeywords (English)
Bytecode instrumentation, dynamic program analysis, aspect-oriented programming, JVMDynamická analýza aplikací zprostředkovává důležité informace během pozdějších fází vývoje. Napomáhá při laděni, profilování, výkonnostní optimalizaci nebo při detekci bezpečnostních chyb. Nicméně, podpora pro vytváření vlastních nástrojů pro dynamickou analýzu, speciálně v oblasti řízených jazyků, je poměrně omezená. Tato práce prezentuje dva systémy, které pomáhají zlepšit sledování aplikací na platformě Java. DiSL je jazyk a framework, který umožňuje jednoduchou a flexibilní instrumentaci zaměřenou na dynamickou analýzu. DiSL poskytuje abstrakce vyšší úrovně pro rychlé prototypování i pro vývojáře, kteří nemají znalosti interních systémů v Javě. Kvalifikovaný vývojář získává plnou kontrol na instrumentačním procesem, tudíž se nemusí bát nevyžádaných alokací nebo skryté běhové režie. ShadowVM je platforma poskytující separaci mezi sledovanou aplikací a prostředím pro analýzu. Pro zmírnění interakcí mezi analýzou a aplikací, ShadowVM transportuje události analýzy mimo kontext aplikace. I když je primárním cílem platformy izolace, ShadowVM zavádí několik technik tak, aby zůstala rychlostně srovnatelná a vytvářela obobné vývojové podmínky jako existující frameworky pro dynamickou analýzu.
A dynamic program analysis provides essential information during later phases of an application development. It helps with debugging, profiling, performance optimizations or vulnerability detection. Despite that, support for creating custom dynamic analysis tools, especially in the domain of managed languages, is rather limited. In this thesis, we present two systems to help improve application observability on the Java platform. DiSL is a language accompanied with a framework allowing simple and flexible instrumentation for the dynamic program analysis. DiSL provides high level abstractions to enable quick prototyping even for programmers not possessing a knowledge of Java internals. A skilled analysis developer gains full control over the instrumentation process, thus does not have to worry about unwanted allocations or hidden execution overhead. ShadowVM is a platform that provides isolation between the observed application and the analysis environment. To reduce the amount of possible interactions between the analysis and the application, ShadowVM offloads analysis events out of the context of the application. Even though the isolation is the primary focus of the platform, ShadowVM introduces a number of techniques to stay performance comparable and provide a similar programming model as existing...