Package org.objectweb.asm.tree.analysis
package org.objectweb.asm.tree.analysis
Provides a framework for static code analysis based on the asm.tree package.
Basic usage:
ClassReader classReader = new ClassReader(bytecode); ClassNode classNode = new ClassNode(); classReader.accept(classNode, ClassReader.SKIP_DEBUG); for (MethodNode method : classNode.methods) { if (method.instructions.size() > 0) { Analyzer analyzer = new Analyzer(new BasicInterpreter()); analyzer.analyze(classNode.name, method); Frame[] frames = analyzer.getFrames(); // Elements of the frames array now contains info for each instruction // from the analyzed method. BasicInterpreter creates BasicValue, that // is using simplified type system that distinguishes the UNINITIALZED, // INT, FLOAT, LONG, DOUBLE, REFERENCE and RETURNADDRESS types. ... } }
- Since:
- ASM 1.4.3
-
ClassDescriptionA semantic bytecode analyzer.An exception thrown if a problem occurs during the analysis of a method.An
Interpreter
forBasicValue
values.AValue
that is represented with its type in a seven types type system.An extendedBasicInterpreter
that checks that bytecode instructions are correctly used.A symbolic execution stack frame.Interpreter<V extends Value>A semantic bytecode interpreter.An extendedBasicVerifier
that performs more precise verifications.AnInterpreter
forSourceValue
values.AValue
which keeps track of the bytecode instructions that can produce it.An immutable symbolic value for the semantic interpretation of bytecode.