2012-12-20 31 views
8

पर डेल्फी डीबगर में काम नहीं कर रहा है, जबकि डीबगर में प्रोग्राम चल रहा है, जबकि एफ 12 दबाकर निष्पादन को तोड़ना चाहिए और डीबगर खोलना चाहिए। यह विंडोज एक्सपी (डी 2007 और एक्सई 2 के साथ परीक्षण) पर सही ढंग से काम करता है लेकिन विंडोज 7 और 8 पर विफल रहता है (डी 2007 और एक्सई 2 के साथ भी परीक्षण किया जाता है; तीन कंप्यूटरों पर परीक्षण किया जाता है)। (विंडोज 7)एफ 12 विंडोज 7/8

रजिस्ट्री ठीक तरह से स्थापित किया गया है:

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ AeDebug] "UserDebuggerHotKey" = DWORD: 00000000 "डीबगर" = "\" C: \ Windows \ System32 \ vsjitdebugger.exe \ "-p% ld -e% ld"

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ AeDebug \ AutoExclusionList] "dwm.exe" = DWORD: 00000001

XP स्थापना "ऑटो" = "1" भी सेट करती है और ऑटोएक्सक्लिशनलिस्ट को छोड़ देती है लेकिन विंडोज 7 मशीन पर उन परिवर्तनों को डुप्लिकेट करने से कुछ भी नहीं होता है।

अजीब चीज यह है कि डेल्फी को दबाए जाने वाले एफ 12 के बारे में पता होना प्रतीत होता है। जब मैं एक विंडोज 7 मशीन और प्रेस F12 पर एक डिबगर में एक कार्यक्रम चलाने के लिए, डेल्फी में ईवेंट लॉग खिड़की से पता चलता

थ्रेड प्रारंभ: थ्रेड ID: 4080. प्रक्रिया Project73.exe (7108)

थ्रेड से बाहर निकलें : थ्रेड आईडी: 4080. प्रक्रिया प्रोजेक्ट 73.exe (7108)

यह सिर्फ इतना है कि ब्रेकपॉइंट ट्रिगर नहीं किया गया है और एप्लिकेशन चल रहा है।

क्या कोई जानता है कि विंडोज 7/8 में इस कार्यक्षमता को कैसे पुनर्स्थापित करना है?

+0

उस दिन वापस हमें एक 'int 3' पर F12 ट्रिपिंग रोकने के लिए एक आईडीई प्लगइन स्थापित करना पड़ा था। हम एक शॉर्टकट कुंजी के रूप में एफ 12 का उपयोग करते हैं। शुक्र है कि एमएस ने विंडोज के हाल के संस्करणों में 'int 3' से छुटकारा पा लिया। –

उत्तर

11

डीबगर देखता है कि विंडोज द्वारा एक नया धागा शुरू किया गया है, लेकिन यह नहीं जानता कि वह धागा क्या है। XP में यह थ्रेड int 3 ब्रेक पॉइंट (DebugBreak()) में चलाता है, लेकिन Vista और Windows 7+ के तहत ब्रेकपॉइंट अब और भी हिट नहीं होता है, भले ही आप रजिस्ट्री कुंजी सेट करते हैं।

वहां एक डेल्फी आईडीई प्लगइन मौजूद है जो थ्रेड को पकड़ता है और डीबगब्रैक() WinAPI फ़ंक्शन को कॉल करता है। http://andy.jgknet.de/blog/ide-tools/unsupported-tools/

+0

धन्यवाद, एंडी, आप शासन करते हैं! – gabr