forked from qt-creator/qt-creator
		
	
		
			
				
	
	
		
			50 lines
		
	
	
		
			1005 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1005 B
		
	
	
	
		
			C++
		
	
	
	
	
	
#pragma once
 | 
						|
 | 
						|
#include <QThread>
 | 
						|
#include <windows.h>
 | 
						|
 | 
						|
class WinDbgThread : protected QThread
 | 
						|
{
 | 
						|
    Q_OBJECT
 | 
						|
public:
 | 
						|
    WinDbgThread(QObject* parent = 0);
 | 
						|
    ~WinDbgThread();
 | 
						|
 | 
						|
    void startProcess(const QString& filename);
 | 
						|
    void attachToProcess(DWORD processId);
 | 
						|
    void continueProcess();
 | 
						|
    void pauseProcess();
 | 
						|
    void stopProcess();
 | 
						|
    const QString& processFileName() { return m_processFileName; }
 | 
						|
 | 
						|
    QObject* asQObject() { return this; }
 | 
						|
    //using QThread::isRunning;
 | 
						|
 | 
						|
signals:
 | 
						|
    void debugEventOccured(void*);
 | 
						|
 | 
						|
protected:
 | 
						|
    void run();
 | 
						|
 | 
						|
private:
 | 
						|
    void internalStartProcess();
 | 
						|
    void suspend();
 | 
						|
    void resume();
 | 
						|
 | 
						|
    enum State {
 | 
						|
        Idle,
 | 
						|
        ProcessRunning,
 | 
						|
        ProcessPaused
 | 
						|
    };
 | 
						|
 | 
						|
    void setState(State s);
 | 
						|
 | 
						|
private:
 | 
						|
    State               m_state;
 | 
						|
    QString             m_processFileName;
 | 
						|
    HANDLE              m_hThisThread;
 | 
						|
    PROCESS_INFORMATION m_pi;
 | 
						|
    bool                m_bOwnsProcess;
 | 
						|
    bool                m_bAbortEventPollingLoop;
 | 
						|
};
 |