1 #ifndef _ide_Debuggers_GdbUtils_h_ 2 #define _ide_Debuggers_GdbUtils_h_ 3 4 #include <Core/Core.h> 5 6 namespace Upp { 7 8 class IGdbUtils { 9 public: 10 virtual ~IGdbUtils() = default; 11 12 virtual String BreakRunning(int pid) = 0; 13 }; 14 15 class GdbUtilsFactory final { 16 public: 17 One<IGdbUtils> Create(); 18 }; 19 20 #if defined(PLATFORM_WIN32) 21 22 class GdbWindowsUtils final : public IGdbUtils { 23 public: /* IGdbUtils */ 24 virtual String BreakRunning(int pid) override; 25 26 private: 27 bool Is64BitIde() const; 28 bool Is64BitProcess(HANDLE handle) const; 29 }; 30 31 #elif defined(PLATFORM_POSIX) 32 33 class GdbPosixUtils final : public IGdbUtils { 34 public: /* IGdbUtils */ 35 virtual String BreakRunning(int pid) override; 36 }; 37 38 #endif 39 40 } 41 42 #endif 43