BLAST: Bytecode-Level Analysis on Sliced Traces

Conference Paper: PPPJ'15, September, 2015

BLAST is a framework for deep analysis of Java program executions. It captures the entire information flow of an execution. A BLAST trace represents the space-time history of a program run: It combines space (heap, static, and stack memory locations) and time (executed bytecode instructions). The BLAST API allows to easily slice and navigate that history along the data and control dependencies of the execution. This paper introduces BLAST and shows one possible application: root cause analysis for debugging unit test failures.

@inproceedings{Azadmanesh15a, author = {Azadmanesh, Mohammad R. and Hauswirth, Matthias}, title = {BLAST: Bytecode-Level Analysis on Sliced Traces}, booktitle = {Proceedings of the Principles and Practices of Programming on The Java Platform}, series = {PPPJ '15}, year = {2015}, isbn = {978-1-4503-3712-0}, location = {Melbourne, FL, USA}, pages = {152--158}, numpages = {7}, url = {http://doi.acm.org/10.1145/2807426.2807439}, doi = {10.1145/2807426.2807439}, acmid = {2807439}, publisher = {ACM}, address = {New York, NY, USA}, keywords = {bytecode-level analysis, dynamic analysis, information flow, program slicing, program trace, query-based debugging}, }