Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1931)

Unified Diff: experimental/linux_debug_server/debugger/rsp/rsp_packets.cc

Issue 10928195: First round of dead file removal (Closed) Base URL: https://github.com/samclegg/nativeclient-sdk.git@master
Patch Set: Created 8 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: experimental/linux_debug_server/debugger/rsp/rsp_packets.cc
diff --git a/experimental/linux_debug_server/debugger/rsp/rsp_packets.cc b/experimental/linux_debug_server/debugger/rsp/rsp_packets.cc
deleted file mode 100755
index 4cba7b15a767ea8e2f4314bdf0783c27cfd76ddb..0000000000000000000000000000000000000000
--- a/experimental/linux_debug_server/debugger/rsp/rsp_packets.cc
+++ /dev/null
@@ -1,121 +0,0 @@
-// Copyright (c) 2011 The Native Client Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-#include "debugger/rsp/rsp_common_replies.h"
-#include "debugger/rsp/rsp_control_packets.h"
-#include "debugger/rsp/rsp_info_packets.h"
-#include "debugger/rsp/rsp_packets.h"
-#include "debugger/rsp/rsp_threads_packets.h"
-
-namespace {
-std::map<std::string, rsp::Packet*> packet_factory_;
-
-/// Pops type field from the front of |message|.
-/// @param[in,out] message RSP packet
-/// @param[in] type_hint optional type hint or NULL
-/// @return string with message type
-std::string PopPacketType(debug::Blob* message, const char* type_hint) {
- if (packet_factory_.size() == 0)
- rsp::Packet::InitPacketFactory();
-
- // If |type_hint| is supplied, then message don't have type field,
- // and there's no point in trying to find it.
- if (NULL != type_hint)
- return type_hint;
-
- // Most commands have no termination, i.e. they are prefixes,
- // and they should be looked up as we scan characters. The shortest
- // command to match wins.
- std::string type;
- while (message->size() != 0) {
- char c = message->Front();
- message->PopFront();
- type.append(1, c);
- if (packet_factory_.find(type) != packet_factory_.end())
- break;
- }
- // If packet type is terminated by ':', we should pop it off.
- message->PopMatchingBytesFromFront(debug::Blob().FromString(" :"));
- return type;
-}
-} // namespace
-
-namespace rsp {
-Packet* Packet::CreateFromBlob(debug::Blob* message, const char* type_hint) {
- RemoveSpacesFromBothEnds(message);
-
- // Empty message can be a reply to 'm' command, or
- // can indicate that command is not supported.
- if ((0 == message->size()) && (NULL == type_hint))
- return new EmptyPacket;
-
- // To differentiate [Xc00020304,0:] from [X05] or [X21;process:138c]
- // I.e. we need to detect if it's a 'X' command (write data to memory, where
- // the data is transmitted in binary) or 'X' reply (the process terminated
- // with signal).
- if ((message->size() > 0) &&
- ('X' == message->Front()) &&
- (message->HasByte(',')))
- return NULL; // we don't support 'X' command.
-
- // To differentiate it from 'O' packet (StopReply).
- if (*message == debug::Blob().FromString("OK"))
- return new OkReply;
-
- std::string type = PopPacketType(message, type_hint);
- if (packet_factory_.find(type) == packet_factory_.end())
- return NULL;
-
- Packet* packet = packet_factory_[type]->Clone();
- if ((NULL != packet) && (!packet->FromBlob(type, message))) {
- delete packet;
- packet = NULL;
- }
- return packet;
-}
-
-void Packet::InitPacketFactory() {
- packet_factory_["qSupported"] = new rsp::QuerySupportedCommand;
- packet_factory_["qSupported$Reply"] = new rsp::QuerySupportedReply;
- packet_factory_["?"] = new rsp::GetStopReasonCommand;
- packet_factory_["S"] = new rsp::StopReply(rsp::StopReply::SIGNALED);
- packet_factory_["X"] = new rsp::StopReply(rsp::StopReply::TERMINATED);
- packet_factory_["W"] = new rsp::StopReply(rsp::StopReply::EXITED);
- packet_factory_["O"] = new rsp::StopReply(rsp::StopReply::STILL_RUNNING);
- packet_factory_["m"] = new rsp::ReadMemoryCommand;
- packet_factory_["M"] = new rsp::WriteMemoryCommand;
- packet_factory_["blob$Reply"] = new rsp::BlobReply;
- packet_factory_["g"] = new rsp::ReadRegistersCommand;
- packet_factory_["G"] = new rsp::WriteRegistersCommand;
- packet_factory_["E"] = new rsp::ErrorReply;
- packet_factory_["OK"] = new rsp::OkReply;
- packet_factory_["Hg"] =
- new rsp::SetCurrentThreadCommand(rsp::SetCurrentThreadCommand::FOR_READ);
- packet_factory_["Hc"] =
- new rsp::SetCurrentThreadCommand(
- rsp::SetCurrentThreadCommand::FOR_CONTINUE);
- packet_factory_["qC"] = new rsp::GetCurrentThreadCommand;
- packet_factory_["QC"] = new rsp::GetCurrentThreadReply;
- packet_factory_["c"] = new rsp::ContinueCommand;
- packet_factory_["s"] = new rsp::StepCommand;
- packet_factory_["T"] = new rsp::IsThreadAliveCommand;
- packet_factory_["qXfer:features:read:"] = new rsp::QXferFeaturesReadCommand;
- packet_factory_["qXfer$Reply"] = new rsp::QXferReply;
- packet_factory_["qfThreadInfo"] = new rsp::GetThreadInfoCommand;
- packet_factory_["qsThreadInfo"] = new rsp::GetThreadInfoCommand;
- packet_factory_["GetThreadInfo$Reply"] = new rsp::GetThreadInfoReply;
- packet_factory_["qOffsets"] = new rsp::GetOffsetsCommand;
- packet_factory_["qOffsets$Reply"] = new rsp::GetOffsetsReply;
-}
-
-void Packet::FreePacketFactory() {
- std::map<std::string, rsp::Packet*>::const_iterator it =
- packet_factory_.begin();
- while (it != packet_factory_.end()) {
- delete it->second;
- ++it;
- }
- packet_factory_.clear();
-}
-} // namespace rsp
-

Powered by Google App Engine
This is Rietveld 408576698