Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Среда разработки для драйверов


Автор: warman 18.7.2009, 15:34
Здравствуйте. Вопрос таков: я тут решил занять написанием драйверов и совместить это занятие с изучением до конца Си. Дело в том, что Си я начал изучать в Linux'е (gcc), а вчера установил Win и не могу найти нормальную студию (читай компилятор) для Си. У меня имеется MS Visual Studio 2003.NET и Compuware DriverStudio 3.1 и всё. Что посоветуете для этих (изучение Си, написания дров) целей. Заранее признателен за ответы. 

Автор: W4FhLF 18.7.2009, 15:45
Юзай студию 2008 (можно Express), плюс скачай отдельно WinDDK (Windows Driver Development Kit), в нём есть компилер отдельно, но можно юзать студийный по умолчанию. 

Только причём тут изучение Си? При написании дров, тем более без опыта, подавляющую часть времени ты будешь проводить в отладчике и справочниках по венде. 

Автор: warman 18.7.2009, 16:20
Просто я хочу изучить Си для того что бы писать дрова "с нуля", поэтому мне нужен Си-компилятор.

P.S.
Да ещё - что там на счет Compuware DriverStudio 3.1 ?

Автор: W4FhLF 18.7.2009, 16:59
Забудь про это старьё. 

Автор: Andrew121 18.7.2009, 22:37
Цитата(W4FhLF @  18.7.2009,  15:45 Найти цитируемый пост)
Юзай студию 2008 (можно Express), плюс скачай отдельно WinDDK

Mingw - Respect!
Все в одном! Поддерживает новейшие расширения С99.
http://downloads.sourceforge.net/sourceforge/mingw/gcc-full-4.4.0-mingw32-bin-2.tar.lzma?use_mirror=dfn

Автор: W4FhLF 19.7.2009, 05:58
Andrew121, ты дрова им собирал?

Автор: andrew_121 19.7.2009, 06:50
W4FhLF, Я нет. А http://www.reactos.org/ru/index.html Да! При том все драйвера в нем, не просто заглушки и редиректы.

Автор: W4FhLF 19.7.2009, 07:09
А дрова под винду здесь причём?

Автор: andrew_121 19.7.2009, 08:16
Цитата(W4FhLF @  19.7.2009,  07:09 Найти цитируемый пост)
А дрова под винду здесь причём? 

smile

http://www.reactos.org/ru/about_userfaq.html

Автор: W4FhLF 19.7.2009, 08:51
andrew_121, смайлики и ссылки на RTFM по ReactOS совсем не помогут тебе скрыть отсутствие опыта и некомпетентность в данном вопросе. Поэтому не вводи человека в заблуждение. 

Автор: andrew_121 19.7.2009, 09:29
W4FhLF, Прежде, установи драйвера скомпиленые для ReactOS на виндавз. И убедись в том, что они работают. И скомпилены при помощи gcc.

Цитата(W4FhLF @  19.7.2009,  08:51 Найти цитируемый пост)
отсутствие опыта и некомпетентность в данном вопросе

Я этого не скрываю.

Автор: W4FhLF 19.7.2009, 09:45
mingw -- это лишний геморой, частенько приходится править хедеры, define'ы, pragma'ы, стандартные примеры далеко не сразу собираются. Ну хочется возиться с напильником -- it's up to you. 

Автор: andrew_121 19.7.2009, 09:54
Цитата(W4FhLF @  19.7.2009,  09:45 Найти цитируемый пост)
mingw -- это лишний геморой, частенько приходится править хедеры, define'ы, pragma'ы

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

Автор: jonie 19.7.2009, 11:09
andrew_121 тру программисты не используют SDK, да. Имея бесплатный SDK с бесплатный неплохим компилятором с бесплатной средой разработки, оно, конечно глупо это все использовать, да?)

Автор: andrew_121 19.7.2009, 11:26
jonie, Ничего не понял...

Автор: Riply 19.7.2009, 12:20
Цитата(W4FhLF @  18.7.2009,  15:45 Найти цитируемый пост)
При написании дров, тем более без опыта, подавляющую часть времени ты будешь проводить в отладчике и справочниках по венде. 


Драйвера можно запускать в режиме отладки ?
А как это выглядит ?

P.S.
 Я просто не в курсе.

Автор: GremlinProg 19.7.2009, 12:36
Цитата(Riply @  19.7.2009,  14:20 Найти цитируемый пост)
Драйвера можно запускать в режиме отладки ?А как это выглядит ?

тут скорее всего имелось ввиду нечто вроде DBGVIEW

Автор: W4FhLF 19.7.2009, 12:36
Ну как... Компилируется драйвер с debug info и соответствующим pdb. Предварительно ставится breakpoint где-нибудь в DriverEntry, запускается WinDBG, загружается дров, срабатывает бряк, вываливаемся в WinDBG и там уже хоть трейс по исходнику. 

Автор: Riply 19.7.2009, 12:44
Цитата(W4FhLF @  19.7.2009,  12:36 Найти цитируемый пост)
там уже хоть трейс по исходнику


Просто фантастика какая-то smile
В голове не укладывается.
Допустим бряк в DriverEntry. Это что же получается, что у нас под отладкой System ?

Автор: W4FhLF 19.7.2009, 12:48
Это я говорил с учётом того, что отладка удалённая smile Т.е. дров загружается на удалённой тачке (частный случай -- под виртуальная машиной), а отладчик у нас локально. Ну когда срабатывает система там целиком "встаёт". 

Автор: Riply 19.7.2009, 12:54
Цитата(W4FhLF @  19.7.2009,  12:48 Найти цитируемый пост)
Это я говорил с учётом того, что отладка удалённая  Т.е. дров загружается на удалённой тачке (частный случай -- под виртуальная машиной), а отладчик у нас локально. Ну когда срабатывает система там целиком "встаёт".  


"Ааа  -  сказали мы с Пером Иванычем"  (с)    smile

Теперь понятно. Спасибо smile

Автор: GremlinProg 19.7.2009, 12:56
Цитата(W4FhLF @  19.7.2009,  14:48 Найти цитируемый пост)
Это я говорил с учётом того, что отладка удалённая

ну вот, а я уже собирался ругаться )
очень уместное замечание, кстати, чтобы особенно не питать иллюзий

Автор: korbian 21.7.2009, 09:26
Цитата(W4FhLF @  19.7.2009,  13:48 Найти цитируемый пост)
Это я говорил с учётом того, что отладка удалённая

простите, а какая принципиально разница между удаленной и локальной отладкой? 

Автор: DrHex 21.7.2009, 11:14
Для изучения написание дройверов лучше всего использовать DKK.
Отладка может быть и локальной(Soft-ice, Syser).


Цитата

простите, а какая принципиально разница между удаленной и локальной отладкой?  

Просто удаленная машина стопарится для отладки, вообщем когда отлажуются драва то вся машина где работает драйвер останавлимается на бряках(то и есть все процессы, кроме отладчика или сервера отладчика), то и есть удаленная отладка не удобна тем что нужно иметь две машины, но зато при отладки можно сидеть в аське)))

Автор: GremlinProg 21.7.2009, 12:29
Цитата(DrHex @  21.7.2009,  13:14 Найти цитируемый пост)
Отладка может быть и локальной(Soft-ice, Syser).

интересный опыт: http://forum.shelek.ru/index.php/topic,17429.0.html
кто желает подергать за ниточки breakpoint'ов, готовьтесь вот к такому общению, если следите за обновлением железа

мое мнение: подопытная машина в каком бы-то ни было виде для отладки необходима

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)