2012-05-09 5 views
5

मैं निम्नलिखित कोड है कि एक साधारण VCL Win32 आवेदन लिखा है:कैसे दूरदराज के एक Win32 VCL आवेदन क्रम पैकेज के साथ बनाया गया डिबग करने के लिए

procedure TForm5.Button1Click(Sender: TObject); 
begin 
    ShowMessage('bingo'); 
end; 

मैं क्रम संकुल के साथ आवेदन संकलित और निम्नलिखित स्विच पर बारी है:

  1. डीबग सूचना -> सच
  2. अभिकथन, डिबग जानकारी, स्थानीय smbols, उपयोग डिबग dcus - -> सच> सच
  3. दूरस्थ डिबग प्रतीक को शामिल करें

उत्पादन निम्न फ़ाइलें हैं:

  1. Project1.exe
  2. project1.rsm

दो क्रम संकुल रहे हैं:

  1. vcl160.bpl
  2. rtl160.b pl

मैं Button1Click हैंडलर में एक को तोड़ने बिंदु निर्धारित, स्थानीय आईडीई डिबगर वहाँ रोक अगर मैं डिबगर मोड में आवेदन चलेंगे।

अगला, मैं रनटाइम पैकेज के साथ एप्लिकेशन को दूरस्थ डीबग करने का प्रयास करना चाहता हूं।

मैं 32-बिट विंडोज प्लेटफॉर्म पर रिमोट प्रोफाइल असाइन करता हूं। परीक्षण कनेक्शन रिमोट प्रोफाइल के साथ काम करता है। रिमोट मशीन में पैसरर भी शुरू किया गया था। मैं देख सकते हैं जब प्रयास डेल्फी XE2 आईडीई डिबगर के साथ अनुप्रयोग चलाने के लिए 4 फ़ाइलें रिमोट मशीन पर कॉपी किया गया:

  1. Project1.exe
  2. project1.rsm
  3. vcl160.bpl
  4. rtl160.bpl

हालांकि, ईवेंट लॉग दिखाता है:

Module Load: Project1.exe. No Debug Info. Base Address: $00400000. Process Project1.exe (1676) 

चूंकि मॉड्यूल में डीबग जानकारी नहीं है, तो सभी ब्रेकपॉइंट ट्रिगर करने में असफल हो जाएंगे।

मैंने रनटाइम पैकेज के बिना एकल फ़ाइल .exe एप्लिकेशन बनाने का प्रयास किया है। एक ही रिमोट डीबगर कदम काम करते हैं और मैं दूरस्थ रूप से एप्लिकेशन डीबग कर सकता हूं।

रनटाइम पैकेज के साथ बनाए गए एप्लिकेशन के साथ रिमोट डीबगिंग विफल हो गई है?

+0

डीबग करने के लिए एक अच्छी प्रैक्टिस आउटपुटडिबगस्ट्रिंग का उपयोग करने के लिए भी है, जो आपके द्वारा संभाला जा सकता है, या 3 डी पार्टी सॉफ़्टवेयर – RBA

+0

द्वारा क्योंकि आपने डेल्फी संस्करण निर्दिष्ट नहीं किया है, हो सकता है कि यह http://stackoverflow.com/questions/ 5018147/डेल्फी-2010-रिमोट-डीबगिंग-असमर्थ-टू-ब्रेकपॉइंट्स-काम कर रहे – RBA

+0

आरबीए: मैं डेल्फी एक्सई 2 अपडेट 4 का उपयोग कर रहा हूं। आपके द्वारा सुझाई गई पोस्ट स्टैंडअलोन .exe एप्लिकेशन है और रनटाइम पैकेज के साथ संकलित नहीं है। –

उत्तर

1

ऐसा लगता है कि आपको अतिरिक्त रनटाइम पैकेजों के अनुरूप 'डीसीपी' फ़ाइलों को तैनात करना होगा।

Debugger Notes से

(XE2 के लिए रिलीज नोट्स):

सुनिश्चित डीबग सूचना आवेदन तैनाती

के लिए फ़ाइलें .dcp जोड़कर रन-टाइम पैकेज के साथ अपने डेल्फी आवेदन लिंक, उम्मीद तो डीबग जानकारी उत्पन्न नहीं हो सकती है। यह मैक ओएस एक्स अनुप्रयोगों और दूरस्थ Win64 या दूरस्थ Win32 अनुप्रयोगों के लिए सच है। वर्कअराउंड डीडीपी फ़ाइलों को जोड़ने के लिए परिनियोजन प्रबंधक का उपयोग करना है जो आपके रन-टाइम पैकेज सूची में रन-टाइम पैकेज के अनुरूप है। उदाहरण के लिए, यदि आप आरटीएल का उपयोग कर रहे हैं, तो आपको rtl.dcp फ़ाइल को तैनात करना होगा।

उपयोग .dcp Embarcadero \ रेड स्टूडियो \ 9.0 \ lib निर्देशिका में स्थित फ़ाइलें, इस प्रकार है:

  • एक ओएस एक्स आवेदन के लिए: Embarcadero \ रेड स्टूडियो \ 9.0 \ lib \ OSX \ रिहाई
  • एक दूरदराज 64-बिट Windows अनुप्रयोग के लिए: Embarcadero \ रेड स्टूडियो \ 9.0 \ lib \ win64 \ रिहाई
  • एक दूरदराज 32-बिट विंडोज़ अनुप्रयोग के लिए: Embarcadero \ रेड स्टूडियो \ 9.0 \ lib \ Win32 \ रिहाई
+0

डीबगर नोट निर्देश का पालन करें काम नहीं करता ... कोई विचार? –

+0

@Chau - क्षमा करें, नहीं। असल में मैंने रनटाइम पैकेज का कभी भी उपयोग नहीं किया। मैं उम्मीद कर रहा था कि दस्तावेज उपयोगी था। क्या यह डीबग फ़ोल्डर में डीसीपी के साथ एक फर्क पड़ता है? –

+0

@ सेक्टैक: मैंने रिलीज और डीबग फ़ोल्डर दोनों की कोशिश की है और यह काम नहीं करता है। –

संबंधित मुद्दे