Достаточно давно стал писать свой отладчик. Сначала под DOS потом win98(все работало). Потом дело немного остановилось. Не так давно решил снова все дописать. Перевел проект под XP. Так как писалось все под себя, то не было необходимости делать разные примочки, типа динамического определения frame buffers(проще было забить в исходник и скомпилировать),отладочные таблицы(т.к. он нужен был для ковыряния в чужом софте) и т.д. Сейчас хочу сделать более менее законченный проект. Собствено есть уже достаточно рабочий отладчик которым можно отлаживать(что я делал)Ж): Что там есть: Интерфейс: многоконный интерфейс аля turbo debuger с поддержкой мыши. Полный asm/diasm 16/32 fpu/mmx c анализатором(подсветка условных переходов,вычесление адреса и т.д.) собствено сам трасировщик с поддежркой hard/soft breakpoint для кода ,данных, портов с условиями, защита dr регистров, обратная трасировка,авто трасировка и много чего еще. Свой драйвер клавы и мыши. Теперь о главном. Т.к. в основном все писалось под 98 и под один процессор, то при переходе под XP и SMP надо переписовать функции взаимодействия с системой в области получения раздых отладочных собщений и т.п. Информации по этому делу немного. Надо писать под APIC и самое главное видеосистема. Недавно пересел на двуядерник и geforce 8800 и начались проблемы. Если с APIC я в принципе уже начал разбиратсья то с видео проблемы. Большая просьба людей ковырявших в этом направление помочь и/или принять участие в проекте(ето сильно сказано пока). И вообще приглашаются все кто понял о чем я написал и может/есть желание помочь/принять участие. Немного о самом отладчики. Одна из основных идей как можно меньше взаимодействовать с системой(толко на этапе иницилизации) (свой менеджер памяти , свой драйвер клавы и мыши,таймер ,прямой перехват прерываний) получать от системы только отладочные и информационые сообщения. Под 98 я мог начинать отлаживать еще до загрузки win и практически сразу после перехода windows в защищенный режим (как softice). Что планируется(основное): сделать его opensource возможность писать плугины(сделать свой API для интерфейса и системных функций типа asm/diasm, информации о команде, т.д. насколько фантазии хватит).Тоесть можно будет написать какой нибудь хитрый трасировщик стека, unpacker и т.д. и он будет частью отладчика. сделать его 64 битным Сейчас основная проблема это видео под geforce 8. Текущая версия в прикрепленном файле. Ограничения : работает только на одном ядре,без APIC. Мышь и клава только PS/2. Вручную надо прописать начало frame buffer и разрешение экрана, глубина цвета).Естествено не работает под GF 8* тестировалось на althonXP/RADEON9600 , на другом может и не работать. Т.к. переходная версия перехватываются только int1,int3, irq0,irq1,irq12 Для инсталяции надо создать папку "C:\VD" туда поместить 'VDFONT.bin','vidinfo.bin' Отредактировать vidinfo.bin Формат бинарный offset 0 физический адрес frame buffer DWORD offset 4 ширина экрана в пикселях DWORD offset 8 высота экрана в пикселях DWORD offset 12 байт на пиксел DWORD Через добавление оборудование добавить dev000.inf. В системных устройствах должен появиться Vdebuger(можно загружать и выгружать из диспетчера оборудования) Вызов отладчика ctrl+PrtScreen Желательно выключать Vdebuger до перезагрузки(может глючить при загрузке системы)
Safe mode-> удалить /system32/drivers/vd.sys сорци в сжатом состояние занимают около мегабайта. Если будет интерес к этой теме выложу где нибудь на внешнем ресурсе
VSG давай выкладывай быстрей! у нас тут тоже есть разработчик отладчика, но он "жадный медвежонок". твой будем совершенствовать
Great у человека ,написавшего работающий и не детский отладчик, наврятли с этим большие проблемы. А стиль - это на любителя VSG мы с нетерпением ждём
вот тут две темы где проблема GF 8800 обсуждалась http://wasm.ru/forum/viewtopic.php?id=23139 http://wasm.ru/forum/viewtopic.php?id=21398
Исходники. Для компиляции нужен MS VS 2003 + sp1,WIN DDK XP (2600), driver studio 3.2, build type -> free __http://rapidshare.de/files/39028297/VD.ZIP.html__ пароль : debuger Смотрите. Если хотите что дописать или переписать сообщите мне (vsg012собакаmail.ru) чтобы не получилось что пишем одно и тоже. В коде много осталось от DOS и win98. Сейчас это активно удаляется и может в течение месяца напишу краткий хелп(если надо будет). Еще вопрос кто нибудь запустил отладчик и если да, то как отзывы?
Маленькое окно с точками вместо вывода Интересует информация или по переводу видео памяти в линейный режим или структура этих tilt. Вообще любая инфа по выводу в видеопамять(frame buffer) без lock(). Сам сейчас копаю драйвера nvidia, если кто то делал это и чего нибудь достиг-просьба помочь.
VSG "Маленькое окно с точками вместо вывода" - это в SoftIce собственно и понятно - понятие FrameBuffer для серии 8* несколько отличается отклассического. Тут дело все в том что серия G 8* это полноценный миникомпьютер на видеоплате, со своим процессором и своим мепированием памяти. Копай или по-касперски "кури" DirectDraw и будет тебе счастье, но незабывай о IRQL на котором будет работать отлачик + мепирование win32k.sys не всегда есть, не говоря уж о видеодрайвере - тот который dll, а имено он тебе и будет нужен. Техническая спецификация карт 8й серии. Естестевенно в природе существует, но паблик нетути. На XP никто ничего недостиг, и даже не приблизился, на Vista - смотри syser - только одно ядро "/ONECPU" в boot.ini отключи - слишком синхронизация у них хромает и с ACPI работать ребята не умеют. PS: минимум - хорошее знание ядра Windows, тема крайне сложна, проще сказать набор BSODов обеспечен
Пришлось делать самому. Сейчас я могу фильтруя IOCTL к драйверу нормально выводить в directdraw и десктопе при любом IRQL. В direct3d пока нет. Осталось сделать динамическое определение режима и framebufer а. Дополнительная информация только приветствуется. Идея очень правильная , только не сам DirectDraw а как он взаимодействует с мини драйвером.
VSG Тут подстерегает одна неприятная вещь IOCTL от радеона и IOCTL от Gf ест-но не совпадают - потому изолированно Gf 8 можно поддерживать и твое высказываение Относится только к GF 8 да еще может быть к отдельной версии драйвера если IOCTL поменяют Универсально патчистя драйвер dll но через него не выведешь на высоких IRQL потому круг закрывается.
На счет nvidia и видеокарт серии 8xxx-9xxx ссылка: http://www.opentheblob.com/nvidia/index.php Глядишь,доживем до этого светлого дня..
PROFi Да у меня и нет задачи создать нечто глобальное и под все карты и OS. Т.к. исходники открытые каждый может переделать под что надо. TheDeath Посмотрим, что из этого получится. To ALL На sourceforge.net зарегистрировали проект, так что wellcome: https://sourceforge.net/projects/vdebuger/
VSG Хм. Если правильно разделить модульность отладчика, то по идее он может работать под любой видеокартой, тем более что видеокарт то осталось только nVidea да ATI - AMD. Проект хорошо, но архитектуру продумать нужно, чтобы потом не было "мучительно больно" ...