summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2025-02-08 10:14:05 +0100
committerAmlal El Mahrouss <amlal.elmahrouss@icloud.com>2025-02-08 10:14:05 +0100
commit0350589847a0a5bbce5556a62ea5f5df7de29641 (patch)
tree5bedc372d3f71beaca30e57ef931420c8fae3de4
parent75b1a419fc13d9c3e1c35665ce24434d4c1ab004 (diff)
ADD: Moved Debugger into LibCompiler.
Signed-off-by: Amlal El Mahrouss <amlal.elmahrouss@icloud.com>
-rw-r--r--dev/LibCompiler/src/DebuggerPOSIX.cc66
-rw-r--r--tools/dbg.cc67
-rw-r--r--tools/dbg.json12
-rwxr-xr-xtools/dbg.sh2
4 files changed, 91 insertions, 56 deletions
diff --git a/dev/LibCompiler/src/DebuggerPOSIX.cc b/dev/LibCompiler/src/DebuggerPOSIX.cc
new file mode 100644
index 0000000..a5e663e
--- /dev/null
+++ b/dev/LibCompiler/src/DebuggerPOSIX.cc
@@ -0,0 +1,66 @@
+/***
+ (C) 2025 Amlal El Mahrouss
+ */
+
+#include <LibCompiler/Defines.h>
+#include <LibDebugger/IDebugger.h>
+
+LIBCOMPILER_MODULE(DebuggerPOSIX)
+{
+ LibDebugger::IDebugger debugger;
+ pid_t pid = 0L;
+
+ if (argc >= 3 && std::string(argv[1]) == "-p" &&
+ argv[2] != nullptr)
+ {
+ pid = std::stoi(argv[2]);
+ debugger.Attach(pid);
+ }
+
+ while (YES)
+ {
+ std::string cmd;
+ std::getline(std::cin, cmd);
+
+ if (cmd == "c" ||
+ cmd == "cont")
+ debugger.ContinueExecution();
+
+ if (cmd == "d" ||
+ cmd == "detach")
+ debugger.Detach();
+
+ if (cmd == "attach")
+ {
+ std::cout << "[?] Enter a PID to attach on: ";
+
+ std::getline(std::cin, cmd);
+ pid = std::stoi(cmd.c_str());
+
+ debugger.Attach(pid);
+ }
+
+ if (cmd == "exit")
+ {
+ if (pid > 0)
+ debugger.Detach();
+
+ break;
+ }
+
+ if (cmd == "break" ||
+ cmd == "bp")
+ {
+ std::cout << "[?] Enter an address to add a breakpoint on: ";
+
+ std::getline(std::cin, cmd);
+
+ LibDebugger::VmAddress breakpoint_addr = reinterpret_cast<LibDebugger::VmAddress>(std::stoul(cmd.c_str(), nullptr, 16));
+
+ if (breakpoint_addr)
+ debugger.SetBreakpoint(breakpoint_addr);
+ }
+ }
+
+ return 0;
+}
diff --git a/tools/dbg.cc b/tools/dbg.cc
index 987ea04..1b4396b 100644
--- a/tools/dbg.cc
+++ b/tools/dbg.cc
@@ -1,63 +1,22 @@
-/***
- (C) 2025 Amlal El Mahrouss
- */
+/* -------------------------------------------
-#include <LibDebugger/IDebugger.h>
+ Copyright (C) 2024 Amlal EL Mahrouss, all rights reserved
-int main(int argc, char* argv[])
-{
- LibDebugger::IDebugger debugger;
- pid_t pid = 0L;
-
- if (argc >= 3 && std::string(argv[1]) == "-p" &&
- argv[2] != nullptr)
- {
- pid = std::stoi(argv[2]);
- debugger.Attach(pid);
- }
-
- while (true)
- {
- std::string cmd;
- std::getline(std::cin, cmd);
-
- if (cmd == "c" ||
- cmd == "cont")
- debugger.ContinueExecution();
+------------------------------------------- */
- if (cmd == "d" ||
- cmd == "detach")
- debugger.Detach();
+#include <LibCompiler/Defines.h>
- if (cmd == "attach")
- {
- std::cout << "[?] Enter a PID to attach on: ";
+/// @file ld64.cxx
+/// @brief NE Linker for AE objects.
- std::getline(std::cin, cmd);
- pid = std::stoi(cmd.c_str());
+LC_IMPORT_C int DebuggerPOSIX(int argc, char const* argv[]);
- debugger.Attach(pid);
- }
-
- if (cmd == "exit")
- {
- debugger.Detach();
- break;
- }
-
- if (cmd == "break" ||
- cmd == "bp")
- {
- std::cout << "[?] Enter an address to add a breakpoint on: ";
-
- std::getline(std::cin, cmd);
-
- LibDebugger::VmAddress breakpoint_addr = reinterpret_cast<LibDebugger::VmAddress>(std::stoul(cmd.c_str(), nullptr, 16));
-
- if (breakpoint_addr)
- debugger.SetBreakpoint(breakpoint_addr);
- }
+int main(int argc, char const* argv[])
+{
+ if (argc < 1)
+ {
+ return 1;
}
- return 0;
+ return DebuggerPOSIX(argc, argv);
}
diff --git a/tools/dbg.json b/tools/dbg.json
new file mode 100644
index 0000000..a6039ec
--- /dev/null
+++ b/tools/dbg.json
@@ -0,0 +1,12 @@
+{
+ "compiler_path": "g++",
+ "compiler_std": "c++20",
+ "headers_path": ["../dev/LibCompiler", "../dev/", "../dev/LibCompiler/src/Detail"],
+ "sources_path": ["dbg.cc"],
+ "output_name": "dbg",
+ "compiler_flags": ["-L/usr/lib", "-lCCDyn"],
+ "cpp_macros": [
+ "__DBG__=202401",
+ "kDistReleaseBranch=$(git rev-parse --abbrev-ref HEAD)-$(uuidgen)"
+ ]
+}
diff --git a/tools/dbg.sh b/tools/dbg.sh
deleted file mode 100755
index 6689d13..0000000
--- a/tools/dbg.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-g++ dbg.cc -std=c++20 -I../dev -o dbg