11#include " xeus-cpp/xdebugger.hpp"
22
3- #include < arpa/inet.h> // For inet_pton(), htons()
4- #include < chrono> // For std::chrono (used in sleep_for)
3+ #include < arpa/inet.h>
4+ #include < chrono>
55#include < cstdlib>
66#include < fcntl.h>
77#include < fstream>
88#include < iostream>
9- #include < netinet/in.h> // For sockaddr_in, AF_INET
10- #include < sys/socket.h> // For socket(), connect(), send(), recv()
9+ #include < netinet/in.h>
10+ #include < sys/socket.h>
1111#include < sys/types.h>
1212#include < sys/wait.h>
1313#include < thread>
1414#include < unistd.h>
1515
1616#include " nlohmann/json.hpp"
1717#include " xdebuglldb_client.hpp"
18+ #include " xeus-cpp/xinterpreter.hpp"
1819#include " xeus-zmq/xmiddleware.hpp"
1920#include " xeus/xsystem.hpp"
2021#include " xinternal_utils.hpp"
@@ -56,8 +57,6 @@ namespace xcpp
5657 std::bind (&debugger::configuration_done_request, this , _1),
5758 true
5859 );
59-
60- std::cout << " Debugger initialized with config: " << m_debugger_config.dump () << std::endl;
6160 }
6261
6362 debugger::~debugger ()
@@ -70,6 +69,7 @@ namespace xcpp
7069 bool debugger::start_lldb ()
7170 {
7271 std::cout << " debugger::start_lldb" << std::endl;
72+ jit_process_pid = xcpp::interpreter::get_current_pid ();
7373
7474 // Find a free port for LLDB-DAP
7575 m_lldb_port = xeus::find_free_port (100 , 9999 , 10099 );
@@ -263,23 +263,6 @@ namespace xcpp
263263 );
264264 client.detach ();
265265
266- // Now test direct TCP communication
267- nl::json init_request = {
268- {" seq" , 1 },
269- {" type" , " request" },
270- {" command" , " initialize" },
271- {" arguments" ,
272- {{" adapterID" , " xcpp17" },
273- {" clientID" , " jupyterlab" },
274- {" clientName" , " JupyterLab" },
275- {" columnsStartAt1" , true },
276- {" linesStartAt1" , true },
277- {" locale" , " en" },
278- {" pathFormat" , " path" },
279- {" supportsRunInTerminalRequest" , true },
280- {" supportsVariablePaging" , true },
281- {" supportsVariableType" , true }}}
282- };
283266 // Also test ZMQ path
284267 send_recv_request (" REQ" );
285268
@@ -295,42 +278,8 @@ namespace xcpp
295278 // Dummy implementations for other methods
296279 nl::json debugger::inspect_variables_request (const nl::json& message)
297280 {
298- // Placeholder DAP response
299- // std::cout << "Sending setBreakpoints request..." << std::endl;
300- // nl::json breakpoint_request = {
301- // {"seq", 3},
302- // {"type", "request"},
303- // {"command", "setBreakpoints"},
304- // {"arguments", {
305- // {"source", {
306- // {"name", "input_line_1"},
307- // {"path", "/Users/abhinavkumar/Desktop/Coding/Testing/input_line_1"}
308- // }},
309- // {"breakpoints", {{{"line", 8}}}},
310- // {"lines", {8}},
311- // {"sourceModified", false}
312- // }}
313- // };
314- // nl::json breakpoint_reply = forward_message(breakpoint_request);
315- // std::cout << "Breakpoint reply: " << breakpoint_reply.dump() << std::endl;
316- // nl::json config_done_request = {
317- // {"seq", 4},
318- // {"type", "request"},
319- // {"command", "configurationDone"}
320- // };
321- // nl::json config_reply = forward_message(config_done_request);
322- // std::cout << "Configuration done reply: " << config_reply.dump() << std::endl;
323-
324- // nl::json run_request = {
325- // {"seq", 5},
326- // {"type", "request"},
327- // {"command", "continue"},
328- // {"arguments", nl::json::object()}
329- // };
330- // nl::json run_reply = forward_message(run_request);
331- // std::cout << "Continue reply: " << run_reply.dump() << std::endl;
332-
333- std::cout << " inspect_variables_request not implemented" << std::endl;
281+ std::cout << " [debugger::inspect_variables_request] inspect_variables_request not implemented"
282+ << std::endl;
334283 std::cout << message.dump () << std::endl;
335284 nl::json reply = {
336285 {" type" , " response" },
@@ -339,16 +288,12 @@ namespace xcpp
339288 {" command" , message[" command" ]},
340289 {" body" ,
341290 {{" variables" ,
342- {{{" name" , " a" },
343- {" value" , " 100" },
344- {" type" , " int" },
345- {" evaluateName" , " a" },
346- {" variablesReference" , 0 }},
347- {{" name" , " b" },
348- {" value" , " 1000" },
349- {" type" , " int" },
350- {" evaluateName" , " b" },
351- {" variablesReference" , 0 }}}}}}
291+ {{{" name" , " a" }, {" value" , " 100" }, {" type" , " int" }, {" evaluateName" , " a" }, {" variablesReference" , 0 }},
292+ {{" name" , " b" },
293+ {" value" , " 1000" },
294+ {" type" , " int" },
295+ {" evaluateName" , " b" },
296+ {" variablesReference" , 0 }}}}}}
352297 };
353298 return reply;
354299 }
@@ -372,17 +317,16 @@ namespace xcpp
372317 {
373318 // Placeholder DAP response
374319 std::cout << " debugger::attach_request" << std::endl;
320+ std::cout << " Message: " << message.dump () << std::endl;
375321 nl::json attach_request = {
376322 {" seq" , 2 },
377323 {" type" , " request" },
378324 {" command" , " attach" },
379325 {" arguments" , {
380- {" pid" , message[" arguments" ].value (" pid" , 0 )},
381- {" program" , message[" arguments" ].value (" program" , " " )},
382- {" stopOnEntry" , message[" arguments" ].value (" stopOnEntry" , false )},
383- {" initCommands" , message[" arguments" ].value (" initCommands" , nl::json::array ())}
326+ {" pid" , jit_process_pid}
384327 }}
385328 };
329+ std::cout << " Sending attach request: " << attach_request.dump () << std::endl;
386330 nl::json reply = forward_message (attach_request);
387331 std::cout << " Attach request sent: " << reply.dump () << std::endl;
388332 return reply;
0 commit comments