Запуск Debug.exe, программы для проверки и отладки исполнительных файлов MS-DOS. Выполненная без параметров команда debug запускает программу Debug.exe и выводит приглашение команды debug,
представленное дефисом (-).
Синтаксис
debug [[диск:][путь] имя_файла [ параметры]]
Параметры
[диск:][путь] имя_файла Задание расположения и имени исполняемого файла для тестирования. параметры Указание параметров командной строки, передаваемых отлаживаемой программе. ? Вывод списка подкоманд команды debug.
Примечания
- Использование команд подсистемы MS-DOS Команда debug это команда подсистемы MS-DOS, которая выполняется в среде WOW/NTVDM.
- Разделитель параметров команды Параметры можно вводить через запятые или пробелы, но это требуется только для шестнадцатеричных значений. Например, следующие команды эквивалентны: dcs:100 110 d cs:100 110 d,cs:100,110
- Использование команд debug Существует несколько команд debug, которыми можно воспользоваться.
- Debug: a (assemble)
- Debug: c (compare)
- Debug: d (dump)
- Debug: e (enter)
- Debug: f (fill)
- Debug: g (go)
- Debug: h (hexadecimal)
- Debug: i (input)
- Debug: l (load)
- Debug: m (move)
- Debug: n (name)
- Debug: o (output)
- Debug: p (proceed)
- Debug: q (quit)
- Debug: r (register)
- Debug: t (trace)
- Debug: u (unassemble)
- Debug: w (write)
- Debug: xa (allocate expanded memory)
- Debug: xd (deallocate expanded memory)
- Debug: xm (мар expanded memory pages)
- Debug: xs (display expanded memory status)
Источник: www.sites.google.com
ЗАБАНИЛИ ЗА /debug ! ВСЯ ПРАВДА О КОМАНДЕ ! БЛЕК РАША
Программа Debug
Как уже говорилось (см. ВВЕДЕНИЕ), программа Debug входит в состав Windows. Запустить программу Debug можно из командной строки или непосредственно из папки, в которой она находится.
Чтобы запустить программу из командной строки, выберите команду из меню ПУСК – ВЫПОЛНИТЬ или нажмите комбинацию клавиш WIN + R (если вы не знаете, что такое комбинация клавиш, см. книгу Компьютер для чайников). В открывшемся окне (рис. 1.5) напечатайте слово debug и нажмите клавишу ENTER или щёлкните кнопку ОК.
После этого откроется окно с пустым экраном и чёрточкой в левом верхнем углу, которая приглашает вас ввести какую-либо команду. Например, чтобы выйти из программы Debug, напечатайте букву q и нажмите ENTER.
Написать программу, используя Debug, можно не единственным способом, но мы пока рассмотрим тот, который больше похож на написание программы для Emu8086.
Чтобы написать уже известную нам программу, используя Debug, сделаем следующее (подразумевается, что Debug вы уже запустили, и увидели черный экран с маленькой мигающей черточкой в левом верхнем углу).
Что такое дебаг и точка останова
Введем букву «а» (напоминаю в последний раз — все команды вводятся на английском языке) и нажмем ENTER.
Затем введем программу, нажимая ENTER в конце каждой строки:
0B72: 0100 MOV AH, 02 0B72: 0102 MOV DL, 41 0B72: 0104 INT 21 0B72: 0106 INT 20 0B72: 0108
Результат будет примерно таким, как показано на рис. 1.6.
ПРИМЕЧАНИЕ 1
Обратите внимание, что все числовые значения пишутся без буковки h в конце. Это потому, что Debug работает только с шестнадцатеричными числами, и ему не надо объяснять, в какой системе исчисления вводятся данные.
ПРИМЕЧАНИЕ 2
После ввода команды -а, появляются символы: 0B72: 0100. В вашем случае первые четыре символа могут быть другими, но нас они пока не интересуют. А как вы думаете, что означает число 0100? Помните директиву ORG 100h (см. раздел Emu8086)? Вот-вот – это адрес, с которого начинается выполнение программы. То есть в память с этим адресом заносится первая команда программы (для файлов СОМ).
Каждая команда занимает 2 байта, поэтому следующий адрес будет 0102 и т.д.
Сами команды мы уже знаем (см. раздел Emu8086), поэтому описывать их здесь не будем.
Программа написана – нужно проверить ее работу. Нажмём ENTER ещё раз, чтобы на экране появилась чёрточка, которая говорит о том, что можно вводить команду для Debug. Затем введем команду g (от английского «GO») и нажмем клавишу ENTER. На экране увидим следующее:
-g A Программа завершилась нормально —
Здесь A – та самая буква, которая выводится на экран в результате работы программы. Затем идёт сообщение о нормальном завершении программы (оно может отличаться в зависимости от версии Debug).
А теперь, если интересно, можно проверить программу в пошаговом режиме, то есть понаблюдать, как выполняются команды одна за другой. Для этого придется по новой набрать текст программы (не забудьте сначала ввести команду а), затем:
Введем команду t и нажмем клавишу ENTER. Увидим нечто вроде этого:
AX=0200 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0B72 ES=0B72 SS=0B72 CS=0B72 IP=0102 NV UP EI PL NZ NA PO NC 0B72:0102 B241 MOV DL,41
Это есть ни что иное, как состояние регистров процессора после выполнения первой строки программы. Как вы можете видеть, в регистр АН записалось число 02. В нижней строке находится адрес команды и сама команда, которая будет выполняться следующей.
Снова введем команду t и нажмем клавишу ENTER. Увидим следующее:
AX=0200 BX=0000 CX=0000 DX=0041 SP=FFEE BP=0000 SI=0000 DI=0000 DS=0B72 ES=0B72 SS=0B72 CS=0B72 IP=0104 NV UP EI PL NZ NA PO NC 0B72:0104 CD21 INT 21
Команда MOV DL, 41, как ей и полагается, записала в регистр DL число 41.
Снова введем команду t и нажмем клавишу ENTER. Увидим следующее:
AX=0200 BX=0000 CX=0000 DX=0041 SP=FFE8 BP=0000 SI=0000 DI=0000 DS=0B72 ES=0B72 SS=0B72 CS=0347 IP=0225 NV UP EI PL NZ NA PO NC 0347:0225 80FC4B CMP AH,4B
Команды CMP AH,4B нет в нашей программе. Наша программа завершила свою работу. Мы можем долго еще вводить команду t – нам будут выдаваться состояния регистров. Почему это происходит, нам пока не интересно.
Лучше введем команду g и нажмем клавишу ENTER, таким образом окончательно выполним нашу программу, и увидим то, что мы уже видели.
- Какого размера будет наш файл? Выполнение программы начинается с адреса 0100h, а последняя строка в программе содержит адрес 0108h. Это значит, что размер файла будет 8 байт (108h – 100h = 8).
- Как мы назовем наш файл? А хоть как. Однако, рекомендуется давать файлам английские имена, в которых содержится не более 8 символов (DOSу так приятнее работать). Назовем, например, debug_1.com
- Снова напишем нашу программу (тренируйтесь, тренируйтесь. ).
- Запишем в регистр СХ размер файла. Для этого введем команду r cx и нажмем ENTER. Затем введем размер файла (8 байт) и нажмем ENTER.
- Введем команду n, затем один пробел и имя файла. Нажмем ENTER.
- И, наконец, введем команду w и нажмем ENTER.
-r cx СХ 0000 :8 -n debug_1.com -w Запись: 00008 байт —
Если вы работаете в режиме эмуляции DOS из под WINDOWS, то файл debug_1.com сохранится на рабочий стол, либо в папку текущего пользователя. Это зависит от версии и/или настроек WINDOWS. Теперь его можно запустить как обычную программу. Если в указанных папках вы не нашли этот файл, то найдите его через поиск файлов.
Ну а если вы не знаете, как это сделать, см. книгу Компьютер для чайников.
Чувствую, что мы уже устали. Выход из Debug осуществляется командой q.
Набравшись сил и терпения, изучим еще одну опцию Debug – дизассемблер. С его помощью можно дизассемблировать какой-нибудь СОМ-файл (то есть выполнить действие, обратное ассемблированию – преобразовать исполняемый файл в исходный код на языке ассемблера). Допустим, у вас есть программка, написанная не вами – ее исходный код вы не знаете, а посмотреть очень хочется. Для этого и существует дизассемблер.
Итак, программа Debug у нас закрыта. Набираем в командной строке:
debug debug_1.com
(где debug_1.com – это имя файла, который мы хотим дизассемблировать) и нажимаем ENTER.
ПРИМЕЧАНИЕ
Если программа не запустилась, значит нужно указать полный путь к ней, например
C:WINDOWSCOMMANDdebug debug_1.com
Если же программа запустилась, но выдала ошибку (например: Ошибка 1282 или «Файл не найден»), то нужно указать полный путь к файлу, например:
C:WINDOWSCOMMANDdebug C:MYPROGdebug_1.com
Если и это не помогло, то, возможно, вы всё-таки где-то допустили ошибку в пути или путь не соответствует требованиям DOS. В таком случае лучше поместить программу в корень диска С, откуда она гарантированно загрузится по пути «C:debug_1.com».
Если Debug запустилась без сообщений об ошибках, то вводим команду u и нажимаем ENTER. Вот что мы увидим (примерно, см. также рис 1.8):
-u 0BC6:0100 B402 MOV AH, 02 0BC6:0102 B241 MOV DL, 41 0BC6:0104 CD21 INT 21 0BC6:0106 CD20 INT 20 0BC6:0108 56 PUSH SI 0BC6:0109 2E CS: 0BC6:010A 8A04 MOV AL, [SI] 0BC6:010C 0AC0 OR AL, AL 0BC6:010E 741A JZ 012A 0BC6:0110 3C3A CMP AL, 3A 0BC6:0112 750D JNZ 0121 0BC6:0114 2E CS: 0BC6:0115 807C0100 CMP BYTE PTR [SI+01], 00 0BC6:0119 7506 JNZ 0121 0BC6:011B 2E CS: 0BC6:011C C60400 MOV BYTE PTR [SI], 00 0BC6:011F EB09 JMP 012A —
Посмотрите на первые четыре строки. Узнаете? Это наша программа.
Остальные строки нас не интересуют (это инструкции, оставшиеся от программ или данных, отработавших до запуска Debug). Ну а если мы рассматриваем незнакомый файл, как узнать, где кончается программа и начинается «мусор»? Ориентировочно это можно сделать по размеру файла (для очень маленьких программ). Размер можно посмотреть в свойствах файла.
Только следует учитывать, что в свойствах файла размер дан в десятичной форме, а Debug нам выдает шестнадцатеричные адреса. Поэтому придется перевести десятичное число в шестнадцатеричное.
Есть еще вариант (который тоже не всегда приемлем) – найти в полученном списке строку, содержащую команду выхода из программы (INT 20).
Если программа большая, то список ее команд не поместится на экран. Тогда снова вводим команду u и нажимаем ENTER. И так до конца программы.
Возможно, вы не увидите на экране свою программу. Это может быть либо из-за того, что программа почему-то не загрузилась, либо по причине несоответствия адресов. Будьте внимательны: обращайте внимание на адреса памяти, которые указаны в левой колонке. Наша программа начинается с адреса 0100. Если адрес другой, то это, соответственно, не наша программа.
Источник: av-assembler.ru
Debug — что это? Описание инструмента
Debug — что это? Debug, или отладка. в компьютерном программировании и разработке, — это многоэтапный процесс, который включает определение проблемы, выявление ее источника, а затем исправление сбоя или выбор способа дальнейшей работы. Последним шагом отладки является проверка корректного исправления.
Введение
Разработка программных продуктов проходит тщательное тестирование, обновление, устранение неполадок и обслуживание. В процессе отладки готовые программные решения регулярно компилируются и выполняются для выявления и устранения проблем. Крупные программы, содержащие миллионы строк исходного кода, делятся на небольшие компоненты. Для эффективности каждый компонент сначала отлаживается отдельно, а затем — в совокупности в рамках программного продукта.
Сегодня мы разберем, как проверить, открыт порт или нет, а также опишем, как его активировать в.
Debug — что это и как работает? Тактика может включать интерактивную отладку, анализ потока управления, модульное и интеграционное тестирование, анализ файлов журналов, мониторинг на уровне приложений или системы, дампы памяти и профилирование.
Debug — что это? Описание процесса
Debug — это штатный процесс поиска и удаления сбоев, ошибок или аномалий компьютерной программы, которые программисты обрабатывают с помощью инструментов отладки. Отладка проверяет, обнаруживает и исправляет ошибки, чтобы обеспечить правильную работу приложения в соответствии с установленными спецификациями.
В разработке программного обеспечения отладка включает в себя поиск и исправление ошибок кода в компьютерной программе. Debug является важным этапом процесса тестирования программного обеспечения и неотъемлемой частью всего жизненного цикла разработки ПО. Процесс отладки начинается, как только код записывается, и продолжается на последующих этапах, поскольку код объединяется с другими модулями программирования для формирования программного продукта. В большой программе, имеющей тысячи строк кода, процесс отладки можно упростить, используя такие стратегии, как модульные тесты, обзоры кода и парное программирование.
В наше время любая более-менее крупная игра имеет поддержку специальной командной строки — консоли.
Debug в контексте MS-DOS
В MS-DOS Debug — что это? Это команда, которая позволяет программистам исследовать и изменять источники содержимого памяти, которые происходят в операционной системе. Методика предоставления инструкций по компьютерным задачам через интерфейс командной строки изначально использовалась в средах MS-DOS для перевода кода ассемблера в рабочий код и машинного языка в исполняемые (debug.exe) файлы.
Debug позволяет разработчикам просматривать содержимое памяти, вносить изменения, а затем выполнять COM, .exe и другие типы файлов.
История
Microsoft впервые представила команду debug в MS-DOS 1.0 в качестве метода тестирования программ. Была добавлена дополнительная функциональность — инструмент ориентировался на различные операционные задачи, такие как отображение содержимого части памяти, ввод данных по указанному адресу, запуск исполняемых файлов памяти, шестнадцатеричная арифметика и манипуляция регистрационной памятью.
Важный этап обнаружения ошибок
После выявления программного сбоя необходимо найти ошибку в коде (Debug error). На этом этапе полезно просмотреть ведение журнала кода и использовать автономный инструмент отладчика или компонент отладки интегрированной среды разработки (IDE). Изначально обнаруживаются и фиксируются ошибки в наиболее популярных функциях. В некоторых случаях модуль, представляющий проблему, очевиден, а сама строка кода — нет. В этом случае модульные тесты, такие как JUnit и xUnit, которые позволяют программисту запускать определенную функцию с конкретными входами, могут быть полезны при отладке.
Бывает такое, что пользователи домашних компьютеров или даже терминалов, объединенных в локальную.
Процесс отладки
Стандартная практика состоит в том, чтобы настроить и запустить программу до точки остановки, при которой прекращается выполнение программы. Компонент отладки IDE обычно предоставляет программисту возможность просматривать память и переменные, запускать программу до следующей финальной точки, выполнять только следующую строку кода и в некоторых случаях изменять значение переменных или содержимое строки кода, которая должна быть выполнена.
Общие инструменты отладки
Анализаторы исходного кода, которые включают в себя безопасность, общие ошибки кода и анализаторы сложности, также могут быть полезны при отладке. Анализатор сложности способен найти модули, которые настолько сложны, что их трудно понять и проверить. Некоторые инструменты могут фактически анализировать пробный прогон, чтобы увидеть, какие строки кода не выполнялись. Это может существенно помочь в отладке. Другие инструменты для отладки включают расширенное протоколирование и симуляторы, которые позволяют профессиональному программисту моделировать поведение программы на оборудовании пользователя.
Поиск и удаление ошибок программного обеспечения
Некоторые инструменты, особенно инструменты с открытым исходным кодом и языки сценариев, не запускаются в среде IDE и требуют ручного подхода к отладке. Такие методы включают в себя сброс значений в журнал, расширенные «печатные» заявления, добавленные во время выполнения кода или жестко закодированные debug-команды (например, wait), которые имитируют точку остановки, ожидая ввода клавиатуры в определенное время.
Debug Dump Files — можно ли удалить
Многие пользователи после возникновения сбоя обнаруживают в месте хранения программы системные файлы. Документы носят наименование Debug Dump Files. Можно ли удалить их? Это отладочные файлы, которые создаются после нарушения работы ПО, чтобы помочь определить причину возникновения ошибки. Если вы не пытаетесь устранить проблему, то можете удалить их.
Источник: autogear.ru