Перейти к содержанию
    

Мышка_Норушка

Новичок
  • Постов

    3
  • Зарегистрирован

  • Посещение

Репутация

1 Обычный

Информация о Мышка_Норушка

  • Звание
    Участник
    Участник

Посетители профиля

Блок последних пользователей отключён и не показывается другим пользователям.

  1. Исключений в отладчике нет скорее всего, перед тем как что-то читать из памяти он всегда вызывает специализированную функцию API (забыл название) на проверку доступен ли участок, если нет, отладчик дальше не лезет, никаких исключений, все в рамках пользовательского API. Я бы упрятал обращения к mmio в отдельные процедуры с локальным контекстом, доступным только внутри них, т.е. типа ReadBAR(), WriteBAR(), все поинтеры внутри. Отладчиком внутрь не лезть, содержимое mmio если надо видеть только как результат подобных функций.
  2. Отладчики пишутся с учетом того что всё, за чем можно наблюдать находится в памяти процесса и это можно читать, а тут херась, какой-то из указателей в окне переменных нацелен на MMIO кусок, которую оказывается нельзя трогать даж на чтение. Варианты 1) менять отладчик 2) пропачить сущ. отладчик (я про GDB) 3) при отладке не спускатся туда, где обращение к mmio 3) где-то ошибка в вашем коде, вы думаете что отладчик пишет в BAR, но пишет что-то другое или вообще ошибка в реализации PCI шины и т.п. p.s. Как-то копался в виндовом usb3 драйвере, содержимое mmio выводил в отдельное окно, с железом ничего не происходило, так как на чтение BAR такая железка никак не реагирует и не должна
  3. 1) На память приходят физические адреса, каким образом вы потом определите в какие логические адреса процессор что складывал ? В режиме без трансляций адресов процессор работает только на этапе загрузки бут секторов. Если не ошибаюсь, с памятью программ процессор вообще не работает напрямую, а через транзакции из кэша, случайные прямые обращения к памяти бывают только для специально некешируемых регионов типа памяти, выделенной для DMA 2) на последних интеловских платформах есть аппаратный отладчик в южнике через usb3.0 кабель, через него можно останавливать основной процессор еще на этапе bios, можно снимать дампы памяти, но все это работает безумно медленно
×
×
  • Создать...