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