summaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2026-03-26 17:02:13 +0100
committerAmlal El Mahrouss <amlal@nekernel.org>2026-03-26 17:02:13 +0100
commitf64c7647ac839aed48bf45c7a44cb73d5795a149 (patch)
treed6422a95e27b929872051f1856dd8214789f73c0 /include
parent9b85b2810a64fb512d3ab35b8965db3071618223 (diff)
[FEAT] Frontend: Add `try` syntax, frontend nsan (Nectar Sanitizer) checks added. And installer updates.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'include')
-rw-r--r--include/DebuggerKit/IDebugger.h11
-rw-r--r--include/GenericsLibrary/std.nhh3
2 files changed, 9 insertions, 5 deletions
diff --git a/include/DebuggerKit/IDebugger.h b/include/DebuggerKit/IDebugger.h
index 81fddc5..0ada42c 100644
--- a/include/DebuggerKit/IDebugger.h
+++ b/include/DebuggerKit/IDebugger.h
@@ -29,11 +29,12 @@ class IDebugger {
IDebugger(const IDebugger&) = default;
public:
- virtual bool Attach(const CompilerKit::STLString& path, const CompilerKit::STLString& argv, ProcessID& pid) noexcept = 0;
- virtual bool BreakAt(const CompilerKit::STLString& symbol) noexcept = 0;
- virtual bool Break() noexcept = 0;
- virtual bool Continue() noexcept = 0;
- virtual bool Detach() noexcept = 0;
+ virtual bool Attach(const CompilerKit::STLString& path, const CompilerKit::STLString& argv,
+ ProcessID& pid) noexcept = 0;
+ virtual bool BreakAt(const CompilerKit::STLString& symbol) noexcept = 0;
+ virtual bool Break() noexcept = 0;
+ virtual bool Continue() noexcept = 0;
+ virtual bool Detach() noexcept = 0;
using BreakpointMap = std::unordered_map<uintptr_t, uintptr_t>;
diff --git a/include/GenericsLibrary/std.nhh b/include/GenericsLibrary/std.nhh
index 677586e..d23779c 100644
--- a/include/GenericsLibrary/std.nhh
+++ b/include/GenericsLibrary/std.nhh
@@ -9,6 +9,9 @@
extern __nrt_alloc;
extern __nrt_free;
+/// Installs an error canary to catch any exceptions coming from C++ or Nectar.
+#define try if (__nsan_install_error_canary() :== 0):
+
//@ Standard free
let free_bytes(let ptr)
{