diff --git a/stratosphere/dmnt.gen2/source/dmnt2_gdb_server_impl.cpp b/stratosphere/dmnt.gen2/source/dmnt2_gdb_server_impl.cpp index ddb0d8fbc..757a237a8 100644 --- a/stratosphere/dmnt.gen2/source/dmnt2_gdb_server_impl.cpp +++ b/stratosphere/dmnt.gen2/source/dmnt2_gdb_server_impl.cpp @@ -1538,13 +1538,18 @@ namespace ams::dmnt { } void GdbServerImpl::Q() { - if (false) { - /* TODO: QStartNoAckMode? */ + if (ParsePrefix(m_receive_packet, "QStartNoAckMode")) { + this->QStartNoAckMode(); } else { AMS_DMNT2_GDB_LOG_DEBUG("Not Implemented Q: %s\n", m_receive_packet); } } + void GdbServerImpl::QStartNoAckMode() { + m_packet_io.SetNoAck(); + AppendReplyOk(m_reply_cur, m_reply_end); + } + void GdbServerImpl::T() { if (const char *dot = std::strchr(m_receive_packet, '.'); dot != nullptr) { const u64 thread_id = DecodeHex(dot + 1); @@ -1919,6 +1924,7 @@ namespace ams::dmnt { R_SUCCEED(); } + void GdbServerImpl::q() { if (ParsePrefix(m_receive_packet, "qAttached:")) { this->qAttached(); @@ -2145,6 +2151,7 @@ namespace ams::dmnt { AppendReplyFormat(m_reply_cur, m_reply_end, ";swbreak+"); AppendReplyFormat(m_reply_cur, m_reply_end, ";hwbreak+"); AppendReplyFormat(m_reply_cur, m_reply_end, ";vContSupported+"); + AppendReplyFormat(m_reply_cur, m_reply_end, ";QStartNoAckMode+"); } void GdbServerImpl::qXfer() { diff --git a/stratosphere/dmnt.gen2/source/dmnt2_gdb_server_impl.hpp b/stratosphere/dmnt.gen2/source/dmnt2_gdb_server_impl.hpp index 5aca349e5..e0648cd1d 100644 --- a/stratosphere/dmnt.gen2/source/dmnt2_gdb_server_impl.hpp +++ b/stratosphere/dmnt.gen2/source/dmnt2_gdb_server_impl.hpp @@ -77,6 +77,8 @@ namespace ams::dmnt { void Q(); + void QStartNoAckMode(); + void T(); void Z(); @@ -115,4 +117,4 @@ namespace ams::dmnt { Result ParseVCont(char * const token, u64 *thread_ids, u8 *continue_modes, s32 num_threads, DebugProcess::ContinueMode &default_continue_mode); }; -} \ No newline at end of file +}