в "Virtual Machine monitor" сейчас только "Debugger path...".
Замении на "Debugger options..."
* "Path: ___________ [...]"
* "Parameters: _________"
Причем Path можно проверять "по-умолчанию".
Здравствуйте, airmaxx, Вы писали:
A>Здравствуйте, bazis1, Вы писали:
B>>Думаю, вместо, не есть лучшая идея. Возможно, сделаю дополнительную опцию, какой набор флагов использовать. Пока можно так: #ifdef _DEBUG \\ #define DBG 1 \\ #endif. A>Использую обе опции, потому как без DBG 1 не работают отладочные макосы, например KdPrint.
Хм. Тогда проще всего #ifdef. Потом добавлю в Wizard-овский stdafx.h
A>>>Очень похоже что в них отсутствует вся отладочная информация. A>Так и есть. Например, если в WinDbg установить тип NTSTATUS для переменной — вываливает ошибку что не находит такой тип. A>Если собрать Build-ом то все типы находит корректно.
Напишите, пожалуйста, точные аргументы cl.exe в случае с BUILD и с VS. В ближайшее время посмотреть самому времени нет.
B>>А что говорит WinDbg/VisualDDK, если посмотреть NTSTATUS-переменную, собранную через Build? NTSTATUS или long? Если NTSTATUS, то какая в точности командная строка передается cl.exe? A>Всё таки long я немного запутался
A>Попробовал тестировать NDIS\PassThru. Запуск осуществляется утилитой NetCfg (с параметрами). A>При запуске вываливает "There is no source code available for the current location.", если нажать ОК и Ф5 всё работает корректно.
Это нормально, связано с тем, что при подключении к сессии WinDbg ставит breakpoint и отличить его от прямого вызова DbgBreakPoint() из программы нереально. Нажимайте F5, все будет работать.
A>При завершении отладки не вызывается скрипт порописанный в Stopping Driver. Соответственно, драйвер не выгружается.
Если попробовать запустить сессию заново (не перезагружая студию), появится окно VisualDDK console и там, вероятно, будет дополнительная информация, почему не удалось выгрузить. A>Не освобождается пайп(помогает только выгрузка ВС).
И не должен. Если освобождать пайп, то каждый перезапуск отладочной сессии (после модификации драйвера) будет занимать по 10-20 секунд, пока загрузятся все символы и т.п. Если хотите принудительно освободить пайп, сделайте attach к несуществующему COM-порту; сессия сбросится.
A>Я понимаю что данных не достаточно — как можно узнать в чём проблема, общий алгоритм действий? A>Инструменты VS2008, XP SP3.
По части выгрузки, посмотрите еще логи DDKMonitor на виртуальной машине. Может быть, там какая проблема? Запрос от хост-машины доходит?
A>Из косметических улучшений, просьба сдалать чтобы VMMMON и DDKLaunchMonitor отображались в трее.
VMMON — возможно. DDKLaunchMonitor — принципиально нет, так как в таком случае какой-нибудь доморощенный хакер Вася поставит его в качестве трояна на компьютер доморощенного юзера Пети, программа попадет в антивирусные базы и доказывай потом, что не верблюд. А делать аутентификацию, чем усложнять программу раза в 2, желания нет. Так что, пусть уж будет полностью заметным. Малость параноидально, но повторения ситуации с Aston-ом не хочу.
Здравствуйте, pva, Вы писали:
pva>Привет,
pva>в "Virtual Machine monitor" сейчас только "Debugger path...". pva>Замении на "Debugger options..." pva> * "Path: ___________ [...]" pva> * "Parameters: _________" pva>Причем Path можно проверять "по-умолчанию".
По-умолчанию проверяется (на x64 "умолчания" разные для 32- и 64-битных программ). Если хочется задать parameters, для этого есть опция Custom.
Обнаружил, что не отображаются строки в стуктурах UNICODE_STRING. Т.е. адрес есть и всё.
Например, на скриншоте http://visualddk.sysprogs.org/screenshots/watch.gif отчётливо видно что есть.
Пробовал в WinDBG есть, а в студии нет . Куда глянуть?
Здравствуйте, bazis1, Вы писали:
B>Хм. Тогда проще всего #ifdef. Потом добавлю в Wizard-овский stdafx.h
Спасибо, это будет полезно.
B>Напишите, пожалуйста, точные аргументы cl.exe в случае с BUILD и с VS. В ближайшее время посмотреть самому времени нет.
Попробую сам поиграться, потом отпишусь.
A>>При запуске вываливает "There is no source code available for the current location.", если нажать ОК и Ф5 всё работает корректно. B>Это нормально, связано с тем, что при подключении к сессии WinDbg ставит breakpoint и отличить его от прямого вызова DbgBreakPoint() из программы нереально. Нажимайте F5, все будет работать.
ОК.
A>>Не освобождается пайп(помогает только выгрузка ВС). B>И не должен. B>... B>... B>сделайте attach к несуществующему COM-порту; сессия сбросится.
Понял.
B>По части выгрузки, посмотрите еще логи DDKMonitor на виртуальной машине. Может быть, там какая проблема? Запрос от хост-машины доходит?
Лог в ВМ:
Trying to receive %SystemRoot%\System32\Drivers\PassThru.sys from 192.168.2.1...
Opened TCP port 1032 for incoming file.
Incoming TCP connection from 192.168.2.1...
File successfully received.
Preparing to run command line: Z:\Projects\PassThru\Bin\_install.cmd
Running command line: Z:\Projects\PassThru\Bin\_install.cmd
Command "Z:\Projects\PassThru\Bin\_install.cmd" exited with code 0 (0x0)
Ping packet from 192.168.2.1...
Trying to receive %SystemRoot%\System32\Drivers\PassThru.sys from 192.168.2.1...
Opened TCP port 1033 for incoming file.
Incoming TCP connection from 192.168.2.1...
File successfully received.
Preparing to run command line: Z:\Projects\PassThru\Bin\_install.cmd
Running command line: Z:\Projects\PassThru\Bin\_install.cmd
Command "Z:\Projects\PassThru\Bin\_install.cmd" exited with code 0 (0x0)
VisualDDK после остановки и повторного запуска:
VisualDDK Launcher: PassThru.sys is already unloaded. Skipping stop sequence.(Драйвер остался в памяти)
------- Detached from a remote kernel -------
------- Attached to a remote kernel -------
VisualDDK Launcher: Trying to launch PassThru.sys
Successfully transferred e:\Projects\PassThru\Bin\x86\ATS.sys to 192.168.2.2 (1333K/s)...
VisualDDK Launcher: Successfully launched PassThru.sys
...
...
Здравствуйте, airmaxx, Вы писали:
A>Обнаружил, что не отображаются строки в стуктурах UNICODE_STRING. Т.е. адрес есть и всё. A>Например, на скриншоте http://visualddk.sysprogs.org/screenshots/watch.gif отчётливо видно что есть. A>Пробовал в WinDBG есть, а в студии нет . Куда глянуть?
Это связано с тем, что в C нет wchar_t. Проще всего собрать все компилятором C++ со встроенным wchar_t. В будущих версиях буду медленно переходить на полностью независимый от WinDbg DIA-движок для отображения переменных, поправлю. В текущей версии движка это довольно накладно (WinDbg не показывает строку при просмотре поля Buffer структуры UNICODE_STRING, а VisualDDK основан на нативном отображении обычных C-шных строк).
A>Лог в ВМ: A>VisualDDK Launcher: PassThru.sys is already unloaded. Skipping stop sequence.(Драйвер остался в памяти) A>------- Detached from a remote kernel -------
Если lm выполнить перед выгрузкой, ваш драйвер там будет? Может быть, он под другим именем отображается как-то? Имя SYS-файла идентично на хост- и виртуальной машинах? Что скажет студия в окне Output, если там включить сообщения о загрузке модулей (перед запуском драйвера)?
Re: Покритикуйте расширение к VStudio, заменяющее WinDbg
От:
Аноним
Дата:
12.06.09 10:58
Оценка:
Здравствуйте, bazis1, Вы писали:
B>Как всегда, "дошли руки" написать расширение к Visual Studio 2005/2008, позволяющее создавать проекты драйверов прямо из IDE, собирать и отлаживать их оттуда же. А заодно, автоматически отправлять файл драйвера на отладочную машину и запускать там заданную команду. B>Сайт проекта тут: http://visualddk.sysprogs.org/ B>Quickstart guide здесь: http://visualddk.sysprogs.org/quickstart
B>Проект получился достаточно большим, поэтому будут интересны багрепорты и пожелания по части новых фич.
B>Да, расширение бесплатное и выложено с исходниками.
Я сам не пробовал, так как нет сейчас нужды, ну совершенно. Но наверняка отличная вешь, просто уверен! Давно было пора сделать.
Но так как есть большое любопытство, и вообще бы некоторым товарищам ТУТ было бы полезно продемонстрировать как важно бывает быть трудолюбивыми. — расскажите, насколько велико число скачиваний. И какие меры Вы принимаете для раскрутки продукта. Просто как то давно было много скептиков. И может можно будет посоветовать Вам как еще увеличить "известность" вашей замечательной программы.
Здравствуйте, bazis1, Вы писали:
pva>>Причем Path можно проверять "по-умолчанию". B>По-умолчанию проверяется (на x64 "умолчания" разные для 32- и 64-битных программ).
По умолчанию у меня ничего не нашло. WinXP Pro SP3 En, WDK + Debugging Tools
B>Если хочется задать parameters, для этого есть опция Custom.
Так и сделал, но пришлось добавить .cmd файл в систему, что не очень хорошо.
По GUI. При закрытии гостя в мониторе остается строчка со статистикой, которую нет способа очистить.
Здравствуйте, pva, Вы писали:
pva>Здравствуйте, bazis1, Вы писали:
pva>>>Причем Path можно проверять "по-умолчанию". B>>По-умолчанию проверяется (на x64 "умолчания" разные для 32- и 64-битных программ). pva>По умолчанию у меня ничего не нашло. WinXP Pro SP3 En, WDK + Debugging Tools
Если не в program files, то без вариантов, так как WinDbg себя в реестре нигде не прописывает. Разве что, в uninstall, может быть.
Здравствуйте, bazis1, Вы писали:
B>Что плохого в User-интерфейсе на C#? Чем он хуже в 3 раза более длинной реализации на C++/WTL? Учитывая, что большинство графических вещей в студии написаны на .NET и подключение окон и панелей через COM будет медленнее за счет маршаллинга? Реально назовите хоть один недостаток, пожалуйста.
я не против того на чем написана студия
но имхо уважаю токо проекты на C/C++ — да это мое имхо
зы
паскаль во всех его проявлениях а так же не люблю (это для тех кто задает лишние вопросы)
B>Ключевой компонент (DDKDebugger), наиболее критичный к производительности, написан на C++ и узким местом не является (узкое место, как и в случае с WinDbg — в скорости соединения отладчика с отлаживаемой машиной).
хорошо
никто не спорит
B>Или Вы фанат написания всего на чистом C?
да я фанат C/C++
и шарп в любом его проявлении просто ненавижу
>x64
дети васма живут на васме
>byleas
большая разница
когда майкрософт всеже допишет свою шарп ось
пересядете на нее и поймете
это как пример
зы
всего лиш высказал свое имхо
вы вольны его игнорировать
А>зы А>всего лиш высказал свое имхо А>вы вольны его игнорировать
Я правильно понял ваше ИМХО, что лучше менее функциональный проект через полгода на C, чем более функциональный и не тормозящий проект сейчас, но на C#? Если честно, не вижу логики. Что с того, что некоторые (да пусть хоть все остальные) проекты на C# тормозят, если конкретно этот работает нормально?
Re[2]: Покритикуйте расширение к VStudio, заменяющее WinDbg
Здравствуйте, Аноним, Вы писали:
А>Но так как есть большое любопытство, и вообще бы некоторым товарищам ТУТ было бы полезно продемонстрировать как важно бывает быть трудолюбивыми. — расскажите, насколько велико число скачиваний. И какие меры Вы принимаете для раскрутки продукта. Просто как то давно было много скептиков. И может можно будет посоветовать Вам как еще увеличить "известность" вашей замечательной программы.
Да вопрос не в трудолюбии, а в оптимизации порядком задолбавшей в свое время рутины... А так, гугл в помощь...
Re[3]: Покритикуйте расширение к VStudio, заменяющее WinDbg
От:
Аноним
Дата:
14.06.09 10:50
Оценка:
Здравствуйте, bazis1, Вы писали:
B>Здравствуйте, Аноним, Вы писали:
А>>Но так как есть большое любопытство, и вообще бы некоторым товарищам ТУТ было бы полезно продемонстрировать как важно бывает быть трудолюбивыми. — расскажите, насколько велико число скачиваний. И какие меры Вы принимаете для раскрутки продукта. Просто как то давно было много скептиков. И может можно будет посоветовать Вам как еще увеличить "известность" вашей замечательной программы. B>Да вопрос не в трудолюбии, а в оптимизации порядком задолбавшей в свое время рутины... А так, гугл в помощь...
Да, нет Насколько мне известно, "ваша" идея, вот ровно один в один, была начата некоторыми известными товарищами из этого форума, пару-тройку лет назад. Начата и так и не закончена, видимо из-за недостатка трудолюбия и усердия. Так что простите если я Вас несколько разочаровал — в том что эта "ваша идея" нова и оригинальна. Так что именно поэтому я и интересуюсь — насколько успешно у вас идет скачивание. А Вы что подумали? Да, всё придумали до нас, но важна не идея а — реализация, упорство, вера в успех, и трудолюбие. Но в _то_ время эта идея казалась очень смелой, ну может и по этому не все тогда верили в успех. Но как пример, того — что надо верить "умным" людям, она очень хороша. Успехов.
Re[4]: Покритикуйте расширение к VStudio, заменяющее WinDbg
Здравствуйте, Аноним, Вы писали:
А>Да, нет Насколько мне известно, "ваша" идея, вот ровно один в один, была начата некоторыми известными товарищами из этого форума, пару-тройку лет назад. Начата и так и не закончена, видимо из-за недостатка трудолюбия и усердия. Так что простите если я Вас несколько разочаровал — в том что эта "ваша идея" нова и оригинальна. Так что именно поэтому я и интересуюсь — насколько успешно у вас идет скачивание. А Вы что подумали? Да, всё придумали до нас, но важна не идея а — реализация, упорство, вера в успех, и трудолюбие. Но в _то_ время эта идея казалась очень смелой, ну может и по этому не все тогда верили в успех. Но как пример, того — что надо верить "умным" людям, она очень хороша. Успехов.
Идее этой, думаю, столько же лет, сколько Visual Studio и WinDbg. У меня не более чем "руки дошли". И дело тут, повторюсь, не в трудолюбии, а в нормальной архитектуре и планировании времени, не более того. Без оных, Ваше любимое трудолюбие будет лишь плодить строки и килобайты, ничуть не приближая релиз нормальной версии. А скачивание идёт, куда ж оно денется...
P.S. А почему анонимно, раз Вы тут такой старожил?
Re[5]: Покритикуйте расширение к VStudio, заменяющее WinDbg
От:
Аноним
Дата:
14.06.09 15:56
Оценка:
Здравствуйте, bazis1, Вы писали:
B>Здравствуйте, Аноним, Вы писали:
А>>Да, нет Насколько мне известно, "ваша" идея, вот ровно один в один, была начата некоторыми известными товарищами из этого форума, пару-тройку лет назад. Начата и так и не закончена, видимо из-за недостатка трудолюбия и усердия. Так что простите если я Вас несколько разочаровал — в том что эта "ваша идея" нова и оригинальна. Так что именно поэтому я и интересуюсь — насколько успешно у вас идет скачивание. А Вы что подумали? Да, всё придумали до нас, но важна не идея а — реализация, упорство, вера в успех, и трудолюбие. Но в _то_ время эта идея казалась очень смелой, ну может и по этому не все тогда верили в успех. Но как пример, того — что надо верить "умным" людям, она очень хороша. Успехов.
B>Идее этой, думаю, столько же лет, сколько Visual Studio и WinDbg. У меня не более чем "руки дошли". И дело тут, повторюсь, не в трудолюбии, а в нормальной архитектуре и планировании времени, не более того. Без оных, Ваше любимое трудолюбие будет лишь плодить строки и килобайты, ничуть не приближая релиз нормальной версии. А скачивание идёт, куда ж оно денется... B>P.S. А почему анонимно, раз Вы тут такой старожил?
Гадать, сколько лет идее, глупо — Но сообственно — о чем речь? На идеи патента нет
Уточнил, за ради любопытства — идее больше трех лет. Мое "любимое" трудолюбие, как Вы выразились — означает в частности то что если бы тогда идею довели бы до конца, то у тех господ программистов был бы продукт, уже причем пару лет назад. И вот и все. Не бросили бы его, а доделали. А бросили его по причине лени. ИМХО. Но не суть.
Ваше прямолинейное трактование трудолюбия узко. Трудолюбие это комплексное понятие — хочется/нехочется, сильная мотивация. Но давайте пересанем спорить о чепухе, а тот мне начинает казаться, что Вы огорчились, из за моего поста. Плюньте, считайте что этот пост для тех "старожилов", как Вы выразились.
Аноним? Да просто пароль забыл Да и не надо ужо тытысь нонче.
А идея четыре года назад 2005 год. Была чесьма свежа, и переспективна, еще небыло даже 2008 студии, и у некоторых тогда помнится были совмнения — а вдруг сделают в 2008. Но какая разница? Вы реализивали идею, в "яви" — молодец. Жаль только что само айти уже не то и будет, если можно так выразиться еще более не тем. Власть в МС-е "взяли" индусы — теперь им уже не продастся совсем. Да и кризис. Одним словом, все что не далется все делается к лучшему.
Еще раз успехов Вам, за сим прощаюсь.
Re[6]: Покритикуйте расширение к VStudio, заменяющее WinDbg
Прошу прощения за долгий перерыв. Возвращаюсь к теме.
B>Это связано с тем, что в C нет wchar_t. Проще всего собрать все компилятором C++ со встроенным wchar_t. В будущих версиях буду медленно переходить на полностью независимый от WinDbg DIA-движок для отображения переменных, поправлю. В текущей версии движка это довольно накладно (WinDbg не показывает строку при просмотре поля Buffer структуры UNICODE_STRING, а VisualDDK основан на нативном отображении обычных C-шных строк).
Ок, пока обойдусь без строк, позже переведу.
B>Если lm выполнить перед выгрузкой, ваш драйвер там будет?
...
f0873000 f087f000 PassThru (private pdb symbols) E:\Projects\ATS\Bin\x86\PassThru.pdb
...
B>Имя SYS-файла идентично на хост- и виртуальной машинах?
Имя идентично.
B>Что скажет студия в окне Output, если там включить сообщения о загрузке модулей (перед запуском драйвера)?
Loaded PassThru.sys at 0xF0873000
PassThru: Init()
Перечитал уже несколько раз QuickStart, и вообще все что смог найти по этой теме, сам драйвера никогда не писал, в этом направление полный чайник.
Создал проект, но никак не получается его запустить на отладку. Вроде как все поставилось, тестовая винда грузится, WinDbg запускается, DDKLaunchMonitor показывает что что-то идет, но при попыке запука отладки я получаю: "Attaching the DDK debugger to process '[0] System' on machine 'Имя моей машины' failed."
Обязательно ставить DDK и WDK? У меня сейчас есть только WDK который шел с msdn подпиской?
установка прошла успешно без указания пути к DDK.
Моя машина: Windows XP x64 Sp2, тестовая система на VirtualBox Windows XP Sp3
Как устанавливал: поставил WinDbg, поставил VirtualBox, поставил туда WinXP, заменил в VirtualBox VBoxDD.dll, скопировал на тестовую систему в system32\drivers kdvm.dll и kdpatch.sys, в boot.ini добавил /debug /debugport=VM.
Как запускаю: Запускаю VirtualBox, запускаю из него систему, дальше она ожидает пока я не запущу vmmon64, запускаю vmmon64 выбираю в списке свою систему, жму Run Debugger, запускается WinDbg, и тестовая система продолжает загрузку. Запускаю VisualStudio создаю проект VisualDDK, Дальше открываю Driver Launch Settings, выбираю:
VMWare Virtual Machine — WinXP
Target machine hostname or IP — 192.168.56.101(Ip адрес сетевой карты в тестовой системе)
Driver file path on the target machine: %SystemRoot%\System32\Drivers\test.sys
Enable a PnP device with Hardware ID — \root\mydriver
Disable a PnP device with hardware ID — \root\mydriver
Далее жму Launch, и вылетает ошибка: Attaching the DDK debugger to process '[0] System' on machine 'Имя моей машины' failed.