मैं जावा कार्यक्रमों प्रोफ़ाइल, जो ज्यादातर समारोह AsyncGetCallTrace का उपयोग कर निश्चित समय अंतराल पर यादृच्छिक धागे से स्टैक ट्रेस प्राप्त करने के जरूरत पर जोर देता JVMTI कोड लिख रहा हूँ करने के लिए। इस प्रकार, मैं कॉलट्रेस संरचनाएं प्राप्त करने में सक्षम हूं, जिनमें से प्रत्येक में कॉलफ्रेम संरचनाओं की एक सरणी है, जिसमें स्टैक ट्रेस में अलग-अलग फ्रेम के बारे में डेटा शामिल है। विशेष रूप से, इन डेटा में शामिल हैं: jmethodID method_id (जावा विधि की आईडी जहां फ्रेम स्थित है), और: जिंट लिनेनो (.class फ़ाइल में विधि का बीसीआई, जहां तक मैं प्रलेखन को समझता हूं)। मुझे JVMTI फ्रेमवर्क का उपयोग करके इस "lineno" को संबंधित स्रोत कोड लाइन नंबर में परिवर्तित करने का कोई तरीका नहीं दिख रहा है (कम से कम/usr/lib/jvm/java-6-sun/include में शामिल फ़ाइल jvmti.h देखें। लिनक्स पर)। वास्तव में, यहां तक कि JVMTI ढांचे के बाहर, केवल एक चीज मैं वेब पर मिल सकता है अब तक यहाँ था: http://jakarta.apache.org/bcel/apidocs/org/apache/bcel/classfile/LineNumberTable.html, लेकिन फिर भी यह कर नहीं किया जा सकता मैं क्या पसंद करेंगे, और अतिरिक्त स्थापना की आवश्यकता है, और मुझे डेटा को संसाधित करने की आवश्यकता है, जिसे एक अलग जावा प्रोग्राम का उपयोग करके सी ++ जेएमवीटीआई कोड द्वारा उत्पन्न किया गया था।परिवर्तित बीसीआई (बाईटकोड सूचकांक) स्रोत कोड लाइन नंबर
किसी को भी जानता है कि कैसे JVMTI (या यहां तक कि किसी भी तरह से) के भीतर से स्रोत कोड लाइन नंबर के लिए बीसीआई कन्वर्ट करने के लिए, कृपया मदद!
[कोई अच्छी तरह से इस क्षेत्र को जानता है, तो कृपया मुझे बताएं, क्योंकि मैं इस प्रक्रिया के बारे में पूछने के लिए कुछ और प्रश्न पूछना चाहते हैं।]