Board.KolibriOS.org
http://board.kolibrios.org/

MTDBG - отладчик пользовательского уровня
http://board.kolibrios.org/viewtopic.php?f=45&t=358
Page 3 of 9

Author:  diamond [ Mon Jun 26, 2006 3:41 pm ]
Post subject: 

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

Author:  diamond [ Thu Jun 14, 2007 1:01 pm ]
Post subject: 

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

Author:  <Lrz> [ Thu Sep 27, 2007 10:54 am ]
Post subject:  Re: Нужен ли отладчик?

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

Author:  diamond [ Tue Oct 02, 2007 11:50 am ]
Post subject:  Re: Нужен ли отладчик?

Будет время - что-нибудь сделаю. Кстати, имей в виду, что в общем случае для x86 перемещаться по дизассемблированному листингу назад невозможно (нельзя однозначно сказать, какая инструкция была предыдущей).
Насчёт дампа в отдельном окне не понял.

Author:  <Lrz> [ Wed Oct 03, 2007 7:18 am ]
Post subject:  Re: Нужен ли отладчик?

Я имел ввиду перемещение по листингу - просмотр кода, мне порой удобнее проматать вниз или вверх клавишами, чем использовать инструкцию u <адресс>. У тебя есть команда d <адресс> - показать содержимое памяти. у тебя показывается порой очень мало данных в этом окне. Если возможно сделай возможность просмотра данных в отдельном окне, с навигацией по массиву кода. (Перемещение клавишами курсора, и просмотр содержимого что - то на подобии hiew

Author:  bw [ Wed Oct 03, 2007 4:02 pm ]
Post subject:  Re: Нужен ли отладчик?

diamond об этом и говорит. Определить какая инструкция была последней (длиной 1, 2, 3 или больше байт) затруднительно. В зависимости от того с какого адреса ты начнешь дизасемблировать код у тебя будет менять набор инструкций.
Хотя это полезная фича, она конечно нужна.

..bw

Author:  Gluk [ Fri Oct 05, 2007 9:28 pm ]
Post subject:  Re: Нужен ли отладчик?

за поддержку информации о именах в программе огромное спасибо! отлаживать стало намного приятнее! =)

Author:  alman [ Mon Oct 08, 2007 2:49 pm ]
Post subject:  Re: Нужен ли отладчик?

Классный отладчик. Завидую...

Author:  vkos [ Mon Nov 09, 2009 8:45 pm ]
Post subject:  Re: Нужен ли отладчик?

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

Attachments:
File comment: Скриншот
bug2.png
bug2.png [ 40.85 KiB | Viewed 3119 times ]

Author:  diamond [ Wed Nov 11, 2009 1:30 am ]
Post subject:  Re: Нужен ли отладчик?

Посмотрел на код работы с таблицей символов, один баг исправил, больше не вижу. Если svn.1265 (она же версия, включённая в последнюю ночную сборку) всё равно работает с символами неправильно, файл .dbg в студию (исполняемый необязательно).

Author:  <Lrz> [ Wed Nov 11, 2009 9:36 am ]
Post subject:  Re: Нужен ли отладчик?

Нужен ли MTDBG компонент edit_box, и подключаемая библиотека box_lib.obj?

Author:  diamond [ Wed Nov 11, 2009 1:08 pm ]
Post subject:  Re: Нужен ли отладчик?

<Lrz>
В данный момент - нет.

Author:  vkos [ Thu Nov 12, 2009 12:04 am ]
Post subject:  Re: Нужен ли отладчик?

diamond
Вроде бы работает. Кстати, то, что отладчик при некоторых вылетах программы тоже вылетает, это неизбежно? Или это баг? Если надо, могу уточнить подробности.

Author:  diamond [ Fri Nov 13, 2009 12:49 am ]
Post subject:  Re: Нужен ли отладчик?

Отрисовку поправил, svn.1269 (включена в последнюю ночную сборку).
Вроде у меня тоже вылетал, когда из-за глюков со стеком отлаживаемая программа прыгнула на FFFFFFFF. Вроде системная функция read_process_memory от таких запросов грохается вместе с вызывающим процессом.

Author:  Mario [ Tue Oct 05, 2010 10:29 pm ]
Post subject:  Re: Нужен ли отладчик?

Некоторое время назад разбирался с отладчиком и сделал раскрашенный вариант документации.
Attachment:
mtdbg_pdf_odt.7z [145.9 KiB]
Downloaded 94 times

В архиве ODT и PDF файлы.

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

Например для линуксовой версии это выглядит приблизительно так:
Code:
#!/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

Page 3 of 9 All times are UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/