2015-05-01 16 views
5

के साथ वर्चुअल सीरियल पोर्ट पर डीबग करें मुझे वर्तमान में मेरे विंडोज 8.1 x64 होस्ट मशीन से विंडोज 7 एक्स 64 लक्ष्य के कर्नेल डिबगिंग करने में कुछ समस्याएं हैं। मैं अपने मेजबान पर डब्ल्यूडीके 8.1 के साथ विजुअल स्टूडियो 2013 चला रहा हूं और वीएमवेयर में चल रही अपनी लक्षित मशीन का प्रावधान किया है।विंडोज कर्नेल डिबगिंग: डब्ल्यूडीके 8.1

यहां लक्ष्य मशीन के लिए मेरी कॉन्फ़िगरेशन हैं। यह यहाँ से ज्यादातर को पढ़ कर कॉन्फ़िगर किया गया था - http://www.codeproject.com/Tips/545835/Kernel-Mode-Debugging-in-a-VM-using-Visual-Studio:

  • विंडोज 7 64
  • सीरियल पोर्ट नाम के साथ VMWare साथ COM2 \\ \ पाइप \ COM2।। वीएमवेयर में सभी उचित विकल्प
  • एमएस कॉन्फ़िगर के माध्यम से ओएस के लिए डीबग ध्वज की जांच की जाती है। डीबग पोर्ट 115200 बॉड पर चल रहा COM2 है। यह बनाया WDK निकालें -
  • मैं "WDK टेस्ट लक्ष्य सेटअप 64-x64_en-us.exe" मशीन पर कंप्यूटर

मैं कंप्यूटर ठीक से प्रावधान करने में सक्षम था प्रावधान से पहले परीक्षण लक्ष्य ग्राहक भाग गया उपभोक्ता खाता। हालांकि, मैं वास्तव में डीबगिंग के कुछ मुद्दों में भाग रहा हूं। नीचे दिए गए चरणों

  1. लॉन्च VMWare में विंडोज 7 x64 लक्ष्य छवि कर रहे हैं और बूट मेनू
  2. दृश्य स्टूडियो (मेजबान मशीन) में पर प्रतीक्षा करें, डिबग करने के लिए जाने -> प्रक्रिया के लिए संलग्न -> मेरे कंप्यूटर का चयन करें - > प्रक्रिया चुनें "कर्नेल" ->
  3. वीएमवेयर में, विंडोज
  4. बूट करने के लिए एंटर दबाएं इसमें कुछ समय लगता है, लेकिन मेरी मेजबान मशीन पर, विजुअल स्टूडियो अंततः कनेक्ट हो जाता है। मैं "सभी को तोड़ना" चुन सकता हूं और वास्तव में डीबगर का उपयोग कर सकता हूं।

हालांकि, अगर मैं कर्नेल को बूट करने से पहले ऐसा नहीं करता तो मैं डीबगर से कनेक्ट नहीं कर सकता। और मैं केवल एक बार संलग्न कर सकता हूं। उदाहरण के लिए, मैं विंडोज को डेस्कटॉप पर प्रारंभ करने और फिर अपने ड्राइवर का निर्माण करने और डिबगिंग शुरू करने की अनुमति नहीं दे सकता। डीबगर हमेशा "पुनः कनेक्ट करने की प्रतीक्षा कर रहा है ..." पर लटका होगा। वही होता है यदि मैं कर्नेल प्रारंभ पर डीबगिंग शुरू करता हूं, डीबगिंग को रोकने का निर्णय लेता हूं, फिर पुनः कनेक्ट या पुनः प्रयास करने का प्रयास करता हूं; यह अनिश्चित काल तक "पुनः कनेक्ट करने की प्रतीक्षा कर रहा है ..." पर लटका होगा।

+0

हैलो @xtef_ क्या आपने इसे ठीक किया? मेरे पास समान समस्या है –

+0

क्या यह सामान्य व्यवहार नहीं है कि आप केवल बूट के दौरान कर्नेल से कनेक्ट कर सकते हैं? –

+0

@WouterHuysentruit मुझे यकीन नहीं है कि यह सामान्य व्यवहार है; मैंने ऑनलाइन विवादित जानकारी पढ़ी है। यदि यह सामान्य व्यवहार है, तो इसका मतलब है कि मैं मशीन को पुनरारंभ करने के पहले एक बार अपने ड्राइवर को डीबग कर सकता हूं? क्योंकि वर्तमान में यह मामला है। वीएस 2013 और डब्लूडीके के साथ प्रयास करने से पहले, मैंने विजुअल डीडीके http://visualddk.sysprogs.org/ का उपयोग किया था और जितनी बार चाहूं उतना बार लोड/अनलोड और मेरे ड्राइवर को डीबग करने में सक्षम था। वर्तमान में मैं स्टार्टअप पर एक बार संलग्न कर सकता हूं और फिर रीबूट तक फिर से संलग्न नहीं कर सकता। –

उत्तर

2

कृपया कर्नेल डीबगिंग के लिए WinDbg का उपयोग करें। WinDbg WDK के साथ आता है, और यह आपको VS2013 का उपयोग कर बनाम बहुत परेशानी बचाएगा। विस्तृत निर्देशों के लिए Setting Up Kernel-Mode Debugging of a Virtual Machine Manually देखें। अगर आपको WinDbg को काम करने में परेशानी हो रही है, तो मैं आपकी मदद कर सकता हूं, लेकिन मैंने वीएस2013 का उपयोग कर कर्नेल डीबगिंग पर पहले ही छोड़ दिया है।

+0

मैं विजुअल स्टूडियो के भीतर से एक कर्नेल मोड डीबगर के रूप में WinDbg का उपयोग कर रहा हूं। यदि मैं कमांड लाइन से WinDbg लॉन्च करने का प्रयास करता हूं तो मुझे एक ही समस्या मिलती है - मैं केवल बूट पर संलग्न कर सकता हूं और वीएम को रीबूट करने की आवश्यकता से पहले एक बार संलग्न कर सकता हूं। मैं _can_ डीबग, लेकिन मेरे पढ़ने (और VisualDDK के साथ पूर्व अनुभव) से, ऐसा लगता है जैसे मैं कुछ गलत कर रहा हूँ। मैं अपने ड्राइवर को कई बार लोड/अनलोड कर सकता हूं और VM को पुनरारंभ किए बिना डीबग कर सकता हूं, यह देखते हुए कि यह पुरानी विज़ुअल डीडीके प्लगइन के साथ कितनी आसानी से काम करता है। –

+0

सबसे पहले, मैं यह कहना चाहूंगा कि आप अपने डीबगर को कई बार, और किसी भी समय संलग्न करने में सक्षम होना चाहिए। दूसरा, क्या आप अधिक जानकारी प्रदान कर सकते हैं? (1) क्या आपने अपना नामित पाइप बनाया था जब आपने "सर्वेक्षण पर यील्ड सीपीयू" की जांच की थी? (2) क्या आप अपना WinDbg कमांड साझा कर सकते हैं? मेरा यह 'विंडबग-के "कॉम जैसा दिखता है: पोर्ट = \\। \ पाइप \ com_1, बॉड = 115200, पाइप," पुनः कनेक्ट करें। (3) क्या आप अपना WinDbg प्रिंट आउट साझा कर सकते हैं? –

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