Могу ли я добавить точку останова на CreateProcess в VS - PullRequest
11 голосов
/ 15 июля 2009

Могу ли я добавить точку останова в Windows CreateProcess API в Visual Studio, как я могу это сделать в Windbg?

1 Ответ

16 голосов
/ 15 июля 2009

Да - перейдите "Отладка / Новая точка останова / Разрыв в функции ..." и вставьте это:

{,,kernel32.dll}_CreateProcessW@40

в Функциональное поле.

Это предполагает сборку Unicode - замените W на A для сборок ANSI.

Небольшое объяснение: кусок @40 является частью соглашения о вызовах stdcall и дает количество байтов параметров, которые принимает функция. В win32 это почти всегда в 4 раза больше количества параметров. Подчеркивание также является частью соглашения о вызовах stdcall.

Примечание по теме: иногда имя функции, видимое отладчиком, отличается от ее реального имени - см. Этот пост в блоге для примера и как найти правильное имя для использования: Настройка Visual Studio точка останова на функции Win32 API в user32.dll

...