Page 3 of 10

Posted: Mon Jun 26, 2006 3:41 pm
by diamond
Модификация, теперь mtdbg использует новую функцию 70.7 для запуска. Для работы необходимо ядро ревизии 91.
http://diamondz.land.ru/mtdbg1.7z (бинарник+исходники+описание)

Posted: Thu Jun 14, 2007 1:01 pm
by diamond
Добавил поддержку информации об именах в программе. Такой файл может быть сгенерирован fasm'ом автоматически (версия на svn) или создан вручную: набор строк вида "0x<адрес> <имя>" (все строки, не начинающиеся с 0x, игнорируются). Можно загрузить явно командой "load-symbols <имя-файла>" или неявно, обозвав его так же, как и бинарник, но с расширением dbg.
Ссылка та же.

Re: Нужен ли отладчик?

Posted: Thu Sep 27, 2007 10:54 am
by <Lrz>
diamond
Последнее время пользуюсь достаточно часто отладчиком. Не мог бы ты сделать следующее:
1) Клавишами курсора перемещаться по дебаг-листингу программы
2) при вводе в строке ввода сделать поддержку tab т.е. как на Cisco оборудовании, вводишь начало слова, нажимаешь таб, а дальше система подставляет оставшуюся команду. Сделать память на посление команды, вводимые в строке ввода, при фокусировке на строке ввода, клавишами вверх-вниз проматывать историю команд.
Могу порекомендовать использовать Editbox, все выше перечисленное достаточно просто реализуется.
3) Хотелось бы просматривать дамп в отдельном окне и иметь возможность навигации по DATA.
У меня не всегда получалось снять breakpoint. :(

Re: Нужен ли отладчик?

Posted: Tue Oct 02, 2007 11:50 am
by diamond
Будет время - что-нибудь сделаю. Кстати, имей в виду, что в общем случае для x86 перемещаться по дизассемблированному листингу назад невозможно (нельзя однозначно сказать, какая инструкция была предыдущей).
Насчёт дампа в отдельном окне не понял.

Re: Нужен ли отладчик?

Posted: Wed Oct 03, 2007 7:18 am
by <Lrz>
Я имел ввиду перемещение по листингу - просмотр кода, мне порой удобнее проматать вниз или вверх клавишами, чем использовать инструкцию u <адресс>. У тебя есть команда d <адресс> - показать содержимое памяти. у тебя показывается порой очень мало данных в этом окне. Если возможно сделай возможность просмотра данных в отдельном окне, с навигацией по массиву кода. (Перемещение клавишами курсора, и просмотр содержимого что - то на подобии hiew

Re: Нужен ли отладчик?

Posted: Wed Oct 03, 2007 4:02 pm
by bw
diamond об этом и говорит. Определить какая инструкция была последней (длиной 1, 2, 3 или больше байт) затруднительно. В зависимости от того с какого адреса ты начнешь дизасемблировать код у тебя будет менять набор инструкций.
Хотя это полезная фича, она конечно нужна.

..bw

Re: Нужен ли отладчик?

Posted: Fri Oct 05, 2007 9:28 pm
by Gluk
за поддержку информации о именах в программе огромное спасибо! отлаживать стало намного приятнее! =)

Re: Нужен ли отладчик?

Posted: Mon Oct 08, 2007 2:49 pm
by alman
Классный отладчик. Завидую...

Re: Нужен ли отладчик?

Posted: Mon Nov 09, 2009 8:45 pm
by vkos
Во-первых, заметил один баг: при определённых обстоятельствах MTDBG не показывает данные по имени адреса (при этом в листинге отражается именно он, а на команду d пишет Parse error) (см. вложение). Если надо, могу выложить файлы (исполняемый и dbg) на которых это заметил.
Во-вторых, есть ещё один мелкий баг: при перерисовке рисуется не всё окно (тоже видно во вложении).

Re: Нужен ли отладчик?

Posted: Wed Nov 11, 2009 1:30 am
by diamond
Посмотрел на код работы с таблицей символов, один баг исправил, больше не вижу. Если svn.1265 (она же версия, включённая в последнюю ночную сборку) всё равно работает с символами неправильно, файл .dbg в студию (исполняемый необязательно).

Re: Нужен ли отладчик?

Posted: Wed Nov 11, 2009 9:36 am
by <Lrz>
Нужен ли MTDBG компонент edit_box, и подключаемая библиотека box_lib.obj?

Re: Нужен ли отладчик?

Posted: Wed Nov 11, 2009 1:08 pm
by diamond
<Lrz>
В данный момент - нет.

Re: Нужен ли отладчик?

Posted: Thu Nov 12, 2009 12:04 am
by vkos
diamond
Вроде бы работает. Кстати, то, что отладчик при некоторых вылетах программы тоже вылетает, это неизбежно? Или это баг? Если надо, могу уточнить подробности.

Re: Нужен ли отладчик?

Posted: Fri Nov 13, 2009 12:49 am
by diamond
Отрисовку поправил, svn.1269 (включена в последнюю ночную сборку).
Вроде у меня тоже вылетал, когда из-за глюков со стеком отлаживаемая программа прыгнула на FFFFFFFF. Вроде системная функция read_process_memory от таких запросов грохается вместе с вызывающим процессом.

Re: Нужен ли отладчик?

Posted: Tue Oct 05, 2010 10:29 pm
by Mario
Некоторое время назад разбирался с отладчиком и сделал раскрашенный вариант документации.
mtdbg_pdf_odt.7z (145.9 KiB)
Downloaded 260 times
В архиве ODT и PDF файлы.

Также, если кому интересно - список меток с адресами можно получить использовав утилиты идущие в комплекте с FASM.

Например для линуксовой версии это выглядит приблизительно так:

Code: Select all

#!/bin/bash
#
	echo "lang fix ru"
	echo "lang fix ru" > lang.inc
	fasm -m 16384 animage.asm animage -s animage.fas
	listing -b 4 animage.fas animage.dbg
	symbols animage.fas animage.sbl
	rm -f lang.inc
	exit 0
Однако даже самый очищенный файл, полученный из утилиты symbols, содержит мусор. И к тому же порядок следования названий меток и адресов наоборот от требуемого для отладчика.

У меня есть планы прикрутить OpenDialog к отладчику для выбора отлаживаемого файла. Существующий синтаксис при этом не поменяется. Добавится только одна опция указывающая брать путь из области полученной от OpenDialog. По пути возможно доработаю утилиту symbols до необходимого отладчику формата *.dbg