diff options
| author | 😄 Amlal El Mahrouss <amlal@nekernel.org> | 2026-03-25 08:36:02 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-03-25 08:36:02 +0100 |
| commit | f83660dd742b3f1706a80b574cd9038474eed9ba (patch) | |
| tree | 7d81b675fe2cb03d2e263eaa4002562188dc058f /include/DebuggerKit/NeSystem.h | |
| parent | 3e6fcda61e87f61fba547bed1eb239981966cb68 (diff) | |
| parent | 9b7dbb3e5c131d84730b88c4fc493665c74613fd (diff) | |
Merge pull request #80 from ne-foss-org/breaking-changes-debuggerkit
[FEAT] Refactor DebuggerKit design (BREAKING API CHANGES)
Diffstat (limited to 'include/DebuggerKit/NeSystem.h')
| -rw-r--r-- | include/DebuggerKit/NeSystem.h | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/include/DebuggerKit/NeSystem.h b/include/DebuggerKit/NeSystem.h new file mode 100644 index 0000000..299815d --- /dev/null +++ b/include/DebuggerKit/NeSystem.h @@ -0,0 +1,50 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright 2024-2026, Amlal El Mahrouss (amlal@nekernel.org) +// Licensed under the Apache License, Version 2.0 (See accompanying +// file LICENSE or copy at http://www.apache.org/licenses/LICENSE-2.0) +// Official repository: https://github.com/ne-foss-org/nectar + +#ifndef DK_NEKERNEL_CONTRACT_H +#define DK_NEKERNEL_CONTRACT_H + +/// @brief NeKernel Debugging Protocol +/// @author Amlal El Mahrouss + +#ifdef DK_NEKERNEL_DEBUGGER + +#include <CompilerKit/Detail/Config.h> +#include <DebuggerKit/IDebugger.h> + +namespace DebuggerKit::NeKernel { +class NeSystemDebugger; + +/// =========================================================== /// +/// \brief NeKernel Debugger Contract +/// \author Amlal El Mahrouss +/// =========================================================== /// +class NeSystemDebugger final DK_DEBUGGER_CONTRACT { + public: + NeSystemDebugger(); + virtual ~NeSystemDebugger() override; + + public: + NeSystemDebugger& operator=(const NeSystemDebugger&) = default; + NeSystemDebugger(const NeSystemDebugger&) = default; + + public: + bool Attach(CompilerKit::STLString path, CompilerKit::STLString arg_v, + ProcessID& pid) noexcept override; + bool BreakAt(CompilerKit::STLString symbol) noexcept override; + bool Break() noexcept override; + bool Continue() noexcept override; + bool Detach() noexcept override; + + private: + CompilerKit::STLString m_kernel_path{}; + Detail::dk_socket_type m_socket{0}; +}; +} // namespace DebuggerKit::NeKernel + +#endif // ifdef DK_NEKERNEL_DEBUGGER + +#endif // DK_NEKERNEL_CONTRACT_H |
