Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
HoRRoR RRC2008
Зарегистрирован: 21.06.2006 Сообщения: 2341 Откуда: Ростов-на-Дону
|
|
Вернуться к началу |
|
|
HoRRoR 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 |
|
Вернуться к началу |
|
|
Redemption7
Зарегистрирован: 20.08.2009 Сообщения: 25
|
Добавлено: Чт Авг 20, 2009 7:58 pm Заголовок сообщения: |
|
|
Спасибо, думаю разберусь... |
|
Вернуться к началу |
|
|
Arkad2
Зарегистрирован: 27.06.2009 Сообщения: 28 Откуда: Тьма
|
Добавлено: Пт Авг 21, 2009 1:11 pm Заголовок сообщения: |
|
|
Люди, ау, неужели ни у кого в этом чуде антивирь вирус-червь не определяет ? Это первое.
Второе. Чем этот отладчик отличается от обычного, не модифицированного? Я просто еще ни с одним дебаггером не работал . |
|
Вернуться к началу |
|
|
BSV
Зарегистрирован: 05.08.2007 Сообщения: 64 Откуда: Новокузнецк
|
Добавлено: Сб Авг 22, 2009 11:30 am Заголовок сообщения: |
|
|
HoRRoR писал(а): |
Only if read - бряк MemRead сработает только в случае, если считывается указанное значение. |
Тут я бы немного дополнил: Если ставить только Only if read (без MemRead), то бряк сработает, если указанное значение прочитается из любого адреса. |
|
Вернуться к началу |
|
|
HoRRoR RRC2008
Зарегистрирован: 21.06.2006 Сообщения: 2341 Откуда: Ростов-на-Дону
|
Добавлено: Сб Авг 22, 2009 8:33 pm Заголовок сообщения: |
|
|
Цитата: | Люди, ау, неужели ни у кого в этом чуде антивирь вирус-червь не определяет |
Бывает и такое.
Цитата: | Чем этот отладчик отличается от обычного, не модифицированного? Я просто еще ни с одним дебаггером не работал . |
А тему почитать не судьба?
Цитата: | Тут я бы немного дополнил: Если ставить только Only if read (без MemRead), то бряк сработает, если указанное значение прочитается из любого адреса. |
Да, верно, запамятовал _________________ Работаю за деньги
KILL ALL HUMANS!!!!!111 |
|
Вернуться к началу |
|
|
Mr2
Зарегистрирован: 23.11.2008 Сообщения: 69
|
Добавлено: Пт Фев 26, 2010 10:27 pm Заголовок сообщения: |
|
|
Что означает колонка CP0?(между GPR и Memory)
Если это тоже регистры то как их патчить?(пропатчивать можно только GPR)
Что такое hw.bin?(дампится вместе c ram, vram) _________________
|
|
Вернуться к началу |
|
|
HoRRoR 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 |
|
Вернуться к началу |
|
|
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 раз |
|
Вернуться к началу |
|
|
HoRRoR RRC2008
Зарегистрирован: 21.06.2006 Сообщения: 2341 Откуда: Ростов-на-Дону
|
|
Вернуться к началу |
|
|
Mr2
Зарегистрирован: 23.11.2008 Сообщения: 69
|
Добавлено: Пт Фев 26, 2010 11:30 pm Заголовок сообщения: |
|
|
HoRRoR писал(а): | Я не понял твоего вопроса, перефразируй. |
Изменнения регистров сопроцессора не имеет большого значения, так как решающую роль играют регистры ЦП? Если ещё проще: почему их(CP0 регистры) нельзя пропатчить?
Спасибо за ссылочку на "Everything You Have Always Wanted to Know about the Playstation"
Придётся поломать голову.. _________________
|
|
Вернуться к началу |
|
|
HoRRoR RRC2008
Зарегистрирован: 21.06.2006 Сообщения: 2341 Откуда: Ростов-на-Дону
|
Добавлено: Пт Фев 26, 2010 11:50 pm Заголовок сообщения: |
|
|
Mr2 писал(а): | Изменнения регистров сопроцессора не имеет большого значения, так как решающую роль играют регистры ЦП? Если ещё проще: почему их(CP0 регистры) нельзя пропатчить? |
Ещё раз спрошу: на кой хрен они тебе сдались? Зачем тебе вообще CP0? Ты собрался вникать в подробности параллельных вычислений?
Всё, что тебе понадобится - это CPU. _________________ Работаю за деньги
KILL ALL HUMANS!!!!!111 |
|
Вернуться к началу |
|
|
Mr2
Зарегистрирован: 23.11.2008 Сообщения: 69
|
Добавлено: Сб Фев 27, 2010 12:19 am Заголовок сообщения: |
|
|
HoRRoR писал(а): | Mr2 писал(а): | Изменнения регистров сопроцессора не имеет большого значения, так как решающую роль играют регистры ЦП? Если ещё проще: почему их(CP0 регистры) нельзя пропатчить? |
Ещё раз спрошу: на кой хрен они тебе сдались? Зачем тебе вообще CP0? Ты собрался вникать в подробности параллельных вычислений?
Всё, что тебе понадобится - это CPU. |
Ну я подумал что в дебаггере всё нужно.
Ладно, в ходе эксперементов разберусь. Спасибо за разъяснения. _________________
|
|
Вернуться к началу |
|
|
Mr2
Зарегистрирован: 23.11.2008 Сообщения: 69
|
Добавлено: Чт Мар 04, 2010 2:10 pm Заголовок сообщения: |
|
|
Появился вопрос:R3000A аналогичен Intel IA-32? _________________
|
|
Вернуться к началу |
|
|
HoRRoR RRC2008
Зарегистрирован: 21.06.2006 Сообщения: 2341 Откуда: Ростов-на-Дону
|
Добавлено: Чт Мар 04, 2010 5:46 pm Заголовок сообщения: |
|
|
Блин, откуда такие мысли вообще берутся? Тебе надо медаль за самые гениальные вопросы и их постановку. Почему ты вообще такое предположил?
Что мешает просто сравнить R3000 и IA-32?
Отвечаю: нет, и намёков на то тоже нет. RISC и CISC - разные архитектуры. Хотя, во многих CISC-процессорах используется RISC-ядро, но пользователя это не должно волновать. _________________ Работаю за деньги
KILL ALL HUMANS!!!!!111 |
|
Вернуться к началу |
|
|
Mr2
Зарегистрирован: 23.11.2008 Сообщения: 69
|
Добавлено: Чт Мар 04, 2010 6:09 pm Заголовок сообщения: |
|
|
HoRRoR писал(а): | Блин, откуда такие мысли вообще берутся? Тебе надо медаль за самые гениальные вопросы и их постановку. Почему ты вообще такое предположил?
Что мешает просто сравнить R3000 и IA-32?
Отвечаю: нет, и намёков на то тоже нет. RISC и CISC - разные архитектуры. Хотя, во многих CISC-процессорах используется RISC-ядро, но пользователя это не должно волновать. |
Ага понял! Риск команды выполняются за один такт, а сиск за несколько.
Просто купил себе книжку про асэмблер. Книга построена на:"программно аппаратной архитектуре IA-32 процессоров intel"
И решил спросить про сходства процессоров.
Скажу сразу что небыло возможности сравнить процессоры во время покупки книжки, и другой книжки про асэмблер небыло.
Про риск и сиск был в курсе, но не знал к какому типу относится IA-32.
Ладно, пора в бой. _________________
|
|
Вернуться к началу |
|
|
HoRRoR RRC2008
Зарегистрирован: 21.06.2006 Сообщения: 2341 Откуда: Ростов-на-Дону
|
Добавлено: Чт Мар 04, 2010 6:17 pm Заголовок сообщения: |
|
|
Цитата: | Ага понял! Риск команды выполняются за один такт, а сиск за несколько. |
Да даже не в этом дело. Во-первых, наборы команд у MIPS и x86 разные (это и есть различие, которое должно тебя волновать в первую очередь). Во-вторых, RISC предусматривает малое количество инструкций - чуть ли не на пальцах пересчитать можно. А у многих процессоров семейства x86 количество инструкций доходит до 300-500.
А ещё - у R3000 длина всех инструкций 4 байта, у x86 инструкции переменной длины. _________________ Работаю за деньги
KILL ALL HUMANS!!!!!111 |
|
Вернуться к началу |
|
|
|