Как должен выглядеть простейший отладчик для Windows? Как должен выглядеть скелет программы простейшего отладчика для Windows? Надо просто запустить другую программу (не приаттачиться к уже запущенной, а запустить самому), чтобы она запустилась и обязательно остановилась по определённому адресу. Причём точка останова должна быть задана через hardware debugging registers. Никаких исходников для примера я в интернете не нашёл, увы.
Простейший отладчик для Windows должен иметь минимальный пользовательский интерфейс, позволяющий выбрать программу для запуска и установить точку останова.
Скелет программы простейшего отладчика для Windows может выглядеть примерно так:
Открыть процесс для запускаИнициализировать hardware debugging registers для установки точки остановаЗапустить процессОжидать остановки процесса на точке остановаВывести информацию о состоянии процесса и его регистрахРазорвать отладочное соединениеОсвободить ресурсы и завершить работу программы
Для установки точки останова через hardware debugging registers можно воспользоваться функциями WinAPI, такими как DebugActiveProcess, DebugActiveProcessStop, SetThreadContext и т.д. Подробную информацию о работе с hardware debugging registers в Windows можно найти в документации Microsoft.
Простейший отладчик для Windows должен иметь минимальный пользовательский интерфейс, позволяющий выбрать программу для запуска и установить точку останова.
Скелет программы простейшего отладчика для Windows может выглядеть примерно так:
Открыть процесс для запускаИнициализировать hardware debugging registers для установки точки остановаЗапустить процессОжидать остановки процесса на точке остановаВывести информацию о состоянии процесса и его регистрахРазорвать отладочное соединениеОсвободить ресурсы и завершить работу программыДля установки точки останова через hardware debugging registers можно воспользоваться функциями WinAPI, такими как DebugActiveProcess, DebugActiveProcessStop, SetThreadContext и т.д. Подробную информацию о работе с hardware debugging registers в Windows можно найти в документации Microsoft.