Вызов функции выглядит как нормальный
/////////////////////////////////////////////////////////////*/
void main ( int argc, char * argv[ ])
// Проверка наличия аргумента командной строки.
if ( 1 == argc)
{
ShowHelp ();
return;
}
// Конкатенация параметров командной строки.
TCHAR szCmdLine[ МАХ_РАТН ];
szCmdLine[ 0 ] = '\0';
for ( int i = 1; i < argc; i++)
{ strcat ( szCmdLine, argv[ i ]);
if ( i < argc)
{
strcat ( szCmdLine, " ");
}
}
// Попытка стартовать процесс подчиненного отладчика.
// Вызов функции выглядит как нормальный вызов CreateProcess,
//за исключением флажка специального режима
// запуска DEBUG_ONLY_THIS_PROCESS.
STARTUPINFO stStartlnfo ;
PROCESS_INFORMATION stProcessInfo ;
memset ( sstStartlnfo , NULL, sizeof ( STARTUPINFO ));
memset ( SstProcessInfo, NULL, sizeof ( PROCESS_INFORMATION));
stStartlnfo.cb = sizeof ( STARTUPINFO);
BOOL bRet = CreateProcess ( NULL ,
szCmdLine ,
NULL
NULL ,
FALSE ,
CREATE_NEW_CONSOLE |
DEBUG__ONLY_THIS_PROCESS,
NULL ,
NULL ,
&stStartlnfo ,
&stProcessInfo ) ;
// Посмотреть, стартовал ли процесс подчиненного отладчика.
if ( FALSE == bRet)
{
printf ( "Unable to start %s\n", szCmdLine);
return;
}
// Подчиненный отладчик стартовал, войдем в цикл отладки.
DEBUG_EVENT stDE
BOOL bSeenlnitialBP = FALSE ;
BOOL bContinue = TRUE ;
HANDLE hProcess = INVALID_HANDLE_VALUE;
DWORD dwContinueStatus
// Входим в цикл while.
while ( TRUE == bContinue)
{
// Пауза, пока не придет уведомление о событии отладки.
bContinue = WaitForDebugEvent ( &stDE, INFINITE);
// Обработать конкретные отладочные события. Из-за того что
// MinDBG является минимальным отладчиком, он обрабатывает
// только некоторые события.
switch ( stDE.dwDebugEventCode)
{
case CREATE_PROCESS_DEBUG_EVENT :
{
DisplayCreateProcessEvent ( stDE.u.CreateProcessInfo);
// Сохранить информацию дескриптора, необходимую
// для дальнейшего использования
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий