Невозможно отладить драйвер ядра с помощью последовательного кабеля - PullRequest
0 голосов
/ 14 ноября 2009

Я новичок в драйверах. Я попытался отладить драйвер ядра, используя последовательный порт COM, но безуспешно. Может ли кто-нибудь показать мне правильное направление, как решить проблему?

Я вижу следующие сообщения на консоли kd.

ОШИБКА: DavReadRegistryValues ​​/ RegQueryValueExW (4). WStatus = 127
ОШИБКА: DavReadRegistryValues ​​/ RegQueryValueExW (5). WStatus = 127
ОШИБКА: DavReadRegistryValues ​​/ RegQueryValueExW (6). WStatus = 127

В это время я нажал Ctl ^ D и консоль kd и вижу
ЧИТАЙТЕ: Тайм-аут.
ЧИТАЙТЕ: Ждите пакета типа 7
ЧИТАЙТЕ: Тайм-аут.
ЧИТАЙТЕ: Ждите пакета типа 7
ЧИТАЙТЕ: Тайм-аут.

РЕДАКТИРОВАТЬ: проблема исправлена ​​с WinDbg. Я изменил скорость в бодах на 115200 и вставил разрыв (Ctr ^ Break) до полной загрузки целевой системы. Теперь я могу отладить код. Если я вставлю разрыв после полной загрузки целевой системы, я не смогу отладить. Я не знаю точной причины этого, но доволен текущей ситуацией.

Here are the things I have done</p> <pre>1) Prepared Target system for debug mode by editing the boot.ini file. Added “/debugport=com1 /baudrate=57600” to boot.ini 2) On Host system, started kd.exe and seeing the following output C:\Program Files\Debugging Tools for Windows>kd.exe -k com:port=1,baud=57600 Microsoft (R) Windows Debugger Version 6.6.0007.5 Copyright (c) Microsoft Corporation. All rights reserved. Opened \\.\com1 Waiting to reconnect... 3) Rebooted Target system, system boots slowly than normal boot and I am seeing some messages <<below>> on Host system console 4) At this time, If I press Ctl-C on KD console then Target system freezes (hangs) and proceeds if I enter "g" at kd prompt. This means that Target system is going to debug mode 5) However After some time I am seeing the following message on the host machine console ERROR: DavReadRegistryValues/RegQueryValueExW(4). WStatus = 127 ERROR: DavReadRegistryValues/RegQueryValueExW(5). WStatus = 127 ERROR: DavReadRegistryValues/RegQueryValueExW(6). WStatus = 127 After the above message there are no messages appearing on kd console. I searched internet for "ERROR: DavReadRegistryValues/RegQueryValueExW(6). WStatus = 127" but didn't get proper reason for it. I pressed Ctl^D and kd console and I am seeing READ: Timeout. READ: Wait for type 7 packet READ: Timeout. READ: Wait for type 7 packet READ: Timeout. I have tried above steps with following options ..but no luck I disabled firewall & antivirus software on both Host and Target systems. I unplugged and re-plugged serial cable connection between each trail I have logged-in with Domain account local account with Admin rights Can someone show some light on how to proceed? Both systems are running on XP 32bit SP3 OS.

Спасибо King

Ответы [ 2 ]

2 голосов
/ 14 ноября 2009

Вы уверены, что у вас хорошее последовательное соединение?

Кабель должен быть нуль-модемным кабелем - вы должны проверить это с помощью терминальной программы (без отладки ядра, включенной на цели). Запустите программу (HyperTerminal или что-то еще) как на целевом, так и на хост-компьютере (помните, как я уже говорил, отладка ядра через этот порт не должна быть включена на целевом устройстве или порт не может быть открыт).

Вы можете найти некоторые ссылки на бесплатные терминальные программы (я не думаю, что Microsoft предоставляет HyperTerminal с Vista) здесь: http://www.lvr.com/serport.htm#software

Введите несколько символов на одной машине и убедитесь, что они отображаются на другой стороне. Сделайте то же самое на другом компьютере.

Если вы не можете сделать это, значит, нет последовательного соединения, и вам придется получить нуль-модемный кабель или адаптер. Нет смысла пытаться заставить KD работать над этим соединением, пока вы не сделаете это.

Также следует помнить, что COM-порт, используемый для отладки ядра на целевом устройстве, должен быть стандартным UART семейства 8250 (обычно 16550 или лучше в настоящее время и обычно встроенным в чипсет материнской платы). Это не может быть разъем последовательного порта USB (хотя этот тип будет хорошо работать на стороне хоста, поскольку на хосте kd.exe - обычная программа Win32).

Edit:


Если проблема не в последовательном соединении, проблема может заключаться в том, что ваша цель не поддерживает настройку с использованием boot.ini. Начиная с Vista, параметры загрузки указывались с помощью «Базы данных конфигурации загрузки» (BCD), которая управляется такой программой, как bcdedit.exe. К сожалению, настройка системы с использованием BCDedit намного сложнее, чем просто редактирование простого текстового файла, такого как boot.ini.

Вам следует прочитать раздел справочного файла отладчика «Настройка программного обеспечения на целевом компьютере»; в частности, часть «Использование параметров загрузки». там есть подробности о том, как bcdedit может использоваться для включения отладки в Vista и более поздних системах.

0 голосов
/ 15 ноября 2009

Другая вещь, которую вы можете проверить, чтобы увидеть, работает ли отладка на цели, - это вызвать kd -kl на цели - если она говорит, что отладка не включена, вы не настроили boot.ini правильно.

...