Разорвать процесс без точки останова в C ++ - PullRequest
0 голосов
/ 17 марта 2011

В приложении Visual Studio 2008 MFC есть ли способ остановить отладку без точки останова, когда я нажимаю кнопку?Проблема в том, что это довольно большой и общий проект, поэтому мой код вызывается другим «модулем», но я не знаю, какие из моих функций вызваны, поэтому я не знаю, где поставить точку останова.Моя цель состояла бы в том, чтобы прервать процесс, если какая-либо из моих функций будет вызвана.

Ответы [ 3 ]

3 голосов
/ 18 мая 2011

Вы можете использовать функцию DebugBreak () .

2 голосов
/ 17 марта 2011

Вы можете написать макрос Visual Studio, который ставит точку останова на каждой строке в вашем исходном коде. Вы можете сделать это немного умнее и ставить точки останова только при каждом запуске функции, но это потребует некоторого разбора. Привязать этот макрос к ключу. Запустите приложение MFC, и когда вы захотите взломать собственный код, переключитесь на Visual Studio, нажмите клавишу и нажмите «Готово», и вы прерветесь при первом использовании вашего кода.

Другой вариант - создать макрос C ++, который проверяет, был ли установлен глобальный логический тип, и выполняет asm {int 3}, когда он установлен. Используйте этот макрос в начале каждой (высокоуровневой) функции вашего кода. Добавьте код, который устанавливает глобальное логическое значение при нажатии определенной кнопки в приложении MFC. Это будет работать только в 32-битном исполняемом файле, вам потребуется некоторое встроенное в 64-битном исполняемом файле, которое я не знаю по голове.

Надеюсь, это поможет.

Приветствия

Sebastiaan

1 голос
/ 17 марта 2011

Есть кнопка «Пауза», которая прерывает выполнение ... Или вы можете поставить точку останова на всех возможных подозреваемых.Вы не знаете, какая из ваших функций вызывается - поставьте перед ними все ограничения.Тогда ты достигнешь своей цели.

Моя цель - прервать процесс, если будет вызвана какая-либо из моих функций.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...