2010-05-13 6 views
9

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

+0

आप पीडीबी फाइलों के साथ क्या करने की कोशिश कर रहे हैं? जब तक आप कोड को खराब नहीं करते हैं, तब तक आपके पास पहले से प्रबंधित कोड के साथ अच्छे स्टैक निशान होते हैं (और मुझे लगता है कि पीडीबी किसी भी तरह से बेकार बेकार है ...)। आपको प्राप्त होने वाला एकमात्र लाभ "छुपा" प्रतीकों जैसे स्थानीय और पैरामीटर नाम हैं। – Krumelur

+0

ड्रैट्स। मुझे यह सवाल पसंद है, लेकिन यह पहले से ही यहां पूछा जा चुका है: http://stackoverflow.com/questions/1307482/whats-the-risk-of-deploying-debug-symbols-pdb-file-in-a-production- पर्यावरण – David

+2

पैरामीटर नाम और रेखा संख्या बहुत उपयोगी हैं। हमारा ऐप, वीबी के कई अलग-अलग संस्करणों पर कई अलग-अलग डेवलपर्स द्वारा निर्मित किया गया है। वर्तमान में हमारे पास ढेर में प्रक्रियाओं का नाम है, लेकिन थोड़ा और डेटा होना अच्छा लगेगा। – zeocrash

उत्तर

10

जब आप अपने डीबग प्रतीकों को तैनात करते हैं आपका आवेदन, किसी के साथ आने और आपके काम को रिवर्स-इंजीनियर करने में वास्तव में आसान हो जाता है, जिसे कुछ लोगों को अवांछित लगता है। इसी प्रकार, आपको और फाइलें तैनात करनी होंगी और आपकी तैनाती योग्य परियोजना बड़ी हो जाएगी। पीडीबी फाइलें स्वयं को ऐप को धीमा नहीं करती हैं, क्योंकि एक पीडीबी शिपिंग हमेशा ऑप्टिमाइज़ेशन को रोकता नहीं है (आपको केवल सावधान रहना होगा - डिफ़ॉल्ट "डीबग" प्रोजेक्ट सेटिंग्स आपके आउटपुट को अनुकूलित नहीं करती हैं पीडीबी उत्पन्न करें)।

11

मैं जानता हूँ कि मैं इस के लिए मारा

मैं डेव Markle से सहमत पाने के लिए लेकिन ... जा रहा हूँ, लेकिन मैं जोड़ने के लिए है कि PDB फ़ाइलें प्रकाशित करने की एक फायदा है चाहते हैं, जैसा कि आप ने कहा , डीबगिंग के लिए बहुत अच्छा है।

उसने कहा, मैं सॉफ्टवेयर नहीं बेचता, और जो कोड मैं लिखता हूं वह हमारी कंपनी में आंतरिक उपयोग के लिए है। इस संदर्भ में, मुझे पीडीबी फाइलों के साथ उत्पादन में डीबग कोड डालने के साथ कोई समस्या नहीं दिखाई दे रही है। मैंने कभी भी प्रदर्शन हिट नहीं देखी है, और सभी ईमानदारी से, यदि उपयोगकर्ता अनचाहे अपवादों का सामना करते हैं तो हमारे उपयोगकर्ता शायद ही कभी हमें सही जानकारी देते हैं। बेशक, हम अपवादों को सही तरीके से संभालने का प्रयास करते हैं, लेकिन जैसा कि आप जानते हैं, त्रुटियां घटित होंगी। हमारी रणनीति सभी परियोजनाओं के लिए वैश्विक अपवाद हैंडलर जोड़ना है, और उन घटनाओं को डेटाबेस में लॉग इन करना है। इन त्रुटियों में रेखा संख्याएं होती हैं क्योंकि हम डीबग फ़ाइलों को शामिल करते हैं, और नतीजतन, हम खराब कोड को तुरंत पहचानने और प्रतिक्रिया करने में सक्षम होते हैं, इसे ठीक करते हैं, और अधिक बग-मुक्त एप्लिकेशन प्राप्त करते हैं। मेरे लिए (और हमारे उपयोगकर्ताओं के लिए) यह एक बड़ा लाभ है जिसे मैं बिना करना चाहता हूं।

तो यदि आप एक समान स्थिति में हैं, तो मैं आधिकारिक रुख (इस मामले में) भूल जाता हूं और आगे बढ़ता हूं और पीडीबी फ़ाइलों को एक महत्वपूर्ण चेतावनी के साथ प्रकाशित करता हूं।

रफ़ू यह सुनिश्चित करें कि किसी भी वेब आवेदन आप PDB फ़ाइलों के साथ तैनात, पूरी तरह से सुनिश्चित करें कि सभी अपवाद ठीक से नियंत्रित किया जाता है, और आप अनजाने में एक मानक Asp.NET त्रुटि पृष्ठ में कोड की लाइनों को उजागर नहीं कर रहे हैं हो सकता है हो सकता है।

0

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

+0

आवेदन एक अंतराल आवेदन है। यह केवल हमारी कंपनी के भीतर इस्तेमाल किया जा रहा है।उपयोगकर्ता प्रतिबंध उपयोगकर्ताओं को इंजन कोड – zeocrash

2

अपनी रिलीज बिल्ड के लिए पीडीबी बनाएं, लेकिन उन्हें शिप न करें। मेलिंग बिल्ड और स्रोत कोड के साथ पीडीबी कहीं सुरक्षित रखें। यदि आपको लाइव क्रैश या समान मिलता है, तो आप Debugging Tools for Windows, या विजुअल स्टूडियो का उपयोग करके पोस्ट-मॉर्टम डिबगिंग करने के लिए पीडीबीएस का उपयोग कर सकते हैं।

+1

रिवर्स करने में सक्षम होने से रोकते हैं हम सभी अपवादों को संभालने का प्रयास करते हैं और रखते हैं। तो हम पोस्ट मॉर्टम डीबगिंग नहीं करते हैं। हैंडल अपवादों पर हम डेटाबेस – zeocrash

+2

पर स्टैक ट्रेस लॉग करते हैं, पोस्ट मॉर्टम डिबगिंग भी उपयोगी होती है जब आपको कोई अपवाद नहीं मिलता है, उदाहरण के लिए, यदि आपका एप्लिकेशन लटकता है। आप लटका प्रक्रिया के मिनी-डंप को कैप्चर कर सकते हैं, और उसके बाद इसे पीडीबीएस और सोर्स कोड का उपयोग करके दूरस्थ रूप से डीबग कर सकते हैं। – Polyfun

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