diff --git a/src/plugins/debugger/attachexternaldialog.cpp b/src/plugins/debugger/attachexternaldialog.cpp index 11e0265912b663a14759ab941a503ded17400878..7ca50470fb5fda62c6431f8cc860c81573906439 100644 --- a/src/plugins/debugger/attachexternaldialog.cpp +++ b/src/plugins/debugger/attachexternaldialog.cpp @@ -148,187 +148,6 @@ void AttachExternalDialog::rebuildProcessList() procView->sortByColumn(1, Qt::AscendingOrder); } -#ifdef Q_OS_WINDOWS - -BOOL GetProcessList(); -BOOL ListProcessModules(DWORD dwPID); -BOOL ListProcessThreads(DWORD dwOwnerPID); -void printError(TCHAR *msg); - -BOOL GetProcessList() -{ - HANDLE hProcessSnap; - HANDLE hProcess; - PROCESSENTRY32 pe32; - DWORD dwPriorityClass; - - // Take a snapshot of all processes in the system. - hProcessSnap = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, 0 ); - if (hProcessSnap == INVALID_HANDLE_VALUE) - { - printError( TEXT("CreateToolhelp32Snapshot (of processes)") ); - return( FALSE ); - } - - // Set the size of the structure before using it. - pe32.dwSize = sizeof( PROCESSENTRY32 ); - - // Retrieve information about the first process, - // and exit if unsuccessful - if (!Process32First( hProcessSnap, &pe32 )) - { - printError( TEXT("Process32First") ); // show cause of failure - CloseHandle( hProcessSnap ); // clean the snapshot object - return( FALSE ); - } - - // Now walk the snapshot of processes, and - // display information about each process in turn - do - { - printf( "\n\n=====================================================" ); - _tprintf( TEXT("\nPROCESS NAME: %s"), pe32.szExeFile ); - printf( "\n-----------------------------------------------------" ); - - // Retrieve the priority class. - dwPriorityClass = 0; - hProcess = OpenProcess( PROCESS_ALL_ACCESS, FALSE, pe32.th32ProcessID ); - if (hProcess == NULL) - printError( TEXT("OpenProcess") ); - else - { - dwPriorityClass = GetPriorityClass( hProcess ); - if (!dwPriorityClass) - printError( TEXT("GetPriorityClass") ); - CloseHandle( hProcess ); - } - - printf( "\n Process ID = 0x%08X", pe32.th32ProcessID ); - printf( "\n Thread count = %d", pe32.cntThreads ); - printf( "\n Parent process ID = 0x%08X", pe32.th32ParentProcessID ); - printf( "\n Priority base = %d", pe32.pcPriClassBase ); - if (dwPriorityClass) - printf( "\n Priority class = %d", dwPriorityClass ); - - // List the modules and threads associated with this process - ListProcessModules( pe32.th32ProcessID ); - ListProcessThreads( pe32.th32ProcessID ); - - } while (Process32Next(hProcessSnap, &pe32)); - - CloseHandle(hProcessSnap); - return TRUE; -} - - -BOOL ListProcessModules(DWORD dwPID) -{ - HANDLE hModuleSnap = INVALID_HANDLE_VALUE; - MODULEENTRY32 me32; - - // Take a snapshot of all modules in the specified process. - hModuleSnap = CreateToolhelp32Snapshot( TH32CS_SNAPMODULE, dwPID ); - if (hModuleSnap == INVALID_HANDLE_VALUE) { - printError(TEXT("CreateToolhelp32Snapshot (of modules)")); - return FALSE; - } - - // Set the size of the structure before using it. - me32.dwSize = sizeof( MODULEENTRY32 ); - - // Retrieve information about the first module, - // and exit if unsuccessful - if (!Module32First( hModuleSnap, &me32)) - { - printError( TEXT("Module32First") ); // show cause of failure - CloseHandle( hModuleSnap ); // clean the snapshot object - return( FALSE ); - } - - // Now walk the module list of the process, - // and display information about each module - do - { - _tprintf( TEXT("\n\n MODULE NAME: %s"), me32.szModule ); - _tprintf( TEXT("\n Executable = %s"), me32.szExePath ); - printf( "\n Process ID = 0x%08X", me32.th32ProcessID ); - printf( "\n Ref count (g) = 0x%04X", me32.GlblcntUsage ); - printf( "\n Ref count (p) = 0x%04X", me32.ProccntUsage ); - printf( "\n Base address = 0x%08X", (DWORD) me32.modBaseAddr ); - printf( "\n Base size = %d", me32.modBaseSize ); - - } while (Module32Next(hModuleSnap, &me32)); - - CloseHandle(hModuleSnap); - return TRUE; -} - -BOOL ListProcessThreads( DWORD dwOwnerPID ) -{ - HANDLE hThreadSnap = INVALID_HANDLE_VALUE; - THREADENTRY32 te32; - - // Take a snapshot of all running threads - hThreadSnap = CreateToolhelp32Snapshot( TH32CS_SNAPTHREAD, 0 ); - if (hThreadSnap == INVALID_HANDLE_VALUE) - return( FALSE ); - - // Fill in the size of the structure before using it. - te32.dwSize = sizeof(THREADENTRY32 ); - - // Retrieve information about the first thread, - // and exit if unsuccessful - if (!Thread32First( hThreadSnap, &te32 )) - { - printError( TEXT("Thread32First") ); // show cause of failure - CloseHandle( hThreadSnap ); // clean the snapshot object - return( FALSE ); - } - - // Now walk the thread list of the system, - // and display information about each thread - // associated with the specified process - do - { - if (te32.th32OwnerProcessID == dwOwnerPID) - { - printf( "\n\n THREAD ID = 0x%08X", te32.th32ThreadID ); - printf( "\n Base priority = %d", te32.tpBasePri ); - printf( "\n Delta priority = %d", te32.tpDeltaPri ); - } - } while (Thread32Next(hThreadSnap, &te32)); - - CloseHandle( hThreadSnap ); - return( TRUE ); -} - -void printError( TCHAR* msg ) -{ - DWORD eNum; - TCHAR sysMsg[256]; - TCHAR* p; - - eNum = GetLastError( ); - FormatMessage( FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, - NULL, eNum, - MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language - sysMsg, 256, NULL ); - - // Trim the end of the line and terminate it with a null - p = sysMsg; - while (*p > 31 || *p == 9 ) - ++p; - - do { - *p-- = 0; - } while( p >= sysMsg && (*p == '.' || *p < 33)); - - // Display the message - _tprintf( TEXT("\n WARNING: %s failed with error %d (%s)"), msg, eNum, sysMsg ); -} - -#endif - void AttachExternalDialog::procSelected(const QModelIndex &index0) { QModelIndex index = index0.sibling(index0.row(), 0); diff --git a/src/plugins/debugger/attachremotedialog.cpp b/src/plugins/debugger/attachremotedialog.cpp index ffe21174239467d54c984029de61188cb1a3c88a..e13d7b6ebc294424e8531750607a418254de3ba6 100644 --- a/src/plugins/debugger/attachremotedialog.cpp +++ b/src/plugins/debugger/attachremotedialog.cpp @@ -142,193 +142,6 @@ void AttachRemoteDialog::rebuildProcessList() procView->resizeColumnToContents(1); } -#ifdef Q_OS_WINDOWS - -#include <windows.h> -#include <tlhelp32.h> -#include <tchar.h> -#include <stdio.h> - -// Forward declarations: -BOOL GetProcessList(); -BOOL ListProcessModules(DWORD dwPID); -BOOL ListProcessThreads(DWORD dwOwnerPID); -void printError(TCHAR* msg); - -BOOL GetProcessList( ) -{ - HANDLE hProcessSnap; - HANDLE hProcess; - PROCESSENTRY32 pe32; - DWORD dwPriorityClass; - - // Take a snapshot of all processes in the system. - hProcessSnap = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, 0 ); - if (hProcessSnap == INVALID_HANDLE_VALUE) - { - printError( TEXT("CreateToolhelp32Snapshot (of processes)") ); - return( FALSE ); - } - - // Set the size of the structure before using it. - pe32.dwSize = sizeof( PROCESSENTRY32 ); - - // Retrieve information about the first process, - // and exit if unsuccessful - if (!Process32First( hProcessSnap, &pe32 )) - { - printError( TEXT("Process32First") ); // show cause of failure - CloseHandle( hProcessSnap ); // clean the snapshot object - return( FALSE ); - } - - // Now walk the snapshot of processes, and - // display information about each process in turn - do - { - printf( "\n\n=====================================================" ); - _tprintf( TEXT("\nPROCESS NAME: %s"), pe32.szExeFile ); - printf( "\n-----------------------------------------------------" ); - - // Retrieve the priority class. - dwPriorityClass = 0; - hProcess = OpenProcess( PROCESS_ALL_ACCESS, FALSE, pe32.th32ProcessID ); - if (hProcess == NULL) - printError( TEXT("OpenProcess") ); - else - { - dwPriorityClass = GetPriorityClass( hProcess ); - if (!dwPriorityClass) - printError( TEXT("GetPriorityClass") ); - CloseHandle( hProcess ); - } - - printf( "\n Process ID = 0x%08X", pe32.th32ProcessID ); - printf( "\n Thread count = %d", pe32.cntThreads ); - printf( "\n Parent process ID = 0x%08X", pe32.th32ParentProcessID ); - printf( "\n Priority base = %d", pe32.pcPriClassBase ); - if (dwPriorityClass) - printf( "\n Priority class = %d", dwPriorityClass ); - - // List the modules and threads associated with this process - ListProcessModules( pe32.th32ProcessID ); - ListProcessThreads( pe32.th32ProcessID ); - - } while( Process32Next( hProcessSnap, &pe32 ) ); - - CloseHandle( hProcessSnap ); - return( TRUE ); -} - - -BOOL ListProcessModules( DWORD dwPID ) -{ - HANDLE hModuleSnap = INVALID_HANDLE_VALUE; - MODULEENTRY32 me32; - - // Take a snapshot of all modules in the specified process. - hModuleSnap = CreateToolhelp32Snapshot( TH32CS_SNAPMODULE, dwPID ); - if (hModuleSnap == INVALID_HANDLE_VALUE) - { - printError( TEXT("CreateToolhelp32Snapshot (of modules)") ); - return( FALSE ); - } - - // Set the size of the structure before using it. - me32.dwSize = sizeof( MODULEENTRY32 ); - - // Retrieve information about the first module, - // and exit if unsuccessful - if (!Module32First( hModuleSnap, &me32 )) - { - printError( TEXT("Module32First") ); // show cause of failure - CloseHandle( hModuleSnap ); // clean the snapshot object - return( FALSE ); - } - - // Now walk the module list of the process, - // and display information about each module - do - { - _tprintf( TEXT("\n\n MODULE NAME: %s"), me32.szModule ); - _tprintf( TEXT("\n Executable = %s"), me32.szExePath ); - printf( "\n Process ID = 0x%08X", me32.th32ProcessID ); - printf( "\n Ref count (g) = 0x%04X", me32.GlblcntUsage ); - printf( "\n Ref count (p) = 0x%04X", me32.ProccntUsage ); - printf( "\n Base address = 0x%08X", (DWORD) me32.modBaseAddr ); - printf( "\n Base size = %d", me32.modBaseSize ); - - } while( Module32Next( hModuleSnap, &me32 ) ); - - CloseHandle( hModuleSnap ); - return( TRUE ); -} - -BOOL ListProcessThreads( DWORD dwOwnerPID ) -{ - HANDLE hThreadSnap = INVALID_HANDLE_VALUE; - THREADENTRY32 te32; - - // Take a snapshot of all running threads - hThreadSnap = CreateToolhelp32Snapshot( TH32CS_SNAPTHREAD, 0 ); - if (hThreadSnap == INVALID_HANDLE_VALUE) - return( FALSE ); - - // Fill in the size of the structure before using it. - te32.dwSize = sizeof(THREADENTRY32 ); - - // Retrieve information about the first thread, - // and exit if unsuccessful - if (!Thread32First( hThreadSnap, &te32 )) - { - printError( TEXT("Thread32First") ); // show cause of failure - CloseHandle( hThreadSnap ); // clean the snapshot object - return( FALSE ); - } - - // Now walk the thread list of the system, - // and display information about each thread - // associated with the specified process - do - { - if (te32.th32OwnerProcessID == dwOwnerPID) - { - printf( "\n\n THREAD ID = 0x%08X", te32.th32ThreadID ); - printf( "\n Base priority = %d", te32.tpBasePri ); - printf( "\n Delta priority = %d", te32.tpDeltaPri ); - } - } while( Thread32Next(hThreadSnap, &te32 ) ); - - CloseHandle( hThreadSnap ); - return( TRUE ); -} - -void printError( TCHAR* msg ) -{ - DWORD eNum; - TCHAR sysMsg[256]; - TCHAR* p; - - eNum = GetLastError( ); - FormatMessage( FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, - NULL, eNum, - MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language - sysMsg, 256, NULL ); - - // Trim the end of the line and terminate it with a null - p = sysMsg; - while( ( *p > 31 ) || ( *p == 9 ) ) - ++p; - do { *p-- = 0; } while( ( p >= sysMsg ) && - ( ( *p == '.' ) || ( *p < 33 ) ) ); - - // Display the message - _tprintf( TEXT("\n WARNING: %s failed with error %d (%s)"), msg, eNum, sysMsg ); -} - -#endif - - void AttachRemoteDialog::procSelected(const QModelIndex &index0) { QModelIndex index = index0.sibling(index0.row(), 0);