Перерыв при обнаружении значения

Хорошо, я выхожу на конечность здесь, потому что я не уверен, что эта функциональность существует, но если нет, то, вероятно, должен. Вот что я знаю:

Где-то в коде читается кусок данных. Я пытаюсь найти эту часть кода. (И здесь мы говорим об ОГРОМНОЙ кодовой базе — десятки тысяч файлов в почти 300 проектах. Даже не могли догадаться по строкам кода — 2000-3000 на файл не редкость, так что это настоящая игла / Территория стога сена.) Я знаю, что эти данные содержат определенную идентифицируемую строку. Я хотел бы иметь возможность установить точку останова, когда любой кусок памяти установлен на эту строку.

Что я не знаю:

Я понятия не имею, где и даже если эта строка хранится где-либо, поэтому я не могу установить точку останова на адрес памяти или переменную. Все, что я знаю, это то, что по крайней мере в течение короткого периода времени (возможно, не более, чем область действия одной функции или даже только одна итерация цикла for) это значение существует где-то. Возможно, сама строка игнорируется кодом и сохраняются только сопровождающие данные, но в какой-то момент строка должна существовать в памяти.

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

Это просто желаемое за действительное? Или есть какой-то простой способ сделать это?

0

Решение

Используйте Process Monitor от Microsoft (был SysInternals) для мониторинга файлового ввода-вывода. Если у вас правильно сконфигурированы символы (у вас и у Microsoft), Process Monitor отобразит трассировки стека, связанные с каждой операцией ввода-вывода файла.

1

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

Других решений пока нет …

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