Влияют ли точки останова данных на скомпилированный код в Visual Studio?

Я знаю, что вставка нормальной точки останова может немного изменить скомпилированный код, но верно ли это и для точек останова данных? Я не понимаю, как они могли бы быть логически встроены в код.

2

Решение

Если вы имеете в виду «наблюдение за переменными» или «точка останова памяти», когда вы просите отладчик прервать работу, если переменная или область памяти изменяются, то это достигается путем запроса вашего ЦП отслеживать этот адрес памяти / диапазон для всех прав записи, и для взлома в отладчике, чтобы позволить ему решить, прерывать или нет для каждой записи. (Я не знаком с тем, как процессор / отладчик точно достигает этого, просто так).

Это не изменяет ни содержимое вашей памяти, ни исполняемый код в памяти.

1

Другие решения

Насколько я знаю, точки останова не изменяют скомпилированный код, ни нормальные, ни точки останова данных.

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

Изменяемый код — это код в памяти. Отладчик загружает исполняемый файл в память и изменяет там код.

4

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector