Initial checkin of lldb code from internal Apple repo.
llvm-svn: 105619
This commit is contained in:
89
lldb/source/Utility/StringExtractorGDBRemote.cpp
Normal file
89
lldb/source/Utility/StringExtractorGDBRemote.cpp
Normal file
@@ -0,0 +1,89 @@
|
||||
//===-- StringExtractorGDBRemote.cpp ----------------------------*- C++ -*-===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "StringExtractorGDBRemote.h"
|
||||
|
||||
// C Includes
|
||||
// C++ Includes
|
||||
// Other libraries and framework includes
|
||||
// Project includes
|
||||
|
||||
|
||||
|
||||
StringExtractorGDBRemote::Type
|
||||
StringExtractorGDBRemote::GetType () const
|
||||
{
|
||||
if (m_packet.empty())
|
||||
return eUnsupported;
|
||||
|
||||
switch (m_packet[0])
|
||||
{
|
||||
case 'E':
|
||||
if (m_packet.size() == 3 &&
|
||||
isxdigit(m_packet[1]) &&
|
||||
isxdigit(m_packet[2]))
|
||||
return eError;
|
||||
break;
|
||||
|
||||
case 'O':
|
||||
if (m_packet.size() == 2 && m_packet[1] == 'K')
|
||||
return eOK;
|
||||
break;
|
||||
|
||||
case '+':
|
||||
if (m_packet.size() == 1)
|
||||
return eAck;
|
||||
break;
|
||||
|
||||
case '-':
|
||||
if (m_packet.size() == 1)
|
||||
return eNack;
|
||||
break;
|
||||
}
|
||||
return eResponse;
|
||||
}
|
||||
|
||||
bool
|
||||
StringExtractorGDBRemote::IsOKPacket() const
|
||||
{
|
||||
return GetType () == eOK;
|
||||
}
|
||||
|
||||
|
||||
bool
|
||||
StringExtractorGDBRemote::IsUnsupportedPacket() const
|
||||
{
|
||||
return GetType () == eUnsupported;
|
||||
}
|
||||
|
||||
bool
|
||||
StringExtractorGDBRemote::IsNormalPacket() const
|
||||
{
|
||||
return GetType () == eResponse;
|
||||
}
|
||||
|
||||
bool
|
||||
StringExtractorGDBRemote::IsErrorPacket() const
|
||||
{
|
||||
return GetType () == eError &&
|
||||
m_packet.size() == 3 &&
|
||||
isxdigit(m_packet[1]) &&
|
||||
isxdigit(m_packet[2]);
|
||||
}
|
||||
|
||||
uint8_t
|
||||
StringExtractorGDBRemote::GetError ()
|
||||
{
|
||||
if (GetType() == eError)
|
||||
{
|
||||
SetFilePos(1);
|
||||
return GetHexU8(255);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user