Список форумов shedevr.org.ru shedevr.org.ru
Группа перевода приставочных игр "ШЕДЕВР"
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Новый дебаггер.
На страницу Пред.  1, 2
 
Начать новую тему   Ответить на тему    Список форумов shedevr.org.ru -> Перевод для PSX
Предыдущая тема :: Следующая тема  
Автор Сообщение
HoRRoR
RRC2008
RRC2008


Зарегистрирован: 21.06.2006
Сообщения: 2341
Откуда: Ростов-на-Дону

СообщениеДобавлено: Чт Авг 20, 2009 7:03 pm    Заголовок сообщения: Ответить с цитатой

Ссылка на мой билд есть на пару постов выше. Мини-документацию сейчас состряпаю.
_________________
Работаю за деньги
KILL ALL HUMANS!!!!!111
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
HoRRoR
RRC2008
RRC2008


Зарегистрирован: 21.06.2006
Сообщения: 2341
Откуда: Ростов-на-Дону

СообщениеДобавлено: Чт Авг 20, 2009 7:37 pm    Заголовок сообщения: Ответить с цитатой

Вход в дебаггер - F11 во время запущенной игры.
В списке слева - собственно листинг кода в формате: Адрес Код Инструкция, где адрес - адрес инструкции, код - код инструкции (т.е. в обычном hex-представлении она выглядит так), инструкция - текстовое представление инструкции.
Чуть ниже - видимо, бряки на регистры DMA, я не разбирался.
Чуть правее - окно регистров и их значений в формате имя значение.
Справа большое окно - вьювер памяти. Тут всё аналогично с хекс-редакторами.
И несколько важных моментов:
- Все значения вводятся в hex-счислении. Т.е. вместо "10" следует вводить "A" и т.п.
- Адресное пространство RAM начинается с 0x80000000, хотя это и эквивалентно 0x00000000, если не ошибаюсь.
- Под "бряком" подразумевается точка останова.
Регистр PC содержит в себе адрес выполняемой инструкции.
Окошко справа внизу - лог.
Теперь остальной интерфейс:

    RegPatch - изменить значение регистра.
    Show / Jump - показать листинг кода по указанному адресу или же "перескочить" на него. Отличие в том, что первое ни на что не влияет, а второе изменяет значение PC, заставляя выполнять код начиная с указанного адреса. В поле автоматически содержится адрес последней выполненной инструкции. Таким образом можно отслеживать переходы.
    /\ / \/ / PgUp / PgDn - листать код вверх/вниз, тут всё понятно.
    MemPatch - изменить память по адресу Adress значением, размером 1, 2 или 4 байта (Byte, Word, DWord).
    D2H - просто калькурятор Dec->Hex.
    Run - запустить выполнение кода.
    Step - выполнить одну инструкцию.
    MemGoto / /\ / \/ / PUP / PDN - показать участок памяти по адресу / листать вверх / листать вниз / страницей выше / страницей ниже.
    LOAD_STATE / SAVE_STATE / Change - Загрузить / сохранить / сменить слот не выходя из дебаггера.
    Log memory reading - вести лог чтения из памяти в регистры.
    Pause mem reading - бряк на любые чтения с добавлением записи в лог.
    Dump / Load - сдампить память в файлы в папке dump (в папке эмулятора) / загрузить память из них.


А теперь самое интересное - бряки (breakpoints, точки останова).
Очень важно: бряк всегда срабатывает после выполнения инструкции, т.е. значение PC будет равно адресу следующей инструкции.

    Set / Clear - всегда и везде установить/снять бряк.
    Reg - установка бряка на значение регистра. Если указанный регистр будет равен указанному значению - игра остановится и всплывёт окно дебаггера.
    PC - установка бряка на значение PC, другими словами - на значение адреса исполняемой инструкции. Принцип тот же, как и во всех остальных случаях.
    MemRead - бряк на чтение по указанному адресу. Т.е. если информация по адресу грузится в какой-нибудь регистр - сработает бряк.
    Only if read - бряк MemRead сработает только в случае, если считывается указанное значение.
    Write x = y - если по адресу x записывается значение y.
    CD-ROM Read - бряк сработает, если будет произведено чтение с диска.
    On sector - бряк на чтение с диска сработает только если считывается указанный сектор. Узнать, к какому сектору принадлежит файл на диске - просто, надо открыть образ в каком-нибудь менеджере образов, где есть столбец LBA - он и есть номер сектора, с которого начинается файл. Один сектор = 2048 байт, т.е. через 2048 байт после начала файла пойдёт уже следующий сектор.

_________________
Работаю за деньги
KILL ALL HUMANS!!!!!111
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Redemption7



Зарегистрирован: 20.08.2009
Сообщения: 25

СообщениеДобавлено: Чт Авг 20, 2009 7:58 pm    Заголовок сообщения: Ответить с цитатой

Спасибо, думаю разберусь...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Arkad2



Зарегистрирован: 27.06.2009
Сообщения: 28
Откуда: Тьма

СообщениеДобавлено: Пт Авг 21, 2009 1:11 pm    Заголовок сообщения: Ответить с цитатой

Люди, ау, неужели ни у кого в этом чуде антивирь вирус-червь не определяет Confused? Это первое.
Второе. Чем этот отладчик отличается от обычного, не модифицированного? Я просто еще ни с одним дебаггером не работал . Embarassed Confused
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
BSV



Зарегистрирован: 05.08.2007
Сообщения: 64
Откуда: Новокузнецк

СообщениеДобавлено: Сб Авг 22, 2009 11:30 am    Заголовок сообщения: Ответить с цитатой

HoRRoR писал(а):

Only if read - бряк MemRead сработает только в случае, если считывается указанное значение.

Тут я бы немного дополнил: Если ставить только Only if read (без MemRead), то бряк сработает, если указанное значение прочитается из любого адреса.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
HoRRoR
RRC2008
RRC2008


Зарегистрирован: 21.06.2006
Сообщения: 2341
Откуда: Ростов-на-Дону

СообщениеДобавлено: Сб Авг 22, 2009 8:33 pm    Заголовок сообщения: Ответить с цитатой

Цитата:
Люди, ау, неужели ни у кого в этом чуде антивирь вирус-червь не определяет

Бывает и такое.

Цитата:
Чем этот отладчик отличается от обычного, не модифицированного? Я просто еще ни с одним дебаггером не работал .

А тему почитать не судьба?

Цитата:
Тут я бы немного дополнил: Если ставить только Only if read (без MemRead), то бряк сработает, если указанное значение прочитается из любого адреса.

Да, верно, запамятовал Smile
_________________
Работаю за деньги
KILL ALL HUMANS!!!!!111
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Mr2



Зарегистрирован: 23.11.2008
Сообщения: 69

СообщениеДобавлено: Пт Фев 26, 2010 10:27 pm    Заголовок сообщения: Ответить с цитатой

Что означает колонка CP0?(между GPR и Memory)
Если это тоже регистры то как их патчить?(пропатчивать можно только GPR)
Что такое hw.bin?(дампится вместе c ram, vram)
_________________


Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
HoRRoR
RRC2008
RRC2008


Зарегистрирован: 21.06.2006
Сообщения: 2341
Откуда: Ростов-на-Дону

СообщениеДобавлено: Пт Фев 26, 2010 10:32 pm    Заголовок сообщения: Ответить с цитатой

Mr2 писал(а):
Что означает колонка CP0?(между GPR и Memory)

Регистры сопроцессора (System Control Co-processor).

Mr2 писал(а):
Если это тоже регистры то как их патчить?(пропатчивать можно только GPR)

Зачем тебе менять значения регистров, если ты даже не знаешь зачем они нужны?

Цитата:
Что такое hw.bin?(дампится вместе c ram, vram)

Дамп "железячных" регистров (Hardware Registers), я думаю. Я никогда его не использовал.

Мануалы тебе в помощь.
_________________
Работаю за деньги
KILL ALL HUMANS!!!!!111
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Mr2



Зарегистрирован: 23.11.2008
Сообщения: 69

СообщениеДобавлено: Пт Фев 26, 2010 11:01 pm    Заголовок сообщения: Ответить с цитатой

HoRRoR писал(а):
Mr2 писал(а):
Что означает колонка CP0?(между GPR и Memory)

Регистры сопроцессора (System Control Co-processor).

Mr2 писал(а):
Если это тоже регистры то как их патчить?(пропатчивать можно только GPR)


HoRRoR писал(а):
Зачем тебе менять значения регистров, если ты даже не знаешь зачем они нужны?

Всмысле? Зачем нужны инструкции процессору?
------------------------------------------------------------

То есть c регистрами сопроцессора работает только сам процессор, извне(Кэш память) сопроцессор не получает никаких инструкций?
_________________




Последний раз редактировалось: Mr2 (Пт Фев 26, 2010 11:35 pm), всего редактировалось 1 раз
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
HoRRoR
RRC2008
RRC2008


Зарегистрирован: 21.06.2006
Сообщения: 2341
Откуда: Ростов-на-Дону

СообщениеДобавлено: Пт Фев 26, 2010 11:14 pm    Заголовок сообщения: Ответить с цитатой

Я не понял твоего вопроса, перефразируй.
_________________
Работаю за деньги
KILL ALL HUMANS!!!!!111
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Mr2



Зарегистрирован: 23.11.2008
Сообщения: 69

СообщениеДобавлено: Пт Фев 26, 2010 11:30 pm    Заголовок сообщения: Ответить с цитатой

HoRRoR писал(а):
Я не понял твоего вопроса, перефразируй.


Изменнения регистров сопроцессора не имеет большого значения, так как решающую роль играют регистры ЦП? Если ещё проще: почему их(CP0 регистры) нельзя пропатчить?

Спасибо за ссылочку на "Everything You Have Always Wanted to Know about the Playstation" Very Happy
Придётся поломать голову.. Shocked
_________________


Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
HoRRoR
RRC2008
RRC2008


Зарегистрирован: 21.06.2006
Сообщения: 2341
Откуда: Ростов-на-Дону

СообщениеДобавлено: Пт Фев 26, 2010 11:50 pm    Заголовок сообщения: Ответить с цитатой

Mr2 писал(а):
Изменнения регистров сопроцессора не имеет большого значения, так как решающую роль играют регистры ЦП? Если ещё проще: почему их(CP0 регистры) нельзя пропатчить?

Ещё раз спрошу: на кой хрен они тебе сдались? Зачем тебе вообще CP0? Ты собрался вникать в подробности параллельных вычислений?
Всё, что тебе понадобится - это CPU.
_________________
Работаю за деньги
KILL ALL HUMANS!!!!!111
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Mr2



Зарегистрирован: 23.11.2008
Сообщения: 69

СообщениеДобавлено: Сб Фев 27, 2010 12:19 am    Заголовок сообщения: Ответить с цитатой

HoRRoR писал(а):
Mr2 писал(а):
Изменнения регистров сопроцессора не имеет большого значения, так как решающую роль играют регистры ЦП? Если ещё проще: почему их(CP0 регистры) нельзя пропатчить?

Ещё раз спрошу: на кой хрен они тебе сдались? Зачем тебе вообще CP0? Ты собрался вникать в подробности параллельных вычислений?
Всё, что тебе понадобится - это CPU.

Ну я подумал что в дебаггере всё нужно. Very Happy
Ладно, в ходе эксперементов разберусь. Rolling Eyes Спасибо за разъяснения. Wink
_________________


Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Mr2



Зарегистрирован: 23.11.2008
Сообщения: 69

СообщениеДобавлено: Чт Мар 04, 2010 2:10 pm    Заголовок сообщения: Ответить с цитатой

Появился вопрос:R3000A аналогичен Intel IA-32?
_________________


Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
HoRRoR
RRC2008
RRC2008


Зарегистрирован: 21.06.2006
Сообщения: 2341
Откуда: Ростов-на-Дону

СообщениеДобавлено: Чт Мар 04, 2010 5:46 pm    Заголовок сообщения: Ответить с цитатой

Блин, откуда такие мысли вообще берутся? Тебе надо медаль за самые гениальные вопросы и их постановку. Почему ты вообще такое предположил?
Что мешает просто сравнить R3000 и IA-32?
Отвечаю: нет, и намёков на то тоже нет. RISC и CISC - разные архитектуры. Хотя, во многих CISC-процессорах используется RISC-ядро, но пользователя это не должно волновать.
_________________
Работаю за деньги
KILL ALL HUMANS!!!!!111
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Mr2



Зарегистрирован: 23.11.2008
Сообщения: 69

СообщениеДобавлено: Чт Мар 04, 2010 6:09 pm    Заголовок сообщения: Ответить с цитатой

HoRRoR писал(а):
Блин, откуда такие мысли вообще берутся? Тебе надо медаль за самые гениальные вопросы и их постановку. Почему ты вообще такое предположил?
Что мешает просто сравнить R3000 и IA-32?
Отвечаю: нет, и намёков на то тоже нет. RISC и CISC - разные архитектуры. Хотя, во многих CISC-процессорах используется RISC-ядро, но пользователя это не должно волновать.

Ага понял! Риск команды выполняются за один такт, а сиск за несколько.
Просто купил себе книжку про асэмблер. Книга построена на:"программно аппаратной архитектуре IA-32 процессоров intel"
И решил спросить про сходства процессоров. Rolling Eyes
Скажу сразу что небыло возможности сравнить процессоры во время покупки книжки, и другой книжки про асэмблер небыло. Confused
Про риск и сиск был в курсе, но не знал к какому типу относится IA-32.
Ладно, пора в бой. Wink
_________________


Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
HoRRoR
RRC2008
RRC2008


Зарегистрирован: 21.06.2006
Сообщения: 2341
Откуда: Ростов-на-Дону

СообщениеДобавлено: Чт Мар 04, 2010 6:17 pm    Заголовок сообщения: Ответить с цитатой

Цитата:
Ага понял! Риск команды выполняются за один такт, а сиск за несколько.

Да даже не в этом дело. Во-первых, наборы команд у MIPS и x86 разные (это и есть различие, которое должно тебя волновать в первую очередь). Во-вторых, RISC предусматривает малое количество инструкций - чуть ли не на пальцах пересчитать можно. А у многих процессоров семейства x86 количество инструкций доходит до 300-500.
А ещё - у R3000 длина всех инструкций 4 байта, у x86 инструкции переменной длины.
_________________
Работаю за деньги
KILL ALL HUMANS!!!!!111
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов shedevr.org.ru -> Перевод для PSX Часовой пояс: GMT + 3
На страницу Пред.  1, 2
Страница 2 из 2

 
Перейти:  
Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group