2013-05-23 13 views
5

मैं वसंत (3.2.2) + AspectJ (1.7.2) लोड टाइम बुनाई का उपयोग कर रहा हूं। नेटबीन्स 7.3 का उपयोग कर विकास।डिबगिंग, AspectJ बुने हुए वर्ग विधियों के माध्यम से कदम

मैंने देखा है कि मैं AspectJ द्वारा बुने गए वर्गों में डीबगिंग विधियों के दौरान "कदम" नहीं कर सकता, उदाहरण के लिए @ ट्रान्सैक्शनल के साथ एनोटेटेड विधियों के अंदर।

मैं ब्रेक पॉइंट्स डाल सकता हूं, लेकिन जब मैं "स्टेप ओवर" डीबग फ्लो क्लास के लाइन 1 पर कूदता हूं और फिर "स्टेप ओवर" पर क्लिक करता है, तो यह अन्य कक्षाओं में कूद जाता है।

इंटेलीजे 12.1.3 में इसे चलाने के लिए कोशिश की, Netbeans में के रूप में एक ही समस्या ...

जब ग्रहण जूनो SR2 में एक ही परियोजना डीबगिंग, "पर कदम" ठीक जा रहा है, अपवाद के साथ के लिए कि विधि में पहली पंक्ति मुझे दो बार क्लिक करना है।

aop.xml में -XnoInline विकल्प जोड़ने का प्रयास किया, लेकिन इससे मदद नहीं मिली।

मैं एक ऐसी ही सवाल Eclipse debug stepping with AspectJ पाया है, लेकिन मैं इस सवाल का जवाब पूरा नहीं मिल रहा:

  1. मुद्दा आईडी/लिंक क्या है?
  2. यह किस संस्करण पर लागू होता है?
  3. यह कब तय किया जाएगा?
  4. क्या अन्य कामकाज हैं?
  5. यह ग्रहण में क्यों काम कर रहा है, क्या इसमें कोई कामकाज/सुविधा है?

अद्यतन 1

मुझे लगता है कि IntelliJ विचार में डिबगिंग दूरस्थ डीबगिंग के माध्यम से था का उल्लेख नहीं था। जब मैंने आईडीई में सीधे डीबग किया तो यह ठीक से बढ़ गया ...

ग्रहण में मैंने कोशिश की है और यह सामान्य और रिमोट डीबगिंग दोनों में ठीक काम करता है।

नेटबीन्स में सामान्य/स्थानीय और न ही रिमोट डीबगिंग चरण ठीक (लाइन के बाद लाइन) - अभी भी एक मुद्दा है।

अद्यतन 2

मुझे पता चला गया है क्या है कि कोड को दूर करने में समस्या है।

संस्करण 3.2.2 में वसंत ने @ ट्रान्सएक्शनल पहलू को बदल दिया है, @Before और @After संयोजन @Around के साथ बदल दिया है।

वसंत < 3.2.2 के साथ अपने परीक्षण चलाते समय, डीबगिंग ठीक काम करता है।

यह एक दयालुता है कि @Aransactional विधियों को डीबग करने के लिए लगभग असंभव बनाता है।

क्या यह एस्पेक्टजे में एक पता समस्या है (@Around का उपयोग कर)?

मैं इस समस्या से संबंधित एक स्प्रिंग मुद्दा जोड़ दिया है: https://jira.springsource.org/browse/SPR-10596

अद्यतन 3

Netbeans 7.4 में, यह "अभिव्यक्ति से अधिक चरण (Shift + F8)" का उपयोग करने के बजाय संभव है कोड के माध्यम से कदम उठाने के लिए "चरण (एफ 8)"।

उत्तर

0

मुझे लगता है कि यह मुद्दा वास्तव में इंटेलिजे के साथ @ फ्रेम कोड को हटाने के लिए उनके फ्रेम पुनर्लेखन का समर्थन नहीं कर रहा है, जैसा कि वे @ पहले/@ के बाद करते हैं। यह समस्या उनके साथ http://youtrack.jetbrains.com/issue/IDEA-119214

दायर की गई है
संबंधित मुद्दे