2013-10-31 17 views
5

Tôi đang bắt đầu một mẫu thử nghiệm bao gồm cả bộ điều chỉnh Windows. Tôi đã thiết lập môi trường của tôi:Tôi không thể ngắt khi gắn vào máy đích trong chế độ gỡ lỗi hạt nhân

  • một mục tiêu Virtual Machine (trên thực tế 3: Windows 7, 8 và 8.1)
  • một máy phát triển máy chủ (nơi tổ chức Visual Studio 2013 và HyperV VM)

Cuối cùng tôi quản lý để triển khai minifilter thử nghiệm để các máy tính mục tiêu, nhưng vấn đề của tôi là:

tôi không thể phá vỡ các hạt nhân trong máy mục tiêu.

Khi tôi thực hiện một xây dựng và bắt đầu từ Visual Studio Debugger, đây là kết quả:

----------------------------------------------------------------------- 
----------------------------------------------------------------------- 
        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 

Và khi tôi cố gắng để phá vỡ, có gì xảy ra.

Khi tôi đính kèm trực tiếp vào kernel (sử dụng menu VS "Debug" -> "Đính kèm để xử lý" -> "Kernel gỡ rối" -> "Đính kèm", tôi có được điều này:

----------------------------------------------------------------------- 
----------------------------------------------------------------------- 
        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... 

Nhưng một lần nữa ., không thể phá vỡ

tôi đã cố gắng:

  • tất cả các host mục tiêu (Windows 7, 8 và 8.1) và nhận được kết quả tương tự (và có, tất cả chúng được cấu hình đúng để gỡ lỗi hạt nhân)
  • bằng cách sử dụng mạng thay vì đặt tên đường ống
  • sử dụng WinDBG thay vì Visual Studio

Nhưng tôi luôn luôn nhận được kết quả tương tự: không thể phá vỡ này @ # kernel!

Google không phải là bạn của tôi, tôi không thể tìm thấy bất kỳ sự cố tương tự nào.

Vì vậy, bây giờ tôi đang tự hỏi:

  • thể tôi được thực sự không kết nối với máy tính mục tiêu, bất chấp những gì debugger nói (nhưng công trình triển khai)?
  • Có thể có vấn đề với HyperV và gỡ lỗi hạt nhân không?

Bất kỳ ý tưởng nào được chào đón!


Sửa: Tôi đã làm một thử nghiệm với một máy mục tiêu thực sự thay vì một ảo, và tôi có cùng một vấn đề, vì vậy đây không liên quan đến Hyper-V.

Trả lời

6

tôi giải quyết vấn đề của tôi (Tôi hút, do đó tôi)

Tóm lại, đây là cách hai máy phải được cấu hình để gỡ lỗi hạt nhân.

A.máy mục tiêu (Hyper-V VM)

  • Configure để gỡ lỗi hạt nhân (sử dụng msconfig là cách dễ nhất) trên nối tiếp COM1
  • Cấu hình Hyper-V máy để ống COM1 để một ống tên (\. \ ống \ debug ví dụ)
chủ

máy B. Nguồn (Hyper-V lưu trữ các mục tiêu)

  • Run WinDBG hoặc VS trong chế độ admin (mà là sai lầm đầu tiên của tôi)
  • Kết nối đường ống đặt tên với chính xác cùng tên (\. \ ống \ debug) (đó là sai lầm thứ hai của tôi, tôi nghĩ tên máy đã trở thành tên mục tiêu thực tế)

Nó hoạt động tốt, với một tích hợp tốt đẹp dưới Visual Studio 2013. Nhờ tất cả những người trả lời (không ai) ... Và tất cả những người khác đã đọc :)

Các vấn đề liên quan