| Index: experimental/visual_studio_plugin/src/debug_conn/debug_packet.cc
|
| diff --git a/experimental/visual_studio_plugin/src/debug_conn/debug_packet.cc b/experimental/visual_studio_plugin/src/debug_conn/debug_packet.cc
|
| deleted file mode 100644
|
| index 4ba7ac47ffde40358d47d4500894b9d7e539ed67..0000000000000000000000000000000000000000
|
| --- a/experimental/visual_studio_plugin/src/debug_conn/debug_packet.cc
|
| +++ /dev/null
|
| @@ -1,293 +0,0 @@
|
| -/*
|
| - * Copyright 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 "debug_conn/debug_packet.h"
|
| -#include "debug_conn/debug_stub_vsx.h"
|
| -#include "debug_conn/debug_util.h"
|
| -#include "native_client/src/shared/platform/nacl_log.h"
|
| -#include <sstream>
|
| -
|
| -using namespace nacl_debug_conn;
|
| -using namespace std;
|
| -
|
| -DebugPacket::DebugPacket() : seq(-1) {}
|
| -
|
| -void DebugPacket::Clear() {
|
| - data.str("");
|
| - seq = -1;
|
| -}
|
| -
|
| -void DebugPacket::Rewind() {
|
| - data.seekg(0, ios::beg);
|
| - data.seekp(0, ios::beg);
|
| -}
|
| -
|
| -void DebugPacket::AddRawChar(char ch) {
|
| - data << ch;
|
| -}
|
| -
|
| -void DebugPacket::AddByte(uint8_t ch) {
|
| - char seq1 = debug_int_to_nibble(ch >> 4);
|
| - char seq2 = debug_int_to_nibble(ch & 0xF);
|
| -
|
| - AddRawChar(seq1);
|
| - AddRawChar(seq2);
|
| -}
|
| -
|
| -void DebugPacket::AddBlock(void *ptr, int len) {
|
| - const char *p = (const char *) ptr;
|
| -
|
| - for (int offs = 0; offs < len; offs++)
|
| - AddByte(p[offs]);
|
| -}
|
| -
|
| -void DebugPacket::AddWord16(uint16_t val) {
|
| - AddBlock(&val, sizeof(val));
|
| -}
|
| -
|
| -void DebugPacket::AddWord32(uint32_t val) {
|
| - AddBlock(&val, sizeof(val));
|
| -}
|
| -
|
| -void DebugPacket::AddWord64(uint64_t val) {
|
| - AddBlock(&val, sizeof(val));
|
| -}
|
| -
|
| -void DebugPacket::AddPointer(void *ptr) {
|
| - return AddBlock(&ptr, sizeof(ptr));
|
| -}
|
| -
|
| -void DebugPacket::AddString(const char *str) {
|
| - data << str;
|
| -}
|
| -
|
| -void DebugPacket::AddHexString(const char *str) {
|
| - while (*str) {
|
| - AddByte(*str);
|
| - str++;
|
| - }
|
| -}
|
| -
|
| -void DebugPacket::AddNumberSep(uint64_t val, char sep) {
|
| - char out[sizeof(val) * 2];
|
| - int nibbles = 0;
|
| - int a;
|
| -
|
| - // Check for -1 optimization
|
| - if (val == -1) {
|
| - AddRawChar('-');
|
| - AddRawChar('1');
|
| - }
|
| - else {
|
| - // Assume we have the valuse 0x00001234
|
| - for (a=0; a < sizeof(val); a++) {
|
| - uint8_t byte = val & 0xFF;
|
| - // Stream in with bytes reverse, starting at least significant
|
| - // So we store 4, then 3, 2, 1
|
| - out[nibbles++] = debug_int_to_nibble(byte & 0xF);
|
| - out[nibbles++] = debug_int_to_nibble(byte >> 4);
|
| -
|
| - // Get the next 8 bits;
|
| - val >>= (intptr_t) 8;
|
| -
|
| - // Supress leading zeros, so we are done when val hits zero
|
| - if (val == 0)
|
| - break;
|
| - }
|
| -
|
| - // Strip the high zero for this byte if needed
|
| - if ((nibbles > 2) && (out[nibbles-1] == '0'))
|
| - nibbles--;
|
| -
|
| - // Now write it out reverse to correct the order
|
| - while (nibbles) {
|
| - nibbles--;
|
| - AddRawChar(out[nibbles]);
|
| - }
|
| - }
|
| -
|
| - // If we asked for a sperator, insert it
|
| - if (sep)
|
| - AddRawChar(sep);
|
| -}
|
| -
|
| -bool DebugPacket::GetNumberSep(uint64_t *val, char *sep) {
|
| - uint64_t out = 0;
|
| - char ch;
|
| - if (!GetRawChar(&ch))
|
| - return false;
|
| -
|
| - // Check for -1
|
| - if (ch == '-') {
|
| - if (!GetRawChar(&ch))
|
| - return false;
|
| - if (ch == '1') {
|
| - *val = -1;
|
| - ch = 0;
|
| - GetRawChar(&ch);
|
| - if (sep)
|
| - *sep = ch;
|
| - return true;
|
| - }
|
| - return false;
|
| - }
|
| -
|
| - do {
|
| - uint64_t nib = debug_nibble_to_int(ch);
|
| -
|
| - // If we can't translate, this must be the separator
|
| - if (nib == (uint64_t) -1)
|
| - break;
|
| -
|
| - out = (out << (uint64_t) 4) + nib;
|
| -
|
| - // Get the next character (if availible)
|
| - ch = 0;
|
| - if (!GetRawChar(&ch))
|
| - break;
|
| -
|
| - } while (1);
|
| -
|
| - // Set the value;
|
| - *val = out;
|
| -
|
| - // If the user want it...
|
| - if (sep)
|
| - *sep = ch;
|
| -
|
| - return true;
|
| -}
|
| -
|
| -bool DebugPacket::GetHexString(const char **sep) {
|
| - string out;
|
| - char ch;
|
| -
|
| - while (GetRawChar(&ch))
|
| - out += ch;
|
| -
|
| - *sep = strdup(out.data());
|
| - return true;
|
| -}
|
| -
|
| -bool DebugPacket::GetRawChar(char *ch) {
|
| - if (data.eof())
|
| - return DS_NONE;
|
| -
|
| - data >> *ch;
|
| - return DS_OK;
|
| -}
|
| -
|
| -bool DebugPacket::GetByte(uint8_t *ch) {
|
| - char seq1, seq2;
|
| - bool res;
|
| -
|
| - res = GetRawChar(&seq1);
|
| - res = GetRawChar(&seq2);
|
| - *ch = debug_nibble_to_int(seq1) << 4;
|
| - *ch += debug_nibble_to_int(seq2);
|
| -
|
| - return res;
|
| -}
|
| -
|
| -bool DebugPacket::GetBlock(void *ptr, int len) {
|
| - uint8_t *p = (uint8_t *) ptr;
|
| - bool res;
|
| -
|
| - for (int offs = 0; offs < len; offs++) {
|
| - res = GetByte(&p[offs]);
|
| - if (false == res)
|
| - break;
|
| - }
|
| -
|
| - return res;
|
| -}
|
| -
|
| -bool DebugPacket::GetWord16(uint16_t *ptr) {
|
| - return GetBlock(ptr, sizeof(*ptr));
|
| -}
|
| -
|
| -bool DebugPacket::GetWord32(uint32_t *ptr) {
|
| - return GetBlock(ptr, sizeof(*ptr));
|
| -}
|
| -
|
| -bool DebugPacket::GetWord64(uint64_t *ptr) {
|
| - return GetBlock(ptr, sizeof(*ptr));
|
| -}
|
| -
|
| -bool DebugPacket::GetPointer(void **ptr) {
|
| - return GetBlock(ptr, sizeof(*ptr));
|
| -}
|
| -
|
| -bool DebugPacket::PeekString(const char **ppstr) {
|
| - string str = "";
|
| - if (data.eof())
|
| - return DS_NONE;
|
| - str = data.str();
|
| - *ppstr = strdup(str.data());
|
| - return true;
|
| -}
|
| -
|
| -bool DebugPacket::PeekChar(char *ch) {
|
| - string str = "";
|
| - if (data.eof())
|
| - return false;
|
| - str = data.str();
|
| - *ch = str[0];
|
| - return true;
|
| -}
|
| -
|
| -bool DebugPacket::GetString(const char **ppstr) {
|
| - string str = "";
|
| - if (data.eof())
|
| - return DS_NONE;
|
| -
|
| - const int bufsz = 127;
|
| - char buf[bufsz + 1];
|
| - while (!data.eof()) {
|
| - data.getline(buf, bufsz);
|
| - str += buf;
|
| - }
|
| - *ppstr = strdup(str.data());
|
| - return true;
|
| -}
|
| -
|
| -const char *DebugPacket::GetPayload() const {
|
| - string str = data.str();
|
| - const char *out = str.data();
|
| - return strdup(out);
|
| -}
|
| -
|
| -bool DebugPacket::GetSequence(int32_t *ch) const {
|
| - // If we don't have one, try and read it from the stream
|
| - if (seq == -1) {
|
| -
|
| - }
|
| -
|
| - if (seq != -1) {
|
| - *ch = seq;
|
| - return true;
|
| - }
|
| -
|
| - return false;
|
| -}
|
| -
|
| -void DebugPacket::SetSequence(int32_t val) {
|
| - seq = val;
|
| -}
|
| -
|
| -
|
| -int nacl_debug_conn::DebugPacket::Read( void *ptr, int len ) {
|
| - uint8_t *p = (uint8_t *) ptr;
|
| - int offs = 0;
|
| -
|
| - for (offs = 0; offs < len; offs++) {
|
| - bool res = GetByte(&p[offs]);
|
| - if (false == res)
|
| - break;
|
| - }
|
| -
|
| - return offs;
|
| -}
|
|
|