summaryrefslogtreecommitdiffhomepage
path: root/dev/LibDebugger/DebuggerContract.h
diff options
context:
space:
mode:
Diffstat (limited to 'dev/LibDebugger/DebuggerContract.h')
-rw-r--r--dev/LibDebugger/DebuggerContract.h77
1 files changed, 36 insertions, 41 deletions
diff --git a/dev/LibDebugger/DebuggerContract.h b/dev/LibDebugger/DebuggerContract.h
index 0ef88a2..0f4bc10 100644
--- a/dev/LibDebugger/DebuggerContract.h
+++ b/dev/LibDebugger/DebuggerContract.h
@@ -1,49 +1,44 @@
/***
- (C) 2025 Amlal El Mahrouss
+ (C) 2025 Amlal El Mahrouss
*/
#pragma once
#include <cstdint>
-#include <unordered_map>
#include <string>
+#include <unordered_map>
+
+namespace LibDebugger {
+class DebuggerContract;
+
+/// \brief Process ID
+typedef uint64_t ProcessID;
+
+/// \brief Address type, a la BSD.
+typedef char* CAddress;
+
+/// \brief Debugger contract class in C++, as per the design states.
+/// \author Amlal El Mahrouss
+class DebuggerContract {
+ public:
+ explicit DebuggerContract() = default;
+ virtual ~DebuggerContract() = default;
+
+ public:
+ DebuggerContract& operator=(const DebuggerContract&) = default;
+ DebuggerContract(const DebuggerContract&) = default;
+
+ public:
+ virtual bool Attach(std::string path, std::string argv, ProcessID& pid) noexcept = 0;
+ virtual bool Breakpoint(std::string symbol) noexcept = 0;
+ virtual bool Break() noexcept = 0;
+ virtual bool Continue() noexcept = 0;
+ virtual bool Detach() noexcept = 0;
+
+ virtual std::unordered_map<uintptr_t, uintptr_t>& Get() { return m_breakpoints; }
-namespace LibDebugger
-{
- class DebuggerContract;
-
- /// \brief Process ID
- typedef uint64_t ProcessID;
-
- /// \brief Address type, a la BSD.
- typedef char* CAddress;
-
- /// \brief Debugger contract class in C++, as per the design states.
- /// \author Amlal El Mahrouss
- class DebuggerContract
- {
- public:
- explicit DebuggerContract() = default;
- virtual ~DebuggerContract() = default;
-
- public:
- DebuggerContract& operator=(const DebuggerContract&) = default;
- DebuggerContract(const DebuggerContract&) = default;
-
- public:
- virtual bool Attach(std::string path, std::string argv, ProcessID& pid) noexcept = 0;
- virtual bool Breakpoint(std::string symbol) noexcept = 0;
- virtual bool Break() noexcept = 0;
- virtual bool Continue() noexcept = 0;
- virtual bool Detach() noexcept = 0;
-
- virtual std::unordered_map<uintptr_t, uintptr_t>& Get()
- {
- return m_breakpoints;
- }
-
- protected:
- ProcessID m_pid;
- std::unordered_map<uintptr_t, uintptr_t> m_breakpoints;
- };
-} // namespace LibDebugger
+ protected:
+ ProcessID m_pid;
+ std::unordered_map<uintptr_t, uintptr_t> m_breakpoints;
+};
+} // namespace LibDebugger