blob: fca479f3aa818b811da6fb56eb2626df987ace60 [file] [log] [blame]
// Copyright 2018 The Fuchsia 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 "garnet/lib/debug_ipc/protocol.h"
#include "lib/fxl/logging.h"
namespace debug_ipc {
constexpr uint32_t MsgHeader::kSerializedHeaderSize;
constexpr uint64_t HelloReply::kStreamSignature;
constexpr uint32_t HelloReply::kCurrentVersion;
const char* MsgHeaderTypeToString(MsgHeader::Type type) {
switch (type) {
case MsgHeader::Type::kNone:
return "kNone";
case MsgHeader::Type::kHello:
return "kHello";
case MsgHeader::Type::kLaunch:
return "kLaunch";
case MsgHeader::Type::kKill:
return "kKill";
case MsgHeader::Type::kAttach:
return "kAttach";
case MsgHeader::Type::kDetach:
return "kDetach";
case MsgHeader::Type::kModules:
return "kModules";
case MsgHeader::Type::kSymbolTables:
return "kSymbolTables";
case MsgHeader::Type::kPause:
return "kPause";
case MsgHeader::Type::kQuitAgent:
return "kQuitAgent";
case MsgHeader::Type::kResume:
return "kResume";
case MsgHeader::Type::kProcessTree:
return "kProcessTree";
case MsgHeader::Type::kThreads:
return "kThreads";
case MsgHeader::Type::kReadMemory:
return "kReadMemory";
case MsgHeader::Type::kWriteMemory:
return "kWriteMemory";
case MsgHeader::Type::kReadRegisters:
return "kReadRegisters";
case MsgHeader::Type::kWriteRegisters:
return "kWriteRegisters";
case MsgHeader::Type::kAddOrChangeBreakpoint:
return "kAddOrChangeBreakpoint";
case MsgHeader::Type::kRemoveBreakpoint:
return "kRemoveBreakpoint";
case MsgHeader::Type::kThreadStatus:
return "kThreadStatus";
case MsgHeader::Type::kAddressSpace:
return "kAddressSpace";
case MsgHeader::Type::kJobFilter:
return "kJobFilter";
case MsgHeader::Type::kNotifyProcessExiting:
return "kNotifyProcessExiting";
case MsgHeader::Type::kNotifyProcessStarting:
return "kNotifyProcessStarting";
case MsgHeader::Type::kNotifyThreadStarting:
return "kNotifyThreadStarting";
case MsgHeader::Type::kNotifyThreadExiting:
return "kNotifyThreadExiting";
case MsgHeader::Type::kNotifyException:
return "kNotifyException";
case MsgHeader::Type::kNotifyModules:
return "kNotifyModules";
case MsgHeader::Type::kNumMessages:
return "kNumMessages";
}
FXL_NOTREACHED();
return "";
}
const char* NotifyException::TypeToString(NotifyException::Type type) {
switch (type) {
case NotifyException::Type::kNone:
return "None";
case NotifyException::Type::kGeneral:
return "General";
case NotifyException::Type::kHardware:
return "Hardware";
case NotifyException::Type::kSingleStep:
return "Single Step";
case NotifyException::Type::kSoftware:
return "Software";
case NotifyException::Type::kLast:
break;
}
FXL_NOTREACHED();
return "";
}
} // namespace debug_ipc