From 2aa240a6805067b429448ec865e4d8f815c673a5 Mon Sep 17 00:00:00 2001 From: Nav Date: Thu, 31 Mar 2022 21:52:46 +0100 Subject: [PATCH] Renamed GdbRsp directory to Gdb --- CMakeLists.txt | 38 +++++++++--------- src/DebugServer/DebugServerComponent.cpp | 2 +- .../{GdbRsp => Gdb}/AvrGdb/AvrGdbRsp.cpp | 0 .../{GdbRsp => Gdb}/AvrGdb/AvrGdbRsp.hpp | 2 +- .../AbstractMemoryAccessPacket.cpp | 6 +-- .../AbstractMemoryAccessPacket.hpp | 2 +- .../AvrGdb/CommandPackets/ReadMemory.cpp | 4 +- .../AvrGdb/CommandPackets/ReadMemory.hpp | 0 .../AvrGdb/CommandPackets/WriteMemory.cpp | 4 +- .../AvrGdb/CommandPackets/WriteMemory.hpp | 0 .../AvrGdb/TargetDescriptor.cpp | 0 .../AvrGdb/TargetDescriptor.hpp | 2 +- .../{GdbRsp => Gdb}/BreakpointType.hpp | 0 .../CommandPackets/CommandPacket.cpp | 10 ++--- .../CommandPackets/CommandPacket.hpp | 4 +- .../CommandPackets/ContinueExecution.cpp | 2 +- .../CommandPackets/ContinueExecution.hpp | 0 .../CommandPackets/InterruptExecution.cpp | 6 +-- .../CommandPackets/InterruptExecution.hpp | 0 .../CommandPackets/ReadRegisters.cpp | 4 +- .../CommandPackets/ReadRegisters.hpp | 2 +- .../CommandPackets/RemoveBreakpoint.cpp | 4 +- .../CommandPackets/RemoveBreakpoint.hpp | 2 +- .../CommandPackets/SetBreakpoint.cpp | 4 +- .../CommandPackets/SetBreakpoint.hpp | 2 +- .../CommandPackets/StepExecution.cpp | 2 +- .../CommandPackets/StepExecution.hpp | 0 .../CommandPackets/SupportedFeaturesQuery.cpp | 8 ++-- .../CommandPackets/SupportedFeaturesQuery.hpp | 0 .../CommandPackets/WriteRegister.cpp | 6 +-- .../CommandPackets/WriteRegister.hpp | 0 .../{GdbRsp => Gdb}/Connection.cpp | 0 .../{GdbRsp => Gdb}/Connection.hpp | 4 +- .../{GdbRsp => Gdb}/DebugSession.cpp | 0 .../{GdbRsp => Gdb}/DebugSession.hpp | 0 .../Exceptions/ClientCommunicationError.hpp | 0 .../Exceptions/ClientDisconnected.hpp | 0 .../Exceptions/ClientNotSupported.hpp | 0 .../Exceptions/DebugSessionAborted.hpp | 0 src/DebugServer/{GdbRsp => Gdb}/Feature.hpp | 0 .../{GdbRsp => Gdb}/GdbDebugServerConfig.cpp | 0 .../{GdbRsp => Gdb}/GdbDebugServerConfig.hpp | 0 .../{GdbRsp => Gdb}/GdbRspDebugServer.cpp | 0 .../{GdbRsp => Gdb}/GdbRspDebugServer.hpp | 0 src/DebugServer/{GdbRsp => Gdb}/Packet.hpp | 0 .../{GdbRsp => Gdb}/RegisterDescriptor.hpp | 0 .../ResponsePackets/ErrorResponsePacket.hpp | 0 .../ResponsePackets/OkResponsePacket.hpp | 0 .../ResponsePackets/ResponsePacket.hpp | 2 +- .../SupportedFeaturesResponse.cpp | 0 .../SupportedFeaturesResponse.hpp | 0 .../ResponsePackets/TargetStopped.hpp | 0 src/DebugServer/{GdbRsp => Gdb}/Signal.hpp | 0 .../{GdbRsp => Gdb}/StopReason.hpp | 0 .../{GdbRsp => Gdb}/TargetDescriptor.hpp | 0 src/DebugServer/README.md | 6 +-- .../Images/curiosity-nano-700-160.png | Bin 0 -> 29511 bytes 57 files changed, 64 insertions(+), 64 deletions(-) rename src/DebugServer/{GdbRsp => Gdb}/AvrGdb/AvrGdbRsp.cpp (100%) rename src/DebugServer/{GdbRsp => Gdb}/AvrGdb/AvrGdbRsp.hpp (97%) rename src/DebugServer/{GdbRsp => Gdb}/AvrGdb/CommandPackets/AbstractMemoryAccessPacket.cpp (57%) rename src/DebugServer/{GdbRsp => Gdb}/AvrGdb/CommandPackets/AbstractMemoryAccessPacket.hpp (96%) rename src/DebugServer/{GdbRsp => Gdb}/AvrGdb/CommandPackets/ReadMemory.cpp (94%) rename src/DebugServer/{GdbRsp => Gdb}/AvrGdb/CommandPackets/ReadMemory.hpp (100%) rename src/DebugServer/{GdbRsp => Gdb}/AvrGdb/CommandPackets/WriteMemory.cpp (95%) rename src/DebugServer/{GdbRsp => Gdb}/AvrGdb/CommandPackets/WriteMemory.hpp (100%) rename src/DebugServer/{GdbRsp => Gdb}/AvrGdb/TargetDescriptor.cpp (100%) rename src/DebugServer/{GdbRsp => Gdb}/AvrGdb/TargetDescriptor.hpp (97%) rename src/DebugServer/{GdbRsp => Gdb}/BreakpointType.hpp (100%) rename src/DebugServer/{GdbRsp => Gdb}/CommandPackets/CommandPacket.cpp (81%) rename src/DebugServer/{GdbRsp => Gdb}/CommandPackets/CommandPacket.hpp (96%) rename src/DebugServer/{GdbRsp => Gdb}/CommandPackets/ContinueExecution.cpp (93%) rename src/DebugServer/{GdbRsp => Gdb}/CommandPackets/ContinueExecution.hpp (100%) rename src/DebugServer/{GdbRsp => Gdb}/CommandPackets/InterruptExecution.cpp (82%) rename src/DebugServer/{GdbRsp => Gdb}/CommandPackets/InterruptExecution.hpp (100%) rename src/DebugServer/{GdbRsp => Gdb}/CommandPackets/ReadRegisters.cpp (96%) rename src/DebugServer/{GdbRsp => Gdb}/CommandPackets/ReadRegisters.hpp (95%) rename src/DebugServer/{GdbRsp => Gdb}/CommandPackets/RemoveBreakpoint.cpp (93%) rename src/DebugServer/{GdbRsp => Gdb}/CommandPackets/RemoveBreakpoint.hpp (94%) rename src/DebugServer/{GdbRsp => Gdb}/CommandPackets/SetBreakpoint.cpp (93%) rename src/DebugServer/{GdbRsp => Gdb}/CommandPackets/SetBreakpoint.hpp (94%) rename src/DebugServer/{GdbRsp => Gdb}/CommandPackets/StepExecution.cpp (93%) rename src/DebugServer/{GdbRsp => Gdb}/CommandPackets/StepExecution.hpp (100%) rename src/DebugServer/{GdbRsp => Gdb}/CommandPackets/SupportedFeaturesQuery.cpp (90%) rename src/DebugServer/{GdbRsp => Gdb}/CommandPackets/SupportedFeaturesQuery.hpp (100%) rename src/DebugServer/{GdbRsp => Gdb}/CommandPackets/WriteRegister.cpp (93%) rename src/DebugServer/{GdbRsp => Gdb}/CommandPackets/WriteRegister.hpp (100%) rename src/DebugServer/{GdbRsp => Gdb}/Connection.cpp (100%) rename src/DebugServer/{GdbRsp => Gdb}/Connection.hpp (97%) rename src/DebugServer/{GdbRsp => Gdb}/DebugSession.cpp (100%) rename src/DebugServer/{GdbRsp => Gdb}/DebugSession.hpp (100%) rename src/DebugServer/{GdbRsp => Gdb}/Exceptions/ClientCommunicationError.hpp (100%) rename src/DebugServer/{GdbRsp => Gdb}/Exceptions/ClientDisconnected.hpp (100%) rename src/DebugServer/{GdbRsp => Gdb}/Exceptions/ClientNotSupported.hpp (100%) rename src/DebugServer/{GdbRsp => Gdb}/Exceptions/DebugSessionAborted.hpp (100%) rename src/DebugServer/{GdbRsp => Gdb}/Feature.hpp (100%) rename src/DebugServer/{GdbRsp => Gdb}/GdbDebugServerConfig.cpp (100%) rename src/DebugServer/{GdbRsp => Gdb}/GdbDebugServerConfig.hpp (100%) rename src/DebugServer/{GdbRsp => Gdb}/GdbRspDebugServer.cpp (100%) rename src/DebugServer/{GdbRsp => Gdb}/GdbRspDebugServer.hpp (100%) rename src/DebugServer/{GdbRsp => Gdb}/Packet.hpp (100%) rename src/DebugServer/{GdbRsp => Gdb}/RegisterDescriptor.hpp (100%) rename src/DebugServer/{GdbRsp => Gdb}/ResponsePackets/ErrorResponsePacket.hpp (100%) rename src/DebugServer/{GdbRsp => Gdb}/ResponsePackets/OkResponsePacket.hpp (100%) rename src/DebugServer/{GdbRsp => Gdb}/ResponsePackets/ResponsePacket.hpp (91%) rename src/DebugServer/{GdbRsp => Gdb}/ResponsePackets/SupportedFeaturesResponse.cpp (100%) rename src/DebugServer/{GdbRsp => Gdb}/ResponsePackets/SupportedFeaturesResponse.hpp (100%) rename src/DebugServer/{GdbRsp => Gdb}/ResponsePackets/TargetStopped.hpp (100%) rename src/DebugServer/{GdbRsp => Gdb}/Signal.hpp (100%) rename src/DebugServer/{GdbRsp => Gdb}/StopReason.hpp (100%) rename src/DebugServer/{GdbRsp => Gdb}/TargetDescriptor.hpp (100%) create mode 100644 src/Insight/UserInterfaces/InsightWindow/Images/curiosity-nano-700-160.png diff --git a/CMakeLists.txt b/CMakeLists.txt index 1ad77251..6999b0ce 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -126,27 +126,27 @@ add_executable(Bloom # Debug servers src/DebugServer/DebugServerComponent.cpp - src/DebugServer/GdbRsp/GdbRspDebugServer.cpp - src/DebugServer/GdbRsp/GdbDebugServerConfig.cpp - src/DebugServer/GdbRsp/Connection.cpp - src/DebugServer/GdbRsp/DebugSession.cpp - src/DebugServer/GdbRsp/CommandPackets/CommandPacket.cpp - src/DebugServer/GdbRsp/CommandPackets/SupportedFeaturesQuery.cpp - src/DebugServer/GdbRsp/CommandPackets/ReadRegisters.cpp - src/DebugServer/GdbRsp/CommandPackets/WriteRegister.cpp - src/DebugServer/GdbRsp/CommandPackets/ContinueExecution.cpp - src/DebugServer/GdbRsp/CommandPackets/StepExecution.cpp - src/DebugServer/GdbRsp/CommandPackets/InterruptExecution.cpp - src/DebugServer/GdbRsp/CommandPackets/SetBreakpoint.cpp - src/DebugServer/GdbRsp/CommandPackets/RemoveBreakpoint.cpp - src/DebugServer/GdbRsp/ResponsePackets/SupportedFeaturesResponse.cpp + src/DebugServer/Gdb/GdbRspDebugServer.cpp + src/DebugServer/Gdb/GdbDebugServerConfig.cpp + src/DebugServer/Gdb/Connection.cpp + src/DebugServer/Gdb/DebugSession.cpp + src/DebugServer/Gdb/CommandPackets/CommandPacket.cpp + src/DebugServer/Gdb/CommandPackets/SupportedFeaturesQuery.cpp + src/DebugServer/Gdb/CommandPackets/ReadRegisters.cpp + src/DebugServer/Gdb/CommandPackets/WriteRegister.cpp + src/DebugServer/Gdb/CommandPackets/ContinueExecution.cpp + src/DebugServer/Gdb/CommandPackets/StepExecution.cpp + src/DebugServer/Gdb/CommandPackets/InterruptExecution.cpp + src/DebugServer/Gdb/CommandPackets/SetBreakpoint.cpp + src/DebugServer/Gdb/CommandPackets/RemoveBreakpoint.cpp + src/DebugServer/Gdb/ResponsePackets/SupportedFeaturesResponse.cpp # AVR GDB Server - src/DebugServer/GdbRsp/AvrGdb/AvrGdbRsp.cpp - src/DebugServer/GdbRsp/AvrGdb/TargetDescriptor.cpp - src/DebugServer/GdbRsp/AvrGdb/CommandPackets/AbstractMemoryAccessPacket.cpp - src/DebugServer/GdbRsp/AvrGdb/CommandPackets/ReadMemory.cpp - src/DebugServer/GdbRsp/AvrGdb/CommandPackets/WriteMemory.cpp + src/DebugServer/Gdb/AvrGdb/AvrGdbRsp.cpp + src/DebugServer/Gdb/AvrGdb/TargetDescriptor.cpp + src/DebugServer/Gdb/AvrGdb/CommandPackets/AbstractMemoryAccessPacket.cpp + src/DebugServer/Gdb/AvrGdb/CommandPackets/ReadMemory.cpp + src/DebugServer/Gdb/AvrGdb/CommandPackets/WriteMemory.cpp # Insight src/Insight/Insight.cpp diff --git a/src/DebugServer/DebugServerComponent.cpp b/src/DebugServer/DebugServerComponent.cpp index 265823f2..926a1572 100644 --- a/src/DebugServer/DebugServerComponent.cpp +++ b/src/DebugServer/DebugServerComponent.cpp @@ -3,7 +3,7 @@ #include // Debug server implementations -#include "GdbRsp/AvrGdb/AvrGdbRsp.hpp" +#include "Gdb/AvrGdb/AvrGdbRsp.hpp" #include "src/Exceptions/InvalidConfig.hpp" #include "src/Logger/Logger.hpp" diff --git a/src/DebugServer/GdbRsp/AvrGdb/AvrGdbRsp.cpp b/src/DebugServer/Gdb/AvrGdb/AvrGdbRsp.cpp similarity index 100% rename from src/DebugServer/GdbRsp/AvrGdb/AvrGdbRsp.cpp rename to src/DebugServer/Gdb/AvrGdb/AvrGdbRsp.cpp diff --git a/src/DebugServer/GdbRsp/AvrGdb/AvrGdbRsp.hpp b/src/DebugServer/Gdb/AvrGdb/AvrGdbRsp.hpp similarity index 97% rename from src/DebugServer/GdbRsp/AvrGdb/AvrGdbRsp.hpp rename to src/DebugServer/Gdb/AvrGdb/AvrGdbRsp.hpp index 09682e33..3481de47 100644 --- a/src/DebugServer/GdbRsp/AvrGdb/AvrGdbRsp.hpp +++ b/src/DebugServer/Gdb/AvrGdb/AvrGdbRsp.hpp @@ -4,7 +4,7 @@ #include "TargetDescriptor.hpp" -#include "src/DebugServer/GdbRsp/GdbRspDebugServer.hpp" +#include "src/DebugServer/Gdb/GdbRspDebugServer.hpp" namespace Bloom::DebugServer::Gdb::AvrGdb { diff --git a/src/DebugServer/GdbRsp/AvrGdb/CommandPackets/AbstractMemoryAccessPacket.cpp b/src/DebugServer/Gdb/AvrGdb/CommandPackets/AbstractMemoryAccessPacket.cpp similarity index 57% rename from src/DebugServer/GdbRsp/AvrGdb/CommandPackets/AbstractMemoryAccessPacket.cpp rename to src/DebugServer/Gdb/AvrGdb/CommandPackets/AbstractMemoryAccessPacket.cpp index bcf9243a..e0dc7597 100644 --- a/src/DebugServer/GdbRsp/AvrGdb/CommandPackets/AbstractMemoryAccessPacket.cpp +++ b/src/DebugServer/Gdb/AvrGdb/CommandPackets/AbstractMemoryAccessPacket.cpp @@ -1,8 +1,8 @@ #include "AbstractMemoryAccessPacket.hpp" -#include "src/DebugServer/GdbRsp/ResponsePackets/TargetStopped.hpp" -#include "src/DebugServer/GdbRsp/ResponsePackets/ErrorResponsePacket.hpp" -#include "src/DebugServer/GdbRsp/Signal.hpp" +#include "src/DebugServer/Gdb/ResponsePackets/TargetStopped.hpp" +#include "src/DebugServer/Gdb/ResponsePackets/ErrorResponsePacket.hpp" +#include "src/DebugServer/Gdb/Signal.hpp" #include "src/Logger/Logger.hpp" #include "src/Exceptions/Exception.hpp" diff --git a/src/DebugServer/GdbRsp/AvrGdb/CommandPackets/AbstractMemoryAccessPacket.hpp b/src/DebugServer/Gdb/AvrGdb/CommandPackets/AbstractMemoryAccessPacket.hpp similarity index 96% rename from src/DebugServer/GdbRsp/AvrGdb/CommandPackets/AbstractMemoryAccessPacket.hpp rename to src/DebugServer/Gdb/AvrGdb/CommandPackets/AbstractMemoryAccessPacket.hpp index 40f94db3..ca0b8bf3 100644 --- a/src/DebugServer/GdbRsp/AvrGdb/CommandPackets/AbstractMemoryAccessPacket.hpp +++ b/src/DebugServer/Gdb/AvrGdb/CommandPackets/AbstractMemoryAccessPacket.hpp @@ -3,7 +3,7 @@ #include #include -#include "src/DebugServer/GdbRsp/CommandPackets/CommandPacket.hpp" +#include "src/DebugServer/Gdb/CommandPackets/CommandPacket.hpp" #include "src/Targets/TargetMemory.hpp" diff --git a/src/DebugServer/GdbRsp/AvrGdb/CommandPackets/ReadMemory.cpp b/src/DebugServer/Gdb/AvrGdb/CommandPackets/ReadMemory.cpp similarity index 94% rename from src/DebugServer/GdbRsp/AvrGdb/CommandPackets/ReadMemory.cpp rename to src/DebugServer/Gdb/AvrGdb/CommandPackets/ReadMemory.cpp index 3529c0fb..167e3c0c 100644 --- a/src/DebugServer/GdbRsp/AvrGdb/CommandPackets/ReadMemory.cpp +++ b/src/DebugServer/Gdb/AvrGdb/CommandPackets/ReadMemory.cpp @@ -1,7 +1,7 @@ #include "ReadMemory.hpp" -#include "src/DebugServer/GdbRsp/ResponsePackets/ErrorResponsePacket.hpp" -#include "src/DebugServer/GdbRsp/ResponsePackets/ResponsePacket.hpp" +#include "src/DebugServer/Gdb/ResponsePackets/ErrorResponsePacket.hpp" +#include "src/DebugServer/Gdb/ResponsePackets/ResponsePacket.hpp" #include "src/Logger/Logger.hpp" #include "src/Exceptions/Exception.hpp" diff --git a/src/DebugServer/GdbRsp/AvrGdb/CommandPackets/ReadMemory.hpp b/src/DebugServer/Gdb/AvrGdb/CommandPackets/ReadMemory.hpp similarity index 100% rename from src/DebugServer/GdbRsp/AvrGdb/CommandPackets/ReadMemory.hpp rename to src/DebugServer/Gdb/AvrGdb/CommandPackets/ReadMemory.hpp diff --git a/src/DebugServer/GdbRsp/AvrGdb/CommandPackets/WriteMemory.cpp b/src/DebugServer/Gdb/AvrGdb/CommandPackets/WriteMemory.cpp similarity index 95% rename from src/DebugServer/GdbRsp/AvrGdb/CommandPackets/WriteMemory.cpp rename to src/DebugServer/Gdb/AvrGdb/CommandPackets/WriteMemory.cpp index 45faf534..d77261be 100644 --- a/src/DebugServer/GdbRsp/AvrGdb/CommandPackets/WriteMemory.cpp +++ b/src/DebugServer/Gdb/AvrGdb/CommandPackets/WriteMemory.cpp @@ -1,7 +1,7 @@ #include "WriteMemory.hpp" -#include "src/DebugServer/GdbRsp/ResponsePackets/ErrorResponsePacket.hpp" -#include "src/DebugServer/GdbRsp/ResponsePackets/OkResponsePacket.hpp" +#include "src/DebugServer/Gdb/ResponsePackets/ErrorResponsePacket.hpp" +#include "src/DebugServer/Gdb/ResponsePackets/OkResponsePacket.hpp" #include "src/Logger/Logger.hpp" #include "src/Exceptions/Exception.hpp" diff --git a/src/DebugServer/GdbRsp/AvrGdb/CommandPackets/WriteMemory.hpp b/src/DebugServer/Gdb/AvrGdb/CommandPackets/WriteMemory.hpp similarity index 100% rename from src/DebugServer/GdbRsp/AvrGdb/CommandPackets/WriteMemory.hpp rename to src/DebugServer/Gdb/AvrGdb/CommandPackets/WriteMemory.hpp diff --git a/src/DebugServer/GdbRsp/AvrGdb/TargetDescriptor.cpp b/src/DebugServer/Gdb/AvrGdb/TargetDescriptor.cpp similarity index 100% rename from src/DebugServer/GdbRsp/AvrGdb/TargetDescriptor.cpp rename to src/DebugServer/Gdb/AvrGdb/TargetDescriptor.cpp diff --git a/src/DebugServer/GdbRsp/AvrGdb/TargetDescriptor.hpp b/src/DebugServer/Gdb/AvrGdb/TargetDescriptor.hpp similarity index 97% rename from src/DebugServer/GdbRsp/AvrGdb/TargetDescriptor.hpp rename to src/DebugServer/Gdb/AvrGdb/TargetDescriptor.hpp index 3e8a1bd8..9ab7031b 100644 --- a/src/DebugServer/GdbRsp/AvrGdb/TargetDescriptor.hpp +++ b/src/DebugServer/Gdb/AvrGdb/TargetDescriptor.hpp @@ -1,6 +1,6 @@ #pragma once -#include "src/DebugServer/GdbRsp/TargetDescriptor.hpp" +#include "src/DebugServer/Gdb/TargetDescriptor.hpp" #include "src/Helpers/BiMap.hpp" diff --git a/src/DebugServer/GdbRsp/BreakpointType.hpp b/src/DebugServer/Gdb/BreakpointType.hpp similarity index 100% rename from src/DebugServer/GdbRsp/BreakpointType.hpp rename to src/DebugServer/Gdb/BreakpointType.hpp diff --git a/src/DebugServer/GdbRsp/CommandPackets/CommandPacket.cpp b/src/DebugServer/Gdb/CommandPackets/CommandPacket.cpp similarity index 81% rename from src/DebugServer/GdbRsp/CommandPackets/CommandPacket.cpp rename to src/DebugServer/Gdb/CommandPackets/CommandPacket.cpp index 6ac46431..7248c8e5 100644 --- a/src/DebugServer/GdbRsp/CommandPackets/CommandPacket.cpp +++ b/src/DebugServer/Gdb/CommandPackets/CommandPacket.cpp @@ -1,11 +1,11 @@ #include "CommandPacket.hpp" -#include "src/DebugServer/GdbRsp/ResponsePackets/ResponsePacket.hpp" -#include "src/DebugServer/GdbRsp/ResponsePackets/OkResponsePacket.hpp" -#include "src/DebugServer/GdbRsp/ResponsePackets/TargetStopped.hpp" -#include "src/DebugServer/GdbRsp/ResponsePackets/ErrorResponsePacket.hpp" +#include "src/DebugServer/Gdb/ResponsePackets/ResponsePacket.hpp" +#include "src/DebugServer/Gdb/ResponsePackets/OkResponsePacket.hpp" +#include "src/DebugServer/Gdb/ResponsePackets/TargetStopped.hpp" +#include "src/DebugServer/Gdb/ResponsePackets/ErrorResponsePacket.hpp" -#include "src/DebugServer/GdbRsp/Signal.hpp" +#include "src/DebugServer/Gdb/Signal.hpp" #include "src/Logger/Logger.hpp" #include "src/Exceptions/Exception.hpp" diff --git a/src/DebugServer/GdbRsp/CommandPackets/CommandPacket.hpp b/src/DebugServer/Gdb/CommandPackets/CommandPacket.hpp similarity index 96% rename from src/DebugServer/GdbRsp/CommandPackets/CommandPacket.hpp rename to src/DebugServer/Gdb/CommandPackets/CommandPacket.hpp index 67377d21..64167973 100644 --- a/src/DebugServer/GdbRsp/CommandPackets/CommandPacket.hpp +++ b/src/DebugServer/Gdb/CommandPackets/CommandPacket.hpp @@ -3,8 +3,8 @@ #include #include -#include "src/DebugServer/GdbRsp/Packet.hpp" -#include "src/DebugServer/GdbRsp/DebugSession.hpp" +#include "src/DebugServer/Gdb/Packet.hpp" +#include "src/DebugServer/Gdb/DebugSession.hpp" #include "src/TargetController/TargetControllerConsole.hpp" diff --git a/src/DebugServer/GdbRsp/CommandPackets/ContinueExecution.cpp b/src/DebugServer/Gdb/CommandPackets/ContinueExecution.cpp similarity index 93% rename from src/DebugServer/GdbRsp/CommandPackets/ContinueExecution.cpp rename to src/DebugServer/Gdb/CommandPackets/ContinueExecution.cpp index 32b68492..c3a5dcf4 100644 --- a/src/DebugServer/GdbRsp/CommandPackets/ContinueExecution.cpp +++ b/src/DebugServer/Gdb/CommandPackets/ContinueExecution.cpp @@ -1,6 +1,6 @@ #include "ContinueExecution.hpp" -#include "src/DebugServer/GdbRsp/ResponsePackets/ErrorResponsePacket.hpp" +#include "src/DebugServer/Gdb/ResponsePackets/ErrorResponsePacket.hpp" #include "src/Logger/Logger.hpp" #include "src/Exceptions/Exception.hpp" diff --git a/src/DebugServer/GdbRsp/CommandPackets/ContinueExecution.hpp b/src/DebugServer/Gdb/CommandPackets/ContinueExecution.hpp similarity index 100% rename from src/DebugServer/GdbRsp/CommandPackets/ContinueExecution.hpp rename to src/DebugServer/Gdb/CommandPackets/ContinueExecution.hpp diff --git a/src/DebugServer/GdbRsp/CommandPackets/InterruptExecution.cpp b/src/DebugServer/Gdb/CommandPackets/InterruptExecution.cpp similarity index 82% rename from src/DebugServer/GdbRsp/CommandPackets/InterruptExecution.cpp rename to src/DebugServer/Gdb/CommandPackets/InterruptExecution.cpp index e198cff1..e7aad6af 100644 --- a/src/DebugServer/GdbRsp/CommandPackets/InterruptExecution.cpp +++ b/src/DebugServer/Gdb/CommandPackets/InterruptExecution.cpp @@ -1,8 +1,8 @@ #include "InterruptExecution.hpp" -#include "src/DebugServer/GdbRsp/ResponsePackets/TargetStopped.hpp" -#include "src/DebugServer/GdbRsp/ResponsePackets/ErrorResponsePacket.hpp" -#include "src/DebugServer/GdbRsp/Signal.hpp" +#include "src/DebugServer/Gdb/ResponsePackets/TargetStopped.hpp" +#include "src/DebugServer/Gdb/ResponsePackets/ErrorResponsePacket.hpp" +#include "src/DebugServer/Gdb/Signal.hpp" #include "src/Logger/Logger.hpp" #include "src/Exceptions/Exception.hpp" diff --git a/src/DebugServer/GdbRsp/CommandPackets/InterruptExecution.hpp b/src/DebugServer/Gdb/CommandPackets/InterruptExecution.hpp similarity index 100% rename from src/DebugServer/GdbRsp/CommandPackets/InterruptExecution.hpp rename to src/DebugServer/Gdb/CommandPackets/InterruptExecution.hpp diff --git a/src/DebugServer/GdbRsp/CommandPackets/ReadRegisters.cpp b/src/DebugServer/Gdb/CommandPackets/ReadRegisters.cpp similarity index 96% rename from src/DebugServer/GdbRsp/CommandPackets/ReadRegisters.cpp rename to src/DebugServer/Gdb/CommandPackets/ReadRegisters.cpp index 0c0c741e..5467f558 100644 --- a/src/DebugServer/GdbRsp/CommandPackets/ReadRegisters.cpp +++ b/src/DebugServer/Gdb/CommandPackets/ReadRegisters.cpp @@ -1,7 +1,7 @@ #include "ReadRegisters.hpp" -#include "src/DebugServer/GdbRsp/ResponsePackets/TargetStopped.hpp" -#include "src/DebugServer/GdbRsp/ResponsePackets/ErrorResponsePacket.hpp" +#include "src/DebugServer/Gdb/ResponsePackets/TargetStopped.hpp" +#include "src/DebugServer/Gdb/ResponsePackets/ErrorResponsePacket.hpp" #include "src/Targets/TargetRegister.hpp" diff --git a/src/DebugServer/GdbRsp/CommandPackets/ReadRegisters.hpp b/src/DebugServer/Gdb/CommandPackets/ReadRegisters.hpp similarity index 95% rename from src/DebugServer/GdbRsp/CommandPackets/ReadRegisters.hpp rename to src/DebugServer/Gdb/CommandPackets/ReadRegisters.hpp index 0c6dcd1a..87931feb 100644 --- a/src/DebugServer/GdbRsp/CommandPackets/ReadRegisters.hpp +++ b/src/DebugServer/Gdb/CommandPackets/ReadRegisters.hpp @@ -4,7 +4,7 @@ #include "CommandPacket.hpp" -#include "src/DebugServer/GdbRsp/RegisterDescriptor.hpp" +#include "src/DebugServer/Gdb/RegisterDescriptor.hpp" namespace Bloom::DebugServer::Gdb::CommandPackets { diff --git a/src/DebugServer/GdbRsp/CommandPackets/RemoveBreakpoint.cpp b/src/DebugServer/Gdb/CommandPackets/RemoveBreakpoint.cpp similarity index 93% rename from src/DebugServer/GdbRsp/CommandPackets/RemoveBreakpoint.cpp rename to src/DebugServer/Gdb/CommandPackets/RemoveBreakpoint.cpp index 3037cfcb..904b49f0 100644 --- a/src/DebugServer/GdbRsp/CommandPackets/RemoveBreakpoint.cpp +++ b/src/DebugServer/Gdb/CommandPackets/RemoveBreakpoint.cpp @@ -2,8 +2,8 @@ #include -#include "src/DebugServer/GdbRsp/ResponsePackets/OkResponsePacket.hpp" -#include "src/DebugServer/GdbRsp/ResponsePackets/ErrorResponsePacket.hpp" +#include "src/DebugServer/Gdb/ResponsePackets/OkResponsePacket.hpp" +#include "src/DebugServer/Gdb/ResponsePackets/ErrorResponsePacket.hpp" #include "src/Targets/TargetBreakpoint.hpp" diff --git a/src/DebugServer/GdbRsp/CommandPackets/RemoveBreakpoint.hpp b/src/DebugServer/Gdb/CommandPackets/RemoveBreakpoint.hpp similarity index 94% rename from src/DebugServer/GdbRsp/CommandPackets/RemoveBreakpoint.hpp rename to src/DebugServer/Gdb/CommandPackets/RemoveBreakpoint.hpp index 0dc23cea..fe46aa35 100644 --- a/src/DebugServer/GdbRsp/CommandPackets/RemoveBreakpoint.hpp +++ b/src/DebugServer/Gdb/CommandPackets/RemoveBreakpoint.hpp @@ -5,7 +5,7 @@ #include #include "CommandPacket.hpp" -#include "src/DebugServer/GdbRsp/BreakpointType.hpp" +#include "src/DebugServer/Gdb/BreakpointType.hpp" namespace Bloom::DebugServer::Gdb::CommandPackets { diff --git a/src/DebugServer/GdbRsp/CommandPackets/SetBreakpoint.cpp b/src/DebugServer/Gdb/CommandPackets/SetBreakpoint.cpp similarity index 93% rename from src/DebugServer/GdbRsp/CommandPackets/SetBreakpoint.cpp rename to src/DebugServer/Gdb/CommandPackets/SetBreakpoint.cpp index 65c64b4c..61ca4b55 100644 --- a/src/DebugServer/GdbRsp/CommandPackets/SetBreakpoint.cpp +++ b/src/DebugServer/Gdb/CommandPackets/SetBreakpoint.cpp @@ -2,8 +2,8 @@ #include -#include "src/DebugServer/GdbRsp/ResponsePackets/OkResponsePacket.hpp" -#include "src/DebugServer/GdbRsp/ResponsePackets/ErrorResponsePacket.hpp" +#include "src/DebugServer/Gdb/ResponsePackets/OkResponsePacket.hpp" +#include "src/DebugServer/Gdb/ResponsePackets/ErrorResponsePacket.hpp" #include "src/Targets/TargetBreakpoint.hpp" diff --git a/src/DebugServer/GdbRsp/CommandPackets/SetBreakpoint.hpp b/src/DebugServer/Gdb/CommandPackets/SetBreakpoint.hpp similarity index 94% rename from src/DebugServer/GdbRsp/CommandPackets/SetBreakpoint.hpp rename to src/DebugServer/Gdb/CommandPackets/SetBreakpoint.hpp index c3972412..08312197 100644 --- a/src/DebugServer/GdbRsp/CommandPackets/SetBreakpoint.hpp +++ b/src/DebugServer/Gdb/CommandPackets/SetBreakpoint.hpp @@ -5,7 +5,7 @@ #include #include "CommandPacket.hpp" -#include "src/DebugServer/GdbRsp/BreakpointType.hpp" +#include "src/DebugServer/Gdb/BreakpointType.hpp" namespace Bloom::DebugServer::Gdb::CommandPackets { diff --git a/src/DebugServer/GdbRsp/CommandPackets/StepExecution.cpp b/src/DebugServer/Gdb/CommandPackets/StepExecution.cpp similarity index 93% rename from src/DebugServer/GdbRsp/CommandPackets/StepExecution.cpp rename to src/DebugServer/Gdb/CommandPackets/StepExecution.cpp index 046d67f6..d21a6f9f 100644 --- a/src/DebugServer/GdbRsp/CommandPackets/StepExecution.cpp +++ b/src/DebugServer/Gdb/CommandPackets/StepExecution.cpp @@ -1,6 +1,6 @@ #include "StepExecution.hpp" -#include "src/DebugServer/GdbRsp/ResponsePackets/ErrorResponsePacket.hpp" +#include "src/DebugServer/Gdb/ResponsePackets/ErrorResponsePacket.hpp" #include "src/Logger/Logger.hpp" #include "src/Exceptions/Exception.hpp" diff --git a/src/DebugServer/GdbRsp/CommandPackets/StepExecution.hpp b/src/DebugServer/Gdb/CommandPackets/StepExecution.hpp similarity index 100% rename from src/DebugServer/GdbRsp/CommandPackets/StepExecution.hpp rename to src/DebugServer/Gdb/CommandPackets/StepExecution.hpp diff --git a/src/DebugServer/GdbRsp/CommandPackets/SupportedFeaturesQuery.cpp b/src/DebugServer/Gdb/CommandPackets/SupportedFeaturesQuery.cpp similarity index 90% rename from src/DebugServer/GdbRsp/CommandPackets/SupportedFeaturesQuery.cpp rename to src/DebugServer/Gdb/CommandPackets/SupportedFeaturesQuery.cpp index c8f5ab11..9bef4c1d 100644 --- a/src/DebugServer/GdbRsp/CommandPackets/SupportedFeaturesQuery.cpp +++ b/src/DebugServer/Gdb/CommandPackets/SupportedFeaturesQuery.cpp @@ -2,14 +2,14 @@ #include -#include "src/DebugServer/GdbRsp/Feature.hpp" +#include "src/DebugServer/Gdb/Feature.hpp" -#include "src/DebugServer/GdbRsp/ResponsePackets/SupportedFeaturesResponse.hpp" -#include "src/DebugServer/GdbRsp/ResponsePackets/ErrorResponsePacket.hpp" +#include "src/DebugServer/Gdb/ResponsePackets/SupportedFeaturesResponse.hpp" +#include "src/DebugServer/Gdb/ResponsePackets/ErrorResponsePacket.hpp" #include "src/Logger/Logger.hpp" #include "src/Exceptions/Exception.hpp" -#include "src/DebugServer/GdbRsp/Exceptions/ClientNotSupported.hpp" +#include "src/DebugServer/Gdb/Exceptions/ClientNotSupported.hpp" namespace Bloom::DebugServer::Gdb::CommandPackets { diff --git a/src/DebugServer/GdbRsp/CommandPackets/SupportedFeaturesQuery.hpp b/src/DebugServer/Gdb/CommandPackets/SupportedFeaturesQuery.hpp similarity index 100% rename from src/DebugServer/GdbRsp/CommandPackets/SupportedFeaturesQuery.hpp rename to src/DebugServer/Gdb/CommandPackets/SupportedFeaturesQuery.hpp diff --git a/src/DebugServer/GdbRsp/CommandPackets/WriteRegister.cpp b/src/DebugServer/Gdb/CommandPackets/WriteRegister.cpp similarity index 93% rename from src/DebugServer/GdbRsp/CommandPackets/WriteRegister.cpp rename to src/DebugServer/Gdb/CommandPackets/WriteRegister.cpp index ebdfdfda..a3e8d7e2 100644 --- a/src/DebugServer/GdbRsp/CommandPackets/WriteRegister.cpp +++ b/src/DebugServer/Gdb/CommandPackets/WriteRegister.cpp @@ -1,8 +1,8 @@ #include "WriteRegister.hpp" -#include "src/DebugServer/GdbRsp/ResponsePackets/TargetStopped.hpp" -#include "src/DebugServer/GdbRsp/ResponsePackets/OkResponsePacket.hpp" -#include "src/DebugServer/GdbRsp/ResponsePackets/ErrorResponsePacket.hpp" +#include "src/DebugServer/Gdb/ResponsePackets/TargetStopped.hpp" +#include "src/DebugServer/Gdb/ResponsePackets/OkResponsePacket.hpp" +#include "src/DebugServer/Gdb/ResponsePackets/ErrorResponsePacket.hpp" #include "src/Targets/TargetRegister.hpp" diff --git a/src/DebugServer/GdbRsp/CommandPackets/WriteRegister.hpp b/src/DebugServer/Gdb/CommandPackets/WriteRegister.hpp similarity index 100% rename from src/DebugServer/GdbRsp/CommandPackets/WriteRegister.hpp rename to src/DebugServer/Gdb/CommandPackets/WriteRegister.hpp diff --git a/src/DebugServer/GdbRsp/Connection.cpp b/src/DebugServer/Gdb/Connection.cpp similarity index 100% rename from src/DebugServer/GdbRsp/Connection.cpp rename to src/DebugServer/Gdb/Connection.cpp diff --git a/src/DebugServer/GdbRsp/Connection.hpp b/src/DebugServer/Gdb/Connection.hpp similarity index 97% rename from src/DebugServer/GdbRsp/Connection.hpp rename to src/DebugServer/Gdb/Connection.hpp index c77398b4..b986bcb0 100644 --- a/src/DebugServer/GdbRsp/Connection.hpp +++ b/src/DebugServer/Gdb/Connection.hpp @@ -12,8 +12,8 @@ #include "src/Helpers/EventNotifier.hpp" #include "src/Helpers/EpollInstance.hpp" -#include "src/DebugServer/GdbRsp/Packet.hpp" -#include "src/DebugServer/GdbRsp/ResponsePackets/ResponsePacket.hpp" +#include "src/DebugServer/Gdb/Packet.hpp" +#include "src/DebugServer/Gdb/ResponsePackets/ResponsePacket.hpp" namespace Bloom::DebugServer::Gdb { diff --git a/src/DebugServer/GdbRsp/DebugSession.cpp b/src/DebugServer/Gdb/DebugSession.cpp similarity index 100% rename from src/DebugServer/GdbRsp/DebugSession.cpp rename to src/DebugServer/Gdb/DebugSession.cpp diff --git a/src/DebugServer/GdbRsp/DebugSession.hpp b/src/DebugServer/Gdb/DebugSession.hpp similarity index 100% rename from src/DebugServer/GdbRsp/DebugSession.hpp rename to src/DebugServer/Gdb/DebugSession.hpp diff --git a/src/DebugServer/GdbRsp/Exceptions/ClientCommunicationError.hpp b/src/DebugServer/Gdb/Exceptions/ClientCommunicationError.hpp similarity index 100% rename from src/DebugServer/GdbRsp/Exceptions/ClientCommunicationError.hpp rename to src/DebugServer/Gdb/Exceptions/ClientCommunicationError.hpp diff --git a/src/DebugServer/GdbRsp/Exceptions/ClientDisconnected.hpp b/src/DebugServer/Gdb/Exceptions/ClientDisconnected.hpp similarity index 100% rename from src/DebugServer/GdbRsp/Exceptions/ClientDisconnected.hpp rename to src/DebugServer/Gdb/Exceptions/ClientDisconnected.hpp diff --git a/src/DebugServer/GdbRsp/Exceptions/ClientNotSupported.hpp b/src/DebugServer/Gdb/Exceptions/ClientNotSupported.hpp similarity index 100% rename from src/DebugServer/GdbRsp/Exceptions/ClientNotSupported.hpp rename to src/DebugServer/Gdb/Exceptions/ClientNotSupported.hpp diff --git a/src/DebugServer/GdbRsp/Exceptions/DebugSessionAborted.hpp b/src/DebugServer/Gdb/Exceptions/DebugSessionAborted.hpp similarity index 100% rename from src/DebugServer/GdbRsp/Exceptions/DebugSessionAborted.hpp rename to src/DebugServer/Gdb/Exceptions/DebugSessionAborted.hpp diff --git a/src/DebugServer/GdbRsp/Feature.hpp b/src/DebugServer/Gdb/Feature.hpp similarity index 100% rename from src/DebugServer/GdbRsp/Feature.hpp rename to src/DebugServer/Gdb/Feature.hpp diff --git a/src/DebugServer/GdbRsp/GdbDebugServerConfig.cpp b/src/DebugServer/Gdb/GdbDebugServerConfig.cpp similarity index 100% rename from src/DebugServer/GdbRsp/GdbDebugServerConfig.cpp rename to src/DebugServer/Gdb/GdbDebugServerConfig.cpp diff --git a/src/DebugServer/GdbRsp/GdbDebugServerConfig.hpp b/src/DebugServer/Gdb/GdbDebugServerConfig.hpp similarity index 100% rename from src/DebugServer/GdbRsp/GdbDebugServerConfig.hpp rename to src/DebugServer/Gdb/GdbDebugServerConfig.hpp diff --git a/src/DebugServer/GdbRsp/GdbRspDebugServer.cpp b/src/DebugServer/Gdb/GdbRspDebugServer.cpp similarity index 100% rename from src/DebugServer/GdbRsp/GdbRspDebugServer.cpp rename to src/DebugServer/Gdb/GdbRspDebugServer.cpp diff --git a/src/DebugServer/GdbRsp/GdbRspDebugServer.hpp b/src/DebugServer/Gdb/GdbRspDebugServer.hpp similarity index 100% rename from src/DebugServer/GdbRsp/GdbRspDebugServer.hpp rename to src/DebugServer/Gdb/GdbRspDebugServer.hpp diff --git a/src/DebugServer/GdbRsp/Packet.hpp b/src/DebugServer/Gdb/Packet.hpp similarity index 100% rename from src/DebugServer/GdbRsp/Packet.hpp rename to src/DebugServer/Gdb/Packet.hpp diff --git a/src/DebugServer/GdbRsp/RegisterDescriptor.hpp b/src/DebugServer/Gdb/RegisterDescriptor.hpp similarity index 100% rename from src/DebugServer/GdbRsp/RegisterDescriptor.hpp rename to src/DebugServer/Gdb/RegisterDescriptor.hpp diff --git a/src/DebugServer/GdbRsp/ResponsePackets/ErrorResponsePacket.hpp b/src/DebugServer/Gdb/ResponsePackets/ErrorResponsePacket.hpp similarity index 100% rename from src/DebugServer/GdbRsp/ResponsePackets/ErrorResponsePacket.hpp rename to src/DebugServer/Gdb/ResponsePackets/ErrorResponsePacket.hpp diff --git a/src/DebugServer/GdbRsp/ResponsePackets/OkResponsePacket.hpp b/src/DebugServer/Gdb/ResponsePackets/OkResponsePacket.hpp similarity index 100% rename from src/DebugServer/GdbRsp/ResponsePackets/OkResponsePacket.hpp rename to src/DebugServer/Gdb/ResponsePackets/OkResponsePacket.hpp diff --git a/src/DebugServer/GdbRsp/ResponsePackets/ResponsePacket.hpp b/src/DebugServer/Gdb/ResponsePackets/ResponsePacket.hpp similarity index 91% rename from src/DebugServer/GdbRsp/ResponsePackets/ResponsePacket.hpp rename to src/DebugServer/Gdb/ResponsePackets/ResponsePacket.hpp index 78a9cb22..78a4d08e 100644 --- a/src/DebugServer/GdbRsp/ResponsePackets/ResponsePacket.hpp +++ b/src/DebugServer/Gdb/ResponsePackets/ResponsePacket.hpp @@ -3,7 +3,7 @@ #include #include -#include "src/DebugServer/GdbRsp/Packet.hpp" +#include "src/DebugServer/Gdb/Packet.hpp" namespace Bloom::DebugServer::Gdb::ResponsePackets { diff --git a/src/DebugServer/GdbRsp/ResponsePackets/SupportedFeaturesResponse.cpp b/src/DebugServer/Gdb/ResponsePackets/SupportedFeaturesResponse.cpp similarity index 100% rename from src/DebugServer/GdbRsp/ResponsePackets/SupportedFeaturesResponse.cpp rename to src/DebugServer/Gdb/ResponsePackets/SupportedFeaturesResponse.cpp diff --git a/src/DebugServer/GdbRsp/ResponsePackets/SupportedFeaturesResponse.hpp b/src/DebugServer/Gdb/ResponsePackets/SupportedFeaturesResponse.hpp similarity index 100% rename from src/DebugServer/GdbRsp/ResponsePackets/SupportedFeaturesResponse.hpp rename to src/DebugServer/Gdb/ResponsePackets/SupportedFeaturesResponse.hpp diff --git a/src/DebugServer/GdbRsp/ResponsePackets/TargetStopped.hpp b/src/DebugServer/Gdb/ResponsePackets/TargetStopped.hpp similarity index 100% rename from src/DebugServer/GdbRsp/ResponsePackets/TargetStopped.hpp rename to src/DebugServer/Gdb/ResponsePackets/TargetStopped.hpp diff --git a/src/DebugServer/GdbRsp/Signal.hpp b/src/DebugServer/Gdb/Signal.hpp similarity index 100% rename from src/DebugServer/GdbRsp/Signal.hpp rename to src/DebugServer/Gdb/Signal.hpp diff --git a/src/DebugServer/GdbRsp/StopReason.hpp b/src/DebugServer/Gdb/StopReason.hpp similarity index 100% rename from src/DebugServer/GdbRsp/StopReason.hpp rename to src/DebugServer/Gdb/StopReason.hpp diff --git a/src/DebugServer/GdbRsp/TargetDescriptor.hpp b/src/DebugServer/Gdb/TargetDescriptor.hpp similarity index 100% rename from src/DebugServer/GdbRsp/TargetDescriptor.hpp rename to src/DebugServer/Gdb/TargetDescriptor.hpp diff --git a/src/DebugServer/README.md b/src/DebugServer/README.md index 1b913484..22074285 100644 --- a/src/DebugServer/README.md +++ b/src/DebugServer/README.md @@ -5,7 +5,7 @@ DebugServer runs on a dedicated thread. The entry point is `DebugServerComponent the DebugServer thread once the TargetController has been started. See `Applciation::startDebugServer()` for more. The DebugServer is designed to accommodate numerous server implementations. The interface exposed by the server is -implementation-defined. For example, the [AVR GDB server](./GdbRsp/AvrGdb/AvrGdbRsp.hpp) exposes an interface to the +implementation-defined. For example, the [AVR GDB server](./Gdb/AvrGdb/AvrGdbRsp.hpp) exposes an interface to the connected AVR target, by implementing the [GDB Remote Serial Protocol](https://sourceware.org/gdb/onlinedocs/gdb/Remote-Protocol.html), over a TCP/IP connection. Each server must implement the interface defined in the [`ServerInterface` class](./ServerInterface.hpp). @@ -51,8 +51,8 @@ Key points: With an `EventNotifer` and `EpollInstance`, one can perform a blocking I/O operation which can be interrupted by an event. For an example of this, see the AVR GDB server implementation - it employs the method described above to allow the interruption of blocking I/O operations when an event is triggered. Specifically, -[`GdbRspDebugServer::waitForConnection()`](./GdbRsp/GdbRspDebugServer.hpp) or -[`Gdb::Connection::read()`](./GdbRsp/Connection.hpp). +[`GdbRspDebugServer::waitForConnection()`](./Gdb/GdbRspDebugServer.hpp) or +[`Gdb::Connection::read()`](./Gdb/Connection.hpp). ### Server implementations diff --git a/src/Insight/UserInterfaces/InsightWindow/Images/curiosity-nano-700-160.png b/src/Insight/UserInterfaces/InsightWindow/Images/curiosity-nano-700-160.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0f10a12a3c94a482bcfc3be338af7b575bf15e GIT binary patch literal 29511 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 literal 0 HcmV?d00001