2009-02-19 24 views
8

मैं रिमोट मशीन पर कोडगियर डेल्फी 2007 विंडोज एप्लिकेशन को डीबग करने के लिए WinDBG या अन्य डीबगर का उपयोग करने का प्रयास कर रहा हूं। मैं WinDBG के लिए प्रतीक फ़ाइलों का उत्पादन करने में असमर्थ रहा हूं।गैर विकास पर्यावरण पर डेल्फी आवेदन डीबगिंग

क्या किसी ऐसे सिस्टम पर डेल्फी अनुप्रयोगों को डीबग करने के लिए WinDBG या किसी अन्य डीबगर का उपयोग करने का कोई तरीका है जिसमें आईडीई शामिल नहीं है?

Edit1

दूरस्थ डीबगर यहाँ एक विकल्प नहीं है। मैं अंतिम उपयोगकर्ता पीसी में रिमोट करने में सक्षम हूं, लेकिन फ़ायरवॉल प्रतिबंधों के कारण मैं दूरस्थ डीबगर का उपयोग करने में असमर्थ हूं।

EDIT2

मैं मशीन में रिमोट करने में सक्षम हूँ, लेकिन फ़ायरवॉल प्रतिबंधों के कारण CodeGear दूरस्थ डीबगर कनेक्ट नहीं कर सकता।

उत्तर

0

महान सुझावों और रोचक उत्पादों के लिए सभी को धन्यवाद।

इस विशिष्ट मुद्दे को हल करने के लिए, "सर्वश्रेष्ठ" जिस तरह से मैंने पाया OutputDebugStringविंडोज नाम स्थान में स्थित उपयोग करता है। यह Debug View from Sysinternals के साथ, मुझे डीबग जानकारी इकट्ठा करने और इसे बहुत जल्दी से क्रमबद्ध करने की अनुमति देगा।

यदि आप इस विधि का उपयोग करने का निर्णय लेते हैं, तो सुनिश्चित करें कि एएनएसआई स्वरूपण में सब कुछ लपेटा गया है। आईई:

OutputDebugString(PAnsiChar(string1 + string2)); 

यह सुनिश्चित करता है कि स्ट्रिंग 1 और स्ट्रिंग 2 संयुक्त हो जाएं और फिर एएनएसआई अक्षरों में परिवर्तित हो जाएं।

शायद मुझे कुछ जल्दी और गंदे के लिए फ़ाइल में टेक्स्ट डंप करना शुरू करना चाहिए था, लेकिन यह एक गैर-डिबगिंग संस्करण को डिबगिंग संदेशों को उत्सर्जित करने की अनुमति देगा।

+0

मैं इस प्रश्न को कुछ और दिनों के लिए खोलना चाहता हूं यह देखने के लिए कि क्या हम वास्तव में डीबगर को कनेक्ट करने के लिए बेहतर जवाब नहीं प्राप्त कर सकते हैं। –

5

रिमोट डीबगर के बारे में कैसे? रिमोट डीबग प्रतीकों के साथ अपना ऐप बनाएं और नेटवर्क पर अपनी विकास मशीन से डिबग करें।

+0

मैं यह करने के लिए सक्षम होने के लिए प्यार होगा, लेकिन खेद अन्य मशीन फ़ायरवॉल प्रतिबंधों के साथ एक पूरी तरह से अलग नेटवर्क पर है। –

+0

मैं पीसी में रिमोट करने में सक्षम हूं, लेकिन मैं रिमोट डीबगर को टीसीपी \ आईपी के माध्यम से कनेक्ट करने में असमर्थ हूं। मैं जीयूआई के माध्यम से एप्लिकेशन की समस्या निवारण के लिए WinDBG के समान कुछ देख रहा था क्योंकि मैं सीधे डीबगर को कनेक्ट नहीं कर सकता। –

+0

यदि आप दूरस्थ रूप से कनेक्ट नहीं कर सकते हैं, तो मुझे एक्स-रे का विचार पसंद है। madExcept चट्टानों। –

1

डेल्फी में आप रन -> प्रक्रिया से अटैचमेंट का उपयोग कर सकते हैं, रिमोट मशीन का चयन करें और उस प्रक्रिया का चयन करें जिसे आप डिबग करना चाहते हैं।

+0

... लक्ष्य मशीन को उतारने से रिमोट डीबगर चल रहा है। – dummzeuch

+0

मैंने कभी भी "प्रक्रिया" का उपयोग नहीं किया है, इसलिए मैंने इसके बारे में नहीं सोचा था। इसे सीधे सेट करने के लिए Thx, कम से कम "मैंने" कुछ सीखा है। –

5

इसके बजाय, मैं मैडएक्ससेप्ट स्टैक ट्रेसिंग और कुछ लॉगिंग सुविधाओं पर भरोसा करता हूं। मेरा आवेदन दुनिया भर में & वितरित किया गया है यह पर्याप्त है।

+0

मैंने इस उत्पाद को थोड़ा और अधिक देखा और मैं इससे क्या प्रभावित कर सकता हूं उससे बहुत प्रभावित हूं! अफसोस की बात है, आवेदन क्रैश नहीं हो रहा है। मुझे स्मृति को डंप करने या एप्लिकेशन को चलने के लिए एक और तार्किक त्रुटि को पकड़ने के लिए एक तरीका चाहिए। हालांकि दिलचस्प उत्पाद के लिए धन्यवाद! –

4

आप एक नक्शा फ़ाइल निर्मित करने की कोशिश और उसके बाद से http://code.google.com/p/map2dbg/

map2dbg का उपयोग कर एक dbg फाइल करने के लिए बदल तो फिर तुम WinDbg में dbg फ़ाइल लोड कर सकते हैं कर सकते हैं।

अस्वीकरण: मुझे एक समान समस्या का सामना करना पड़ा लेकिन मैं दूरस्थ डीबगिंग करने में कामयाब रहा और उसे यह सब करने की ज़रूरत नहीं थी। तो मुझे यकीन नहीं है कि यह काम करेगा। लेकिन अगर आप इसे आजमाते हैं तो हमें बताएं कि यह काम करता है या नहीं।

+0

मैंने कल काफी कुछ देखा और पाया कि यह अभी तक डेल्फी के साथ संगत नहीं है। यदि आपको इसके बारे में और जानकारी मिली है, तो यह सही होगा। –

2

मुझे डर है कि यह उन में से एक अधिक है कर रहा हूँ जवाब "मैं एक वास्तविक जवाब नहीं है", लेकिन यह पराक्रम सिर्फ मदद ...

आप अपने आवेदन करने के लिए लॉगिंग जोड़ने विचार किया है? मैंने SmartInspect के बारे में महान बातें सुनी हैं। इसके साथ, आप स्टैक निशान और "घड़ियों" (चर) सहित सभी प्रकार की जानकारी लॉग कर सकते हैं।

डेल्फी के लिए एक और लॉगिंग उत्पाद EurekaLog है।

+0

मैं पुष्टि कर सकता हूं कि SmartInspect एक बहुत विश्वसनीय समाधान है। ठीक है, आप इसके साथ डीबग नहीं कर सकते हैं लॉगिंग बहुत अच्छा और उन्नत है। –

0

http://sourceforge.net/projects/tds2dbg/ का उपयोग डेल्फी की टीडीएस डीबग फ़ाइलों को डीबीजी फ़ाइलों में परिवर्तित करने के लिए किया जा सकता है। यह बुनियादी प्रतीक जानकारी देता है - कार्य, कक्षाएं, इकाइयां, लेकिन चर नहीं। एक उचित कॉल स्टैक के लिए पर्याप्त, और थोड़ी सी जानकारी के साथ, डेल्फी ऐप्स को लाइव और डंप के साथ डीबग करने के लिए पर्याप्त है।

मैं अपने ब्लॉग पर डेल्फी + WinDBG अनुभवों में से कुछ के बारे में लिखा है: https://marc.durdin.net/2015/11/windbg-and-delphi-a-collection-of-posts/

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