summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-05-13 23:48:47 +0200
committerAmlal El Mahrouss <amlal@nekernel.org>2025-05-13 23:48:47 +0200
commite1ffe04db570e63bd3c855fc4361ed8de6b5f435 (patch)
treef0a52f092a0af8a51fe4fe46709757b1702bd27d
parent2be9a150bb742987330c6de4dac23d4d2efb1ebe (diff)
feat(LibDebugger): expand KDBG's protocol, by reworking the packet
structure. Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
-rw-r--r--dev/LibDebugger/NeKernelContract.h25
-rw-r--r--tests/example.cc4
2 files changed, 17 insertions, 12 deletions
diff --git a/dev/LibDebugger/NeKernelContract.h b/dev/LibDebugger/NeKernelContract.h
index 8e54ab2..e645db8 100644
--- a/dev/LibDebugger/NeKernelContract.h
+++ b/dev/LibDebugger/NeKernelContract.h
@@ -29,30 +29,35 @@ namespace LibDebugger::NeKernel {
class NeKernelContract;
namespace Detail {
- class NeKernelPortHeader;
+ class NeKernelDebugHeader;
inline constexpr size_t kDebugTypeLen = 256U;
typedef char rt_debug_type[kDebugTypeLen];
- class NeKernelPortHeader final {
+ class NeKernelDebugHeader final {
public:
- int16_t fPort;
- int16_t fPortBsy;
+ int16_t fPort;
+ int16_t fPortKind;
+ rt_debug_type fPortBlob;
};
} // namespace Detail
class NeKernelContract : public DebuggerContract {
public:
NeKernelContract();
- virtual ~NeKernelContract();
+ ~NeKernelContract() override;
+
+ public:
+ NeKernelContract& operator=(const NeKernelContract&) = default;
+ NeKernelContract(const NeKernelContract&) = default;
// Override additional methods from DebuggerContract
- virtual bool Attach(std::string path, std::string argv, ProcessID& pid) noexcept override;
- virtual bool Breakpoint(std::string symbol) noexcept override;
- virtual bool Break() noexcept override;
- virtual bool Continue() noexcept override;
- virtual bool Detach() noexcept override;
+ bool Attach(std::string path, std::string argv, ProcessID& pid) noexcept override;
+ bool Breakpoint(std::string symbol) noexcept override;
+ bool Break() noexcept override;
+ bool Continue() noexcept override;
+ bool Detach() noexcept override;
private:
std::string m_ip_address;
diff --git a/tests/example.cc b/tests/example.cc
index 83e664a..2e2a364 100644
--- a/tests/example.cc
+++ b/tests/example.cc
@@ -1,4 +1,4 @@
-#define AppMain int __ImageStart
+#define AppMain __ImageStart
#warning TestCase #1
int bar() {
@@ -11,6 +11,6 @@ int foo() {
return bar();
}
-AppMain() {
+int AppMain() {
return foo();
}