Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
CDB можно использовать для присоединения к запущенному процессу или для создания и присоединения к новому процессу.
Присоединение к работающему процессу
Командная строка
В окне командной строки можно подключиться к запущенным процессам при запуске CDB. Используйте одну из следующих команд:
- cdb -pProcessID
- cdb -pnProcessName
Где ProcessID является идентификатором процесса выполняемого процесса или ProcessName — это имя выполняемого процесса.
Дополнительные сведения о синтаксисе командной строки см. в разделе "Параметры Command-Line CDB".
Окно команд CDB
Если отладчик уже отладчик выполняет отладку одного или нескольких процессов, можно подключиться к запущенным процессам с помощью команды attach (Attach to Process).
Отладчик всегда запускает несколько целевых процессов одновременно, если некоторые из их потоков не заморожены или приостановлены.
Если команда attach успешно выполнена, отладчик присоединяется к указанному процессу при следующем выполнении команды отладчика. Если вы используете эту команду несколько раз в строке, выполнение должно запрашиваться отладчиком столько раз, сколько вы используете эту команду.
Присоединение к выполняющимся процессам неинвазивно
Если вы хотите выполнить отладку выполняющегося процесса и вмешиваться в его выполнение только минимально, следует отлаживать процесс ненавязчиво.
Командная строка
Чтобы не отлаживать выполняющийся процесс из командной строки CDB, укажите параметр -pv , параметр -p и идентификатор процесса в следующем синтаксисе.
cdb -pv -pProcessID
Кроме того, чтобы выполнить невиновную отладку выполняемого процесса, указав имя процесса, используйте следующий синтаксис.
cdb -pv -pnProcessName
Существует несколько других полезных параметров командной строки. Дополнительные сведения о синтаксисе командной строки см. в разделе "Параметры Command-Line CDB".
Окно команд CDB
Если отладчик уже активен, вы можете невиновно отлаживать выполняющийся процесс, введя команду .attach -v (присоединение к процессу).
Команду .attach можно использовать, если отладчик уже инвазивно отлаживает один или несколько процессов.
Если команда .attach -v успешно выполнена, отладчик отлаживает указанный процесс при следующем выполнении команды. Так как выполнение не допускается во время некритичной отладки, отладчик не может некритично отлаживать несколько процессов одновременно. Это ограничение также означает, что использование команды .attach -v может сделать существующий инвазивный сеанс отладки менее полезным.
Создание нового процесса
CDB может запустить приложение в пользовательском режиме, а затем отладить приложение. Приложение указывается по имени. Отладчик также может автоматически присоединяться к дочерним процессам (дополнительные процессы, запущенные исходным целевым процессом).
Процессы, создаваемые отладчиком (также известные как разреженные процессы), ведут себя немного иначе, чем процессы, которые отладчик не создает.
Вместо использования стандартного API кучи процессы, создаваемые отладчиком, используют специальную отладочную кучу. Вы можете заставить порожденный процесс использовать стандартную кучу вместо отладочной, используя переменную среды _NO_DEBUG_HEAP или параметр командной строки -hd.
Кроме того, поскольку целевое приложение является дочерним процессом отладчика, оно наследует разрешения отладчика. Это разрешение может позволить целевому приложению выполнять определенные действия, которые не удалось выполнить в противном случае. Например, целевое приложение может повлиять на защищенные процессы.
В окне командной строки при запуске CDB можно создать новый процесс. Введите следующую команду.
cdb [-o]ProgramName[Arguments]
Параметр -o приводит к присоединению отладчика к дочерним процессам. Существует несколько других полезных параметров командной строки. Дополнительные сведения о синтаксисе командной строки см. в разделе "Параметры Command-Line CDB".
Если отладчик уже выполняет отладку одного или нескольких процессов, вы можете создать новый процесс, введя команду .create (Create Process).
Отладчик всегда запускает несколько целевых процессов одновременно, если некоторые из них не заморожены или приостановлены.
Если команда create выполнена успешно, отладчик создает указанный процесс при следующем выполнении команды отладчика. Если вы используете эту команду несколько раз в строке, выполнение должно запрашиваться отладчиком столько раз, сколько вы используете эту команду.
Можно управлять начальным каталогом приложения с помощью команды .createdir (Set Created Process Directory) перед созданием. Вы можете использовать команду .createdir -I или параметр командной строки -noinh , чтобы контролировать, наследует ли целевое приложение дескриптор отладчика.
Вы можете активировать или отключить отладку дочерних процессов с помощью команды .childdbg (отладка дочерних процессов).
Повторное присоединение к процессу
Если отладчик перестает отвечать или зависает, можно подключить новый отладчик к целевому процессу. Дополнительные сведения о подключении отладчика в этой ситуации см. в разделе "Повторное подключение к целевому приложению".