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

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

DJAnthon

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

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

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

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

DJAnthon

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

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

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


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

vital

Больной Компом Детектед
29.01.2006
2 432
34
#4
В visual studio есть такая штука. В Билдере, по-моему, никак. Только бряки.