Dap Interface with Spidermonkey debug

Spidermonkey provide a mechanics to debug all comportaments and real
from a different place with JS code this allow us to reuse the current
scriptinterface but addind the new Debugger object definition only for
debugging without change any code from other place like GUI &
simulation.

Debugger Adapter Interface is a protocol that commons IDE implement to
being able for debugging, the concept is to provide sockets connections
with c++ but the Dap implementation in JS that allow us to extend for
more Request / Events that DAP provide.

Because Dap Interface its implemented with JS we need to handle message
in the main thread so we are calling in the main loop before GUI
messages
This commit is contained in:
trompetin17
2025-05-29 21:55:50 -05:00
parent 91105657d9
commit 678a33c100
8 changed files with 665 additions and 1 deletions
+8
View File
@@ -772,6 +772,14 @@ extern_lib_defs = {
end
end,
},
sockets = {
link_settings = function()
add_default_links({
win_names = { "ws2_32" },
no_delayload = 1,
})
end,
}
}
+18
View File
@@ -56,6 +56,7 @@ newoption { category = "Pyrogenesis", trigger = "with-system-nvtt", description
newoption { category = "Pyrogenesis", trigger = "with-valgrind", description = "Enable Valgrind support (non-Windows only)" }
newoption { category = "Pyrogenesis", trigger = "without-audio", description = "Disable use of OpenAL/Ogg/Vorbis APIs" }
newoption { category = "Pyrogenesis", trigger = "without-atlas", description = "Disable Atlas scenario/map editor and ActorEditor" }
newoption { category = "Pyrogenesis", trigger = "without-dap-interface", description = "Disable Dap interface project" }
newoption { category = "Pyrogenesis", trigger = "without-lobby", description = "Disable the use of gloox and the multiplayer lobby" }
newoption { category = "Pyrogenesis", trigger = "without-miniupnpc", description = "Disable use of miniupnpc for port forwarding" }
newoption { category = "Pyrogenesis", trigger = "without-nvtt", description = "Disable use of NVTT" }
@@ -281,6 +282,10 @@ function project_set_build_flags()
defines { "CONFIG2_MINIUPNPC=0" }
end
if _OPTIONS["without-dap-interface"] then
defines { "CONFIG2_DAP_INTERFACE=0" }
end
-- various platform-specific build flags
if os.istarget("windows") then
@@ -709,6 +714,19 @@ function setup_all_libs ()
}
setup_static_lib_project("rlinterface", source_dirs, extern_libs, { no_pch = 1 })
if not _OPTIONS["without-dap-interface"] then
source_dirs = {
"dapinterface",
}
extern_libs = {
"boost", -- dragged in via simulation.h and scriptinterface.h
"fmt",
"spidermonkey",
"sockets"
}
setup_static_lib_project("dapinterface", source_dirs, extern_libs, { no_pch = 1 })
end
source_dirs = {
"third_party/tinygettext/src",
}