हां, अनुकूलित कोड कम डिबगबल है। न केवल कुछ जानकारी गायब है, कुछ जानकारी बहुत भ्रामक होगी।
मेरी राय में सबसे बड़ा मुद्दा स्थानीय चर है। कंपाइलर एक ही स्टैक पते का उपयोग कर सकता है या फ़ंक्शन में एकाधिक चर के लिए पंजीकरण कर सकता है। जैसा कि अन्य पोस्टर का उल्लेख है, कभी-कभी यह भी पता लगाना कि "यह" पॉइंटर क्या समय ले सकता है। जब अनुकूलित कोड को डिबगिंग करते हैं तो आप वर्तमान चरण को एक ही चरण के रूप में चारों ओर कूदते देख सकते हैं, क्योंकि संकलक ने जेनरेट कोड को पुनर्गठित किया है। यदि आप पीजीओ का उपयोग करते हैं, तो यह कूदना शायद खराब हो जाएगा।
एफपीओ को डीबीग्बिलिटी को बहुत प्रभावित नहीं करना चाहिए, बशर्ते आपके पास पीडीबी हो, क्योंकि पीडीबी में एफपीओ फ्रेम के लिए ढेर को खोलने के लिए आवश्यक सभी जानकारी शामिल है। एफपीओ एक समस्या हो सकती है जब उन उपकरणों का उपयोग किया जाता है जिन्हें प्रतीकों के बिना स्टैक निशान लेने की आवश्यकता होती है। कई परियोजनाओं के लिए, आजकल एफपीओ का लाभ लाभ निदान के लिए हिट से अधिक नहीं है; इस कारण से, एमएस ने एफपीओ अनुकूलन (http://blogs.msdn.com/larryosterman/archive/2007/03/12/fpo.aspx) के साथ विंडोज विस्टा बनाने का फैसला नहीं किया।
मैं unoptimized कोड डीबग करना पसंद करता हूं लेकिन यह हमेशा संभव नहीं होता है - कुछ समस्याएं केवल अनुकूलित कोड के साथ repro, ग्राहक क्रैश डंप जारी किए गए निर्माण से हैं, और कभी-कभी डिबग निजी तैनाती संभव नहीं है। अक्सर जब अनुकूलित कोड डीबगिंग करते हैं, तो मैं डिस्सेप्लिब्स व्यू का उपयोग करता हूं - असंतुलन कभी झूठ नहीं बोलता है।
यह सब विंडबग पर लागू होता है क्योंकि मैं इसके साथ सभी देशी कोड डीबगिंग करता हूं। विजुअल स्टूडियो का डीबगर इन मामलों में से कुछ को बेहतर तरीके से संभाल सकता है।