diff --git a/src/DebugServer/Gdb/ResponsePackets/ErrorResponsePacket.hpp b/src/DebugServer/Gdb/ResponsePackets/ErrorResponsePacket.hpp index 5a604c0f..286ebf31 100644 --- a/src/DebugServer/Gdb/ResponsePackets/ErrorResponsePacket.hpp +++ b/src/DebugServer/Gdb/ResponsePackets/ErrorResponsePacket.hpp @@ -10,10 +10,8 @@ namespace Bloom::DebugServer::Gdb::ResponsePackets class ErrorResponsePacket: public ResponsePacket { public: - ErrorResponsePacket() = default; - - [[nodiscard]] std::vector getData() const override { - return {'E', '0', '1'}; - } + ErrorResponsePacket() + : ResponsePacket(std::vector{'E', '0', '1'}) + {}; }; } diff --git a/src/DebugServer/Gdb/ResponsePackets/OkResponsePacket.hpp b/src/DebugServer/Gdb/ResponsePackets/OkResponsePacket.hpp index a2c7c257..d9e8beb8 100644 --- a/src/DebugServer/Gdb/ResponsePackets/OkResponsePacket.hpp +++ b/src/DebugServer/Gdb/ResponsePackets/OkResponsePacket.hpp @@ -10,10 +10,8 @@ namespace Bloom::DebugServer::Gdb::ResponsePackets class OkResponsePacket: public ResponsePacket { public: - OkResponsePacket() = default; - - [[nodiscard]] std::vector getData() const override { - return {'O', 'K'}; - } + OkResponsePacket() + : ResponsePacket(std::vector{'O', 'K'}) + {} }; } diff --git a/src/DebugServer/Gdb/ResponsePackets/ResponsePacket.hpp b/src/DebugServer/Gdb/ResponsePackets/ResponsePacket.hpp index 2efeb816..36d0dd3f 100644 --- a/src/DebugServer/Gdb/ResponsePackets/ResponsePacket.hpp +++ b/src/DebugServer/Gdb/ResponsePackets/ResponsePacket.hpp @@ -1,7 +1,7 @@ #pragma once #include -#include +#include #include "src/DebugServer/Gdb/Packet.hpp" diff --git a/src/DebugServer/Gdb/ResponsePackets/SupportedFeaturesResponse.cpp b/src/DebugServer/Gdb/ResponsePackets/SupportedFeaturesResponse.cpp index 40b386b8..939fe46f 100644 --- a/src/DebugServer/Gdb/ResponsePackets/SupportedFeaturesResponse.cpp +++ b/src/DebugServer/Gdb/ResponsePackets/SupportedFeaturesResponse.cpp @@ -2,12 +2,16 @@ namespace Bloom::DebugServer::Gdb::ResponsePackets { - std::vector SupportedFeaturesResponse::getData() const { - std::string output = "qSupported:"; - auto gdbFeatureMapping = getGdbFeatureToNameMapping(); + SupportedFeaturesResponse::SupportedFeaturesResponse( + const std::set>>& supportedFeatures + ) + : supportedFeatures(supportedFeatures) + { + auto output = std::string("qSupported:"); + static const auto gdbFeatureMapping = getGdbFeatureToNameMapping(); for (const auto& supportedFeature : this->supportedFeatures) { - auto featureString = gdbFeatureMapping.valueAt(supportedFeature.first); + const auto featureString = gdbFeatureMapping.valueAt(supportedFeature.first); if (featureString.has_value()) { if (supportedFeature.second.has_value()) { @@ -20,6 +24,6 @@ namespace Bloom::DebugServer::Gdb::ResponsePackets } } - return std::vector(output.begin(), output.end()); + this->data = {output.begin(), output.end()}; } } diff --git a/src/DebugServer/Gdb/ResponsePackets/SupportedFeaturesResponse.hpp b/src/DebugServer/Gdb/ResponsePackets/SupportedFeaturesResponse.hpp index ead21ba2..f8e08e25 100644 --- a/src/DebugServer/Gdb/ResponsePackets/SupportedFeaturesResponse.hpp +++ b/src/DebugServer/Gdb/ResponsePackets/SupportedFeaturesResponse.hpp @@ -4,7 +4,8 @@ #include #include "ResponsePacket.hpp" -#include "../Feature.hpp" + +#include "src/DebugServer/Gdb/Feature.hpp" namespace Bloom::DebugServer::Gdb::ResponsePackets { @@ -14,13 +15,11 @@ namespace Bloom::DebugServer::Gdb::ResponsePackets class SupportedFeaturesResponse: public ResponsePacket { public: - SupportedFeaturesResponse() = default; - explicit SupportedFeaturesResponse(std::set>> supportedFeatures) - : supportedFeatures(std::move(supportedFeatures)) {}; + explicit SupportedFeaturesResponse( + const std::set>>& supportedFeatures + ); - [[nodiscard]] std::vector getData() const override; - - protected: + private: std::set>> supportedFeatures; }; } diff --git a/src/DebugServer/Gdb/ResponsePackets/TargetStopped.hpp b/src/DebugServer/Gdb/ResponsePackets/TargetStopped.hpp index 9e1d97da..8108732e 100644 --- a/src/DebugServer/Gdb/ResponsePackets/TargetStopped.hpp +++ b/src/DebugServer/Gdb/ResponsePackets/TargetStopped.hpp @@ -1,9 +1,9 @@ #pragma once #include "ResponsePacket.hpp" -#include "../Signal.hpp" -#include "../StopReason.hpp" -#include "src/Targets/TargetRegister.hpp" + +#include "src/DebugServer/Gdb/Signal.hpp" +#include "src/DebugServer/Gdb/StopReason.hpp" namespace Bloom::DebugServer::Gdb::ResponsePackets { @@ -17,21 +17,22 @@ namespace Bloom::DebugServer::Gdb::ResponsePackets Signal signal; std::optional stopReason; - explicit TargetStopped(Signal signal): signal(signal) {} - - [[nodiscard]] std::vector getData() const override { - std::string output = "T" + Packet::toHex(std::vector({static_cast(this->signal)})); + explicit TargetStopped(Signal signal, const std::optional& stopReason = std::nullopt) + : signal(signal) + , stopReason(stopReason) + { + std::string packetData = "T" + Packet::toHex(std::vector({static_cast(this->signal)})); if (this->stopReason.has_value()) { - auto stopReasonMapping = getStopReasonToNameMapping(); - auto stopReasonName = stopReasonMapping.valueAt(this->stopReason.value()); + static const auto stopReasonMapping = getStopReasonToNameMapping(); + const auto stopReasonName = stopReasonMapping.valueAt(this->stopReason.value()); if (stopReasonName.has_value()) { - output += stopReasonName.value() + ":;"; + packetData += stopReasonName.value() + ":;"; } } - return std::vector(output.begin(), output.end()); + this->data = {packetData.begin(), packetData.end()}; } }; }