summaryrefslogtreecommitdiff
path: root/src/plugins/debugger/procinterrupt.cpp
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@nokia.com>2009-03-05 14:00:19 +0100
committerOswald Buddenhagen <oswald.buddenhagen@nokia.com>2009-03-05 15:26:23 +0100
commit6e118e72a0bcffa3a6c6967fd9196415063673f1 (patch)
treefc43fa6130a3a31186812f6b2dbf26eedb6bb99e /src/plugins/debugger/procinterrupt.cpp
parent445e409db75bb83e03efa7acde2de36d24958bc3 (diff)
downloadqt-creator-6e118e72a0bcffa3a6c6967fd9196415063673f1.tar.gz
process interruption improvements
rely on the inferior's pid being available. consequently, remove the bizarre findChild stuff.
Diffstat (limited to 'src/plugins/debugger/procinterrupt.cpp')
-rw-r--r--src/plugins/debugger/procinterrupt.cpp96
1 files changed, 0 insertions, 96 deletions
diff --git a/src/plugins/debugger/procinterrupt.cpp b/src/plugins/debugger/procinterrupt.cpp
index 685f83c364..3eb38bc2c6 100644
--- a/src/plugins/debugger/procinterrupt.cpp
+++ b/src/plugins/debugger/procinterrupt.cpp
@@ -32,7 +32,6 @@
#if defined(Q_OS_WIN)
#include <windows.h>
-#include <Tlhelp32.h>
using namespace Debugger::Internal;
@@ -51,28 +50,6 @@ PtrCreateRemoteThread resolveCreateRemoteThread()
return (PtrCreateRemoteThread)GetProcAddress(hLib, "CreateRemoteThread");
}
-DWORD findProcessId(DWORD parentId)
-{
- HANDLE hProcList = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
-
- PROCESSENTRY32 procEntry;
- procEntry.dwSize = sizeof(PROCESSENTRY32);
-
- DWORD procId = 0;
-
- BOOL moreProc = Process32First(hProcList, &procEntry);
- while (moreProc) {
- if (procEntry.th32ParentProcessID == parentId) {
- procId = procEntry.th32ProcessID;
- break;
- }
- moreProc = Process32Next(hProcList, &procEntry);
- }
-
- CloseHandle(hProcList);
- return procId;
-}
-
bool Debugger::Internal::interruptProcess(int pID)
{
DWORD pid = pID;
@@ -92,83 +69,17 @@ bool Debugger::Internal::interruptProcess(int pID)
return false;
}
-bool Debugger::Internal::interruptChildProcess(Q_PID parentPID)
-{
- DWORD pid = findProcessId(parentPID->dwProcessId);
- return interruptProcess(pid);
-}
-
#endif // defined(Q_OS_WIN)
#if defined(Q_OS_LINUX) || defined(Q_OS_MAC)
-#include <QtCore/QLatin1String>
-#include <QtCore/QString>
-#include <QtCore/QDir>
-#include <QtCore/QFileInfoList>
-#include <QtCore/QByteArray>
-#include <QtCore/QDebug>
-
#include <sys/types.h>
#include <signal.h>
-#include <sys/sysctl.h>
-
-
using namespace Debugger::Internal;
-/* Mac OS X
-int OPParentIDForProcessID(int pid)
- // Returns the parent process id for the given process id (pid)
-{
- const uint OPProcessValueUnknown = UINT_MAX;
- struct kinfo_proc info;
- size_t length = sizeof(struct kinfo_proc);
- int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, pid };
- if (sysctl(mib, 4, &info, &length, NULL, 0) < 0)
- return OPProcessValueUnknown;
- if (length == 0)
- return OPProcessValueUnknown;
- return info.kp_eproc.e_ppid;
-}
-*/
-
-int findParentProcess(int procId)
-{
- QFile statFile(QLatin1String("/proc/") + QString::number(procId) +
- QLatin1String("/stat"));
- if (!statFile.open(QIODevice::ReadOnly))
- return -1;
-
- QByteArray line = statFile.readLine();
- line = line.mid(line.indexOf(')') + 4);
- //qDebug() << "1: " << line;
- line = line.left(line.indexOf(' '));
- //qDebug() << "2: " << line;
-
- return QString(line).toInt();
-}
-
-int findChildProcess(int parentId)
-{
- QDir proc(QLatin1String("/proc"));
- QFileInfoList procList = proc.entryInfoList(QDir::Dirs);
- foreach (const QFileInfo &info, procList) {
- int procId = 0;
- bool ok = false;
- procId = info.baseName().toInt(&ok);
- if (!ok || !procId)
- continue;
-
- if (findParentProcess(procId) == parentId)
- return procId;
- }
-
- return -1;
-}
-
bool Debugger::Internal::interruptProcess(int pID)
{
int procId = pID;
@@ -179,11 +90,4 @@ bool Debugger::Internal::interruptProcess(int pID)
return false;
}
-bool Debugger::Internal::interruptChildProcess(Q_PID parentPID)
-{
- int procId = findChildProcess(parentPID);
- //qDebug() << "INTERRUPTING PROCESS" << procId;
- return interruptProcess(procId);
-}
-
#endif // defined(Q_OS_LINUX) || defined(Q_OS_MAC)