• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Как исключить из отладки некоторые модули?

  • Автор темы DJAnthon
  • Дата начала
D

DJAnthon

C++ Builder 6, XP SP3, все стандартно.

Есть ли какие-нибудь директивы или настройки или способы (кроме пихания функций в DLL) стандартной отладки,
чтобы по F7 (Trace Into) "ходить" только по нужным мне файлам (либо исключая определенные, тоже можно)?

Например, при работе с динамическими массивами TDynamicArray постоянно открывается файл sysdyn.h
и очень сложно выполнить код какой-нибудь сложной конструкции языка, так как, к примеру
A и A.Length - это не операторы и не переменные, а фактически, вызов функций классов, которые мне не надо отлаживать,
а в них постоянно идет курсор отладки.

P.S. Не отсылайте на поиск, я не знаю, какие ключевые слова использовать. здесь впервые. спасибо.
 
D

DJAnthon

Эх, если бы все так просто было бы... F8 пропускает строчку целиком, а мне нужно зайти внутрь процедуры,
ПРОПУСКАЯ промежуточные вызовы модулей, не участвующих в отладке.
К примеру, вызов

[codebox]
AddInterval(TempModes[j].Ints[k], TempModes[j].Name, FormMain -> Standard.Rounding);
[/codebox]

по F8 двинется ниже, а мне нужно зайти в функцию AddInterval.
однако по F7 заход будет сначала в модуль sysdyn.h целых 3 раза, чтобы вычислить
функцию-оператор [] для динамического массива, а мне от этого и надо избавиться.
Единственный выход - ставить бряку внутри функции, но это неудобно, потому как она
может быть перегружена, переопределена, может вызываться рекурсивно.
А наворчивать условия срабатывания брякпоинта иногда сложнее, чем реверс-инженеринг.
Потому как функция может быть написана давно (да и не мной).


Прогю уже 10 лет (последние пять лет на 1С), но не знаю до сих пор ответа на этот вопрос.
 
V

vital

В visual studio есть такая штука. В Билдере, по-моему, никак. Только бряки.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!