मैं बाइटकोड उत्पन्न करने के लिए एएसएम लाइब्रेरी सीख रहा हूं। कुछ बिंदु पर मैं बुरा स्थानीय चर प्रकार के साथ कुछ गलती की है और एक त्रुटि मिली:जेवीएम बाइटकोड में स्टैकमैप टेबल क्या है?
Exception in thread "main" java.lang.VerifyError: Bad local variable type
Exception Details:
Location:
Loops.start()V @56: aload_1
Reason:
Type top (current frame, locals[1]) is not assignable to reference type
Stackmap Table:
full_frame(@24,{Object[#2],Object[#9]},{Integer})
full_frame(@25,{Object[#2],Object[#9]},{Integer,Integer})
same_locals_1_stack_item_frame(@44,Integer)
full_frame(@45,{Object[#2],Object[#9]},{Integer,Integer})
full_frame(@48,{Object[#2]},{Integer})
full_frame(@80,{Object[#2],Integer},{Integer})
full_frame(@81,{Object[#2],Integer},{Integer,Integer})
full_frame(@87,{Object[#2]},{Integer})
full_frame(@119,{Object[#2],Integer},{Integer})
full_frame(@120,{Object[#2],Integer},{Integer,Integer})
same_locals_1_stack_item_frame(@123,Integer)
समस्या खोजने के लिए और ठीक करने के लिए मुश्किल नहीं था, लेकिन मैं उत्सुक क्या एक इस stackmap तालिका बात है कर रहा हूँ?
हाँ, मूल रूप से यह एक "विशेषता" है जिसे सूर्य ने जोड़ा क्योंकि उनके सत्यापनकर्ता दर्द से धीमे थे और वे इसे तेज करने के किसी भी अन्य तरीके को देखने के लिए बहुत घने थे। –