Как отлаживать дочерний процесс за пределами начальной точки останова

В моем приложении есть файл a.exe, который запускает b.exe и взаимодействует с ним. Последовательность такова:

  1. a.exe запускает b.exe и ожидает события от b.exe с 10-секундным тайм-аутом.
  2. b.exe запускается, регистрируется как COM-сервер и сигнализирует о событии
  3. a.exe вызывает метод в COM-интерфейсе
  4. вызывается метод интерфейса b.exe. ‹‹‹‹‹ Я хочу сломаться здесь

Я хочу прервать вызов метода интерфейса b.exe. В настоящее время я делаю это так:

  1. Запустите a.exe под виндбг
  2. Введите .childdbg 1
  3. Подождите, пока b.exe не запустится и его начальная точка останова не сломается.
  4. Установите другую точку останова в b.exe и продолжайте. Я должен сделать это в течение 10 секунд, иначе a.exe истечет тайм-аут и уничтожит b.exe.

У меня получилось, но 10-секундный таймаут иногда проходит. Есть ли лучший способ сделать это?


person Jonathan    schedule 19.06.2016    source источник


Ответы (1)


Прочитав свой вопрос, я нашел ответ - пусть начальная точка останова устанавливает реальную точку останова:

.childdbg 1
sxe -c "bm b!*MyMethod*;g" ibp
sxd epr
person Jonathan    schedule 19.06.2016