MTDBG - отладчик пользовательского уровня
-
Very nice. Your screenshot looks charming...
That was a screenshot of how the mentioned bug looked like Now labels ain't cropped like that.macgub wrote:Very nice. Your screenshot looks charming...
I noticed labels now arent present at all. (Version from 18 april 2021)
Tnx, good work!Kenshin wrote:SVN rev. 8591:
- исправлен баг с отображением меток, загруженных из отладочного файла; вот так он выглядел:
- история команд (прокручивается с помощью стрелок вверх/вниз)
- слегка освежил документацию к программе
Everything is very useful.
I beg yours pardon. Labels work OK. Again sorry, I'm mistaken.
При отладке своих программ в MTDBG, у меня отладчик регулярно падал по непонятной причине. Даже ранее писал в багрепорт.
Так как использование MTDBG в среде Колибри ОС мне удобнее, чем со встроенным отладчиком в Виртуалбоксе, то решил отреверсить отладчик MTDBG в самом отладчике MTDBG.
Выяснилось следующее:
В MTDBG есть баг с дизассемблированием инструкций, работающих с данными в WORD.
Например, если скомпилировать в FASMе файл .asm с командой repne scasw / repnz stosw и скормить его отладчику, то отладчик молча падает.
Проблема в том, что отладчик ожидает стандартный набор опкодов типа 66 F2 AF для команды repne scasw.
Однако FASM компилирует эту команду немного по другому: - в F2 66 AF.
В данной ситуации отладчик воспринимает опкод 66, после опкода F2, как "неизвестный".
В принципе, пусть отладчик и обрабатывает этот опкод как «неизвестный». Однако, процедура обработки «неизвестного опкода» имеет ошибку, что приводит к падению отладчика.
В итоге мной сделаны соответствующие изменения в исходнике отладчика MTDBG: disasm.inc
1. Строка 266 (устранена причина паления отладчика при обработке неизвестного опкода)
2. Строка 332 (добавлен код для корректной обработки не стандартных опкодов ассемблерных инструкции в WORD)
У меня нет доступа к изменению файлов в SVN, поэтому выкладываю исправленный исходник отладчика «disasm.inc” здесь.
Так как использование MTDBG в среде Колибри ОС мне удобнее, чем со встроенным отладчиком в Виртуалбоксе, то решил отреверсить отладчик MTDBG в самом отладчике MTDBG.
Выяснилось следующее:
В MTDBG есть баг с дизассемблированием инструкций, работающих с данными в WORD.
Например, если скомпилировать в FASMе файл .asm с командой repne scasw / repnz stosw и скормить его отладчику, то отладчик молча падает.
Проблема в том, что отладчик ожидает стандартный набор опкодов типа 66 F2 AF для команды repne scasw.
Однако FASM компилирует эту команду немного по другому: - в F2 66 AF.
В данной ситуации отладчик воспринимает опкод 66, после опкода F2, как "неизвестный".
В принципе, пусть отладчик и обрабатывает этот опкод как «неизвестный». Однако, процедура обработки «неизвестного опкода» имеет ошибку, что приводит к падению отладчика.
В итоге мной сделаны соответствующие изменения в исходнике отладчика MTDBG: disasm.inc
1. Строка 266 (устранена причина паления отладчика при обработке неизвестного опкода)
2. Строка 332 (добавлен код для корректной обработки не стандартных опкодов ассемблерных инструкции в WORD)
У меня нет доступа к изменению файлов в SVN, поэтому выкладываю исправленный исходник отладчика «disasm.inc” здесь.
- Attachments
-
-
disasm.inc (58.05 KiB)Downloaded 140 times
-
Good find!
Merged #9209
Merged #9209
"Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction." Albert Einstein
Who is online
Users browsing this forum: No registered users and 6 guests