2013-10-31 10 views
5

में लक्ष्य मशीन को जोड़ने के दौरान मैं तोड़ नहीं सकता हूं, मैं विंडोज मिनीफिल्टर समेत एक प्रोटोटाइप शुरू कर रहा हूं।कर्नेल डीबग मोड

  • लक्ष्य वर्चुअल मशीन (वास्तव में 3: एक Windows 7, 8 और 8.1)
  • एक मेजबान विकास मशीन
(जो दृश्य स्टूडियो 2013 और HyperV VMs होस्ट करता है) मैं अपने वातावरण की स्थापना की है

मैं अंत में लक्ष्य मशीन के लिए परीक्षण minifilter को तैनात करने में कामयाब रहे, लेकिन मेरी समस्या है:

मैं लक्ष्य मशीन में गिरी नहीं तोड़ सकते हैं।

जब मैं एक का निर्माण करने के लिए और विजुअल स्टूडियो डीबगर से शुरू, यहाँ परिणाम है:

----------------------------------------------------------------------- 
----------------------------------------------------------------------- 
        Starting New Debugger Session   
----------------------------------------------------------------------- 
----------------------------------------------------------------------- 

Microsoft (R) Windows Debugger Version 6.3.9600.16384 AMD64 
Copyright (c) Microsoft Corporation. All rights reserved. 

MONTLUC\pascal (npipe WinIDE_01CED6303D19BD92) connected at Thu Oct 31 12:56:31 2013 

Microsoft (R) Windows Debugger Version 6.3.9600.16384 AMD64 
Copyright (c) Microsoft Corporation. All rights reserved. 

Waiting for pipe \\montlucw81x64\pipe\dbg 
Waiting to reconnect... 
[12:56:32:860]: Removing any existing files from the remote driver folder 
[12:56:33:121]: Removing any existing files from test execution folder 

te.exe "%SystemDrive%\DriverTest\Run\DriverTestTasks.dll" /select:"@Name='DriverTestTasks::_DriverRemoval'" /p:"InfFile=passThrough.inf" /p:"Debug=1" /p:"ImportDriver=1" /p:"RemoveDriver=1" /p:"CertificateFile=package.cer" /p:"PackageGuid={A23BA0FC-7265-4E3C-B99F-1E7A04AD970D}" /rebootStateFile:%SystemDrive%\DriverTest\Logs\DriverTestReboot.xml /enableWttLogging /wttDeviceString:$LogFile:file="%SystemDrive%\DriverTest\Logs\Driver_Removal_(x64)_(possible_reboot)_00060.wtl",writemode=append,encoding=unicode,nofscache=true,EnableLvl="WexStartTest|WexEndTest|WexXml|WexProperty|WexCreateContext|WexCloseContext|*" /runas:Elevated 
[12:56:56:926]: Result Summary: Total=1, Passed=1, Failed=0, Blocked=0, Warned=0, Skipped=0 
[12:56:57:457]: Removing any existing files from test execution folder 

te.exe "%SystemDrive%\DriverTest\Run\DriverTestTasks.dll" /select:"@Name='DriverTestTasks::_DriverPreparation'" /p:"InfFile=passThrough.inf" /p:"Debug=1" /p:"ImportDriver=1" /p:"RemoveDriver=1" /p:"CertificateFile=package.cer" /p:"PackageGuid={A23BA0FC-7265-4E3C-B99F-1E7A04AD970D}" /rebootStateFile:%SystemDrive%\DriverTest\Logs\DriverTestReboot.xml /enableWttLogging /wttDeviceString:$LogFile:file="%SystemDrive%\DriverTest\Logs\Driver_Preparation_(x64)_(possible_reboot)_00060.wtl",writemode=append,encoding=unicode,nofscache=true,EnableLvl="WexStartTest|WexEndTest|WexXml|WexProperty|WexCreateContext|WexCloseContext|*" /runas:Elevated 
[12:57:00:437]: Result Summary: Total=1, Passed=1, Failed=0, Blocked=0, Warned=0, Skipped=0 
[12:57:00:893]: Removing any existing files from test execution folder 

te.exe "%SystemDrive%\DriverTest\Run\DriverTestTasks.dll" /select:"@Name='DriverTestTasks::_RunProcess'" /p:"BinaryPath=rundll32" /p:"Arguments=setupapi,InstallHinfSection DefaultInstall 132 C:\DriverTest\Drivers\passthrough.inf" /p:"ExitCodes=0" /p:"WorkingFolder=%SystemDrive%\DriverTest\Drivers" /p:"LogOutput=1" /rebootStateFile:%SystemDrive%\DriverTest\Logs\DriverTestReboot.xml /enableWttLogging /wttDeviceString:$LogFile:file="%SystemDrive%\DriverTest\Logs\Driver_Install_(x64)_(possible_reboot)_00025.wtl",writemode=append,encoding=unicode,nofscache=true,EnableLvl="WexStartTest|WexEndTest|WexXml|WexProperty|WexCreateContext|WexCloseContext|*" /runas:Elevated 
[12:57:03:916]: Result Summary: Total=1, Passed=1, Failed=0, Blocked=0, Warned=0, Skipped=0 
[12:57:04:418]: Removing any existing files from test execution folder 

te.exe "%SystemDrive%\DriverTest\Run\DriverTestTasks.dll" /select:"@Name='DriverTestTasks::_DriverPostInstall'" /rebootStateFile:%SystemDrive%\DriverTest\Logs\DriverTestReboot.xml /enableWttLogging /wttDeviceString:$LogFile:file="%SystemDrive%\DriverTest\Logs\Driver_Post_Install_Actions_(x64)_(possible_reboot)_00060.wtl",writemode=append,encoding=unicode,nofscache=true,EnableLvl="WexStartTest|WexEndTest|WexXml|WexProperty|WexCreateContext|WexCloseContext|*" /runas:Elevated 
[12:57:06:139]: Result Summary: Total=1, Passed=1, Failed=0, Blocked=0, Warned=0, Skipped=0 
[12:57:06:564]: Driver Installation summary: 
[12:57:06:566]: Driver Removal (x64) (possible reboot): Pass 
[12:57:06:571]: Driver Preparation (x64) (possible reboot): Pass 
[12:57:06:578]: Driver Install (x64) (possible reboot): Pass 
[12:57:06:586]: Driver Post Install Actions (x64) (possible reboot): Pass 

और जब मैं तोड़ने की कोशिश, कुछ नहीं होता।

जब मैं कर्नेल के लिए सीधे संलग्न (वी.एस. मेनू "डीबग" का उपयोग कर - "कर्नेल डिबगिंग"> - -> "कार्रवाई करने के लिए संलग्न"> "अटैच करें", मैं इस मिल:

----------------------------------------------------------------------- 
----------------------------------------------------------------------- 
        Starting New Debugger Session   
----------------------------------------------------------------------- 
----------------------------------------------------------------------- 

Microsoft (R) Windows Debugger Version 6.3.9600.16384 AMD64 
Copyright (c) Microsoft Corporation. All rights reserved. 

MONTLUC\pascal (npipe WinIDE_01CED630A522D2F5) connected at Thu Oct 31 12:59:26 2013 

Microsoft (R) Windows Debugger Version 6.3.9600.16384 AMD64 
Copyright (c) Microsoft Corporation. All rights reserved. 

Waiting for pipe \\montlucw81x64\pipe\dbg 
Waiting to reconnect... 

लेकिन फिर से ।, असंभव को तोड़ने के लिए

मैंने कोशिश की:

  • सभी लक्ष्य मेजबान (विंडोज 7, 8 और 8.1) और एक ही परिणाम मिला (और हाँ, उन सभी को सही ढंग से गिरी डिबगिंग के लिए कॉन्फ़िगर किया गया है)
  • बजाय नेटवर्क का उपयोग कर नामित पाइप
  • का दृश्य स्टूडियो के बजाय WinDBG का उपयोग कर

लेकिन मैं हमेशा ही परिणाम मिल: इस @ # गिरी को तोड़ने के लिए असंभव!

Google मेरा मित्र नहीं है, मुझे कोई भी समस्या नहीं मिली।

तो अब मैं सोच रहा हूँ:

  • मैं वास्तव में, लक्षित मशीन से नहीं जोड़ा जा सकता है क्या डिबगर का कहना है (लेकिन तैनाती काम करता है) के बावजूद?
  • क्या हाइपरवी और कर्नेल डीबगिंग में कोई समस्या हो सकती है?

कोई विचार आपका स्वागत है!


संपादित: मैं एक असली लक्ष्य मशीन के बजाय एक आभासी एक के साथ एक परीक्षण किया था, और मैं एक ही समस्या है, तो यह हाइपर-वी से संबंधित नहीं है।

उत्तर

6

मैं यहाँ संक्षेप में मेरी समस्या हल (मैं चूसना, इसलिए मैं कर रहा हूँ)

, कैसे दो मशीनों कर्नेल डिबगिंग के लिए कॉन्फ़िगर किया जाना आवश्यक है।

एलक्ष्य मशीन (हाइपर-वी वी एम) कर्नेल डिबगिंग के लिए

  • कॉन्फ़िगर (msconfig का उपयोग कर सबसे आसान तरीका है) धारावाहिक COM1
  • कॉन्फ़िगर हाइपर-वी मशीन पाइप COM1 करने के लिए एक नामित पाइप (\ करने के लिए। \ पाइप पर \ उदाहरण के लिए डिबग)

बी स्रोत मशीन (हाइपर-वी मेजबान लक्ष्य होस्टिंग)

  • भागो WinDBG या व्यवस्थापक मोड में वी.एस. (कि मेरी पहली गलती)
  • बिल्कुल एक ही नाम के साथ कनेक्ट नामित पाइप के लिए (\। \ पाइप \ डिबग) (कि मेरी दूसरी गलती थी, मैंने सोचा था कि मशीन का नाम वास्तविक लक्ष्य नाम हो)

था विजुअल स्टूडियो 2013 के तहत एक अच्छा एकीकरण के साथ यह ठीक काम करता है। उन सभी लोगों के लिए धन्यवाद जिन्होंने उत्तर दिया (कोई नहीं) ... और अन्य सभी जो पढ़ते हैं :)

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