Вы спрашиваете, как взломать отладчик, когда дочерний процесс procA создает дескриптор для logB? Я предполагаю, что вы используете Windows, так как вы упомянули Process Explorer.
Один из способов сделать это - использовать ключ реестра Image File Execution Options
, чтобы указать, что при каждом запуске procA.exe
вы хотите запустить отладчик. Когда отладчик запускается, вы можете установить точку останова в коде, который создает дескриптор для logB, а затем позволить процессу продолжить. Это работает с любым отладчиком (таким как WinDbg или ntsd, или инструментами профилирования, такими как AQTime), не только с Visual Studio.
Другой способ сделать это - указать отладчику подключаться ко всем дочерним процессам. Есть несколько способов включить это поведение с помощью WinDbg или ntsd . Таким образом, вы присоединяете отладчик к родительскому процессу, и он автоматически присоединяется к дочернему процессу procA, и вы можете установить точку останова в соответствующем коде.
Еще один способ - временно изменить код, чтобы сгенерировать исключение точки останова, используя функцию DebugBreak()
, когда он создает дескриптор для logB, а затем подключить отладчик, используя отладку точно в срок. Обратите внимание: если ваш код обрабатывает структурированные исключения без выражения фильтра исключений (что является плохой идеей), это не сработает и может привести к неожиданным результатам (взаимоблокировка, утечка памяти и т. Д.).