# StackMapTable * Attribute für Codeattribut * Wird für Sprünge im Bytecode benötigt * Quelle: https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.7.4 ## Generierung * StackMapTable könnte generiert werden, indem im bytecode geschaut wird, wo Sprünge vorliegen. * https://stackoverflow.com/questions/24927993/what-kind-of-java-code-requires-stackmap-frames#24930521 * It is illegal to have code after an unconditional branch without a stack map frame being provided for it. ## BCEL Patch https://issues.apache.org/jira/browse/BCEL-268 * Submitting patch: https://commons.apache.org/patches.html ### Änderungen im BCEL-Projekt * Neue Datei StackMapTableGen * Testen TODO: * Mittels BCELifier Code generieren lassen, welcher Methoden erstellt, die Branches enthalten * Dies dann dem StackMapTableGen übergeben und auf das erstellen von StackMapEntries abprüfen # Literatur * Zu JVM allgemein: http://blog.jamesdbloom.com/JVMInternals.html