1. Если вы только начинаете программировать на ассемблере и не знаете с чего начать, тогда попробуйте среду разработки ASM Visual IDE
    (c) на правах рекламы
    Скрыть объявление

Конец SoftICE и Syser (технологии отображения на экран)

Тема в разделе "WASM.NT.KERNEL", создана пользователем PROFi, 30 июн 2007.

  1. PROFi

    PROFi New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2003
    Сообщения:
    690
    С приходом DirectX 10, и новыми видеокартами (на GeForce 8800 проверено точно) отладчики не смогут корректно выводит информацию на экран. И вот почему:
    Раньше физическая память видеоадаптера отображалась линейно на экран и при знании адреса начала отображания на экнан, и шага от одной строки к следующей, была возможность рисовать на экране из режима ядра как вздумается (из режима пользователя такая возможность будет существовать по умолчанию). Вышеприведенные отладчики использую DirectDraw находили эти параметры и спокойно отображали информацию на экран (если не верите установите чистую WinXP без драйвера экрана, и потом установите SoftIce, тот тут же выдаст ошибку - интерфейс DirectDraw не найден). А на текущий момент времени физическая видеопамять перестала быть линейной, и даже при знании указанных выше параметров вывести на экран что-либо будет невозможно. Т.о. либо будет необходимость писать видеодрайвер siwvid.sys для каждой видеокарточки (а тех. характеристики никто так просто не даст), либо использовать интерфейс к уже имеющимся драйверам (но кто гарантирует, что уровень IRQL это позволит), либо прекратить разработку отладчика, что собственно и произошло.
     
  2. UyTvGauG

    UyTvGauG New Member

    Публикаций:
    0
    Регистрация:
    17 май 2007
    Сообщения:
    49
    Айсу несомненно конец, а вот сисер имхо будет рулить. Нелинейная видеопамять - не такая уж непреодолимая проблема. Я вижу ее решение в создании карты отображения пикселей на ячейки памяти.
    Для создания такой карты будем зажигать из юзермода через DirectDraw по очереди все пиксели на экране, после чего сканируя видеопамять будем определять положение в ней этого пикселя и его формат. Созданая после такого сканирования карта может быть затем использована при отображении произвольной информации на экран.
     
  3. PROFi

    PROFi New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2003
    Сообщения:
    690
    UyTvGauG

    Для создания такой карты будем зажигать из юзермода через DirectDraw по очереди все пиксели на экране, после чего сканируя видеопамять будем определять положение в ней этого пикселя и его формат.
    Ха.. сейчас же.... Созданая после такого сканирования карта может быть затем использована Только между Lock и Unlock, а раньше - только взять адрес ddsd.lpSurface, найти его физический и все, но теперь как только выполнили Unlock все опять перемешанно. Причем аналог Lock из режима ядра вызвать то можно, но вот в 3х мерных сценах завершится ли он успешно и не разрушит ли экран, и не нарушит ли работу программы это боольшой вопрос...
     
  4. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.407
    Адрес:
    Fryazino
    PROFi
    А с чего ты взял, что сейчас отоброжение идет не линейно?
     
  5. PROFi

    PROFi New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2003
    Сообщения:
    690
    Pavia

    У меня GeForce 8800. И при заполнении с начального адреса вывода информации на экран (не путать с начальным адресом видеопамяти) допустим двойным словом 00FFFFFFh экран вместо заполнения белым цветом целиком, заполняется несколькими разного размера прямоугольниками, (тот же драйвер, но на старой видюхе заполняет экран целиком). SoftIce (если конечно взять siwvid.sys из пропатченой версии 4.05 (остальные siwvid.sys не работают)) вылетает в 2х маленьких квадратиках вверху экрана - причина указана в начале темы.
     
  6. Nouzui

    Nouzui New Member

    Публикаций:
    0
    Регистрация:
    17 ноя 2006
    Сообщения:
    856
    PROFi
    что такое Lock и Unlock?
     
  7. PROFi

    PROFi New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2003
    Сообщения:
    690
    Nouzui

    что такое Lock и Unlock?

    Это методы интерфейса ISurface, который из DirectDraw.
     
  8. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.407
    Адрес:
    Fryazino
    PROFi
    Странно как-то, такого не должно быть. Я думаю, что где-то ошибка.
    Вообще-то давно уже известа, что есть технологи GART. Настраивает отоброжения строниц для видео карты. Так что вполне возможно не линейное отоброжение.
     
  9. Nouzui

    Nouzui New Member

    Публикаций:
    0
    Регистрация:
    17 ноя 2006
    Сообщения:
    856
    PROFi
    а почему созданая после такого сканирования карта может быть затем использована только между Lock и Unlock?
     
  10. PROFi

    PROFi New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2003
    Сообщения:
    690
    Pavia

    Впоне возможно не линейное отображение, только вот чтобы процессор видеокарты (а мне представляется имеено такая ситуация) сам мепировал видеопамять - это уже реалии сегодняшнего дня. Что касается Lock и Unlock, то между этими функциями в режиме пользователя память видеокарты выстраивается в линейный режим и все работает. Т.е. я написал 1 приложение режима пользователя которое после Lock зависает (предварительно закрасив часть экрана), Так вот при загрузке драйвера вся видеопамять экрана линейна в этом случае и все работает на ура, а вот если не запускать приложение пользователя - то ситуация описанная выше ...
     
  11. agent007

    agent007 New Member

    Публикаций:
    0
    Регистрация:
    3 фев 2007
    Сообщения:
    166
    ) а кто отменял виртуальные машины... под ними отладчики живы :)
     
  12. ntcdm

    ntcdm New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2007
    Сообщения:
    247
    А что мешает на время отладки переводить экран в текстовый режим да и все? зачем этот гемор с графическим режимом? Все-равно если софтайс запущен, то GUI отрубается..
     
  13. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Ну софтайс текстовый, хрен с ним. Мб переделают. А сайсер-то графический..
     
  14. spa

    spa Active Member

    Публикаций:
    0
    Регистрация:
    9 мар 2005
    Сообщения:
    2.240
    Мне обьясните пожалуйста, поподробней, зачем и ко перестал линейно отображать линейно адрес на экран, неужели это както ускоряет работу o_O
     
  15. Guest

    Guest Guest

    Публикаций:
    0
    Юзаем старые карточки и все. Зачем брать 8800 для отладки с ее размерами и энергопотреблением, только для игр. Берем ту же GF4MX или включаем встроенную в мат. плату видяху. Будет спрос будут и производители. Сколько еще лет должно пройти до полного исчезновения обычных карт GF 6-7? Да я еще GF4 встречаю. Так что Syser'у и тем более SICE'у далеко не конец.
     
  16. ftre

    ftre New Member

    Публикаций:
    0
    Регистрация:
    30 июн 2007
    Сообщения:
    34
    Айсу давно конец, просто многие не хотят это признать. Если надо отлаживать драйвера под win2003-vista, то кроме Syser альтернатив нет. (про WinDbg я не говорю потому, что это не отладчик, а скотское уе..ще).
     
  17. _BC_

    _BC_ БЦ

    Публикаций:
    0
    Регистрация:
    20 янв 2005
    Сообщения:
    759
    что-то мне кажется, что это всё, скажем так, нонсенс. Никуда линейный frame buffer не денется, слишком много вещей на нем было завязано. Скорее всего в geforce 8ххх просто расширили возможности 2D-ускорения (типа аппаратного графического курсора, который порой так своим видом поверх окна айса зае#%вает), и как следствие появилась несовместимость с этими навыми фичами, возможно как раз под тот самый Aero. Если так, то это не проблема, достаточно лишь выставить в винде соответствующую граф.моду, чтобы эти навороты отключить.
    Весьма вероятно, что для решения проблемы достаточно понизить ползунок "Аппаратное ускорение" в настройках экрана. Там afair даже перезагружаться не надо.

    Даже если что-то подобное добавили -- едва ли это станет большим препятствием. Будет либо известно, как это гoвно отключить, либо как с ним работать.
     
  18. spa

    spa Active Member

    Публикаций:
    0
    Регистрация:
    9 мар 2005
    Сообщения:
    2.240
    im1111
    У меня она и стоит :dntknw:

    Так кто вставляет "палки в колеса"? Я так понял это просто из-за развития видиокарт и ни кто специально не мешает работать с графкой из Ring0.
     
  19. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.298
    Адрес:
    Ukraine
    PROFi
    Не могут или не смогут? Кто-то проверял это?
     
  20. PROFi

    PROFi New Member

    Публикаций:
    0
    Регистрация:
    13 июл 2003
    Сообщения:
    690
    IceStudent

    Проверял под GeForce 8800 (SoftIce не виснет только если взять siwvid.sys из версии 4.05 пропатченой) на экран в графическом режиме инфа выдается в виде 2х маленьких прямоугольников :) ест-но инфа не разборчива. Т.о. мною было поставленно 2 вопроса:
    1) Может это глюк SoftIce? Но почему тогда и мой отладчик выводит информацию таким же образом, а Syser вообще на экран ничего не выводит.
    2) А что если промепировать всю физическую память видеоадаптера и заполнить ее допустим 00FFFFFF, то по идее весь эран должен быть белым, но не тут-то было, белыми оказались лишь несколько различного размера прямоугольника на экране.
    Тогда я взял свою старую програмку под DirectDraw, которая создает поверхность на весь экран и напрямую ее модифицирует и поставив заглушку в виде stop: jmp stop после Lock поверхности (у меня 2х ядерник) я запустил свой отладчик и о чудо вместо прямоугольников я получил картинку. Т.о. был сделан вывод - видеопамять в обычном режиме нелинейна и скорее всего ее мепированием занимается графический процессор, а линейный frame buffer существует только временно и после Unlock память опять нелинейна.

    _BC_
    Курсор здесь не причем, он между прочим почемуть в видеопамяти всегда распологается линейно. С аппаратной точки зрения все корректно.

    im1111

    если отлаживаешь современное 3D приложение то так поступить нельзя :)

    ntcdm

    Если перевести в тектовый режим, то вся 3D графика накроется.