Как отлаживать регистры программы/представления, требующие ввода данных пользователем

У меня есть программа сборки, которую я пытаюсь протестировать с помощью отладки, однако программа обычно имеет пользовательский ввод для целых чисел. Есть ли способ отладить программу и по-прежнему иметь возможность «запускать» ее в том смысле, что я могу вводить целые числа в программу, но затем просматривать значения в регистрах?

Заранее спасибо за помощь.


person Calibre    schedule 06.04.2013    source источник
comment
Какой отладчик? Какая ОС? Как вы читаете пользовательский ввод? Покажите нам код.   -  person nrz    schedule 07.04.2013
comment
Извините, это было не очень понятно, я использую отладчик nasmide внутри DosBox. В настоящее время я использую одно из прерываний Int 21H, в частности, AH=01 для чтения пользовательского ввода.   -  person Calibre    schedule 07.04.2013


Ответы (1)


Есть ли способ отладить программу и по-прежнему иметь возможность «запускать» ее в том смысле, что я могу вводить целые числа в программу, но затем просматривать значения в регистрах?

Да, любой достойный отладчик должен позволять вам выполнять инструкции кода за инструкциями.

Например, Borland Turbo Debugger и Open Watcom Watcom Debugger имеют варианты выполнения Trace Into и Step Over. Эти два похожи, но не идентичны. Последний выполняет целые подпрограммы как часть call subroutine инструкций, а первый выполняет только одну инструкцию, будь то call или нет.

Посмотрите, как это можно сделать в отладчике. Посмотрите его пользовательский интерфейс и/или документацию.

Кроме того, отладчики обычно позволяют вам устанавливать точки останова на инструкции по вашему выбору и выполнять код до тех пор, пока не встретится точка останова. Вы тоже можете это использовать.

person Alexey Frunze    schedule 06.04.2013
comment
Хорошо, спасибо .. Честно говоря, я не уверен, какой отладчик я использую, хотя я думаю, что это насмид или просто отладка в оболочке DOS. В любом случае, я решил просто ввести некоторые заданные значения вместо пользовательского ввода, что позволило мне выполнить базовую отладку. Спасибо за вашу помощь, я могу попробовать и посмотреть, смогу ли я загрузить один из этих отладчиков. - person Calibre; 07.04.2013
comment
Вы определенно можете скачать wd.exe как часть Open Watcom C/C++. - person Alexey Frunze; 07.04.2013
comment
Если это обычный старый DEBUG (тьфу... тьфу...), не пытайтесь tсоперничать с int 21h - вместо этого используйте proceed. Это должно подождать, пока вы введете символ. Насколько я помню, tracing хоть и дос плохо работает! - person Frank Kotler; 07.04.2013
comment
@FrankKotler Вы правы, t делает что-то странное, и вместо этого следует использовать p. Только что проверил. - person Alexey Frunze; 07.04.2013