aboutsummaryrefslogtreecommitdiffstats
path: root/tools/lldb-mi/MICmnLLDBProxySBValue.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/lldb-mi/MICmnLLDBProxySBValue.cpp')
-rw-r--r--tools/lldb-mi/MICmnLLDBProxySBValue.cpp134
1 files changed, 0 insertions, 134 deletions
diff --git a/tools/lldb-mi/MICmnLLDBProxySBValue.cpp b/tools/lldb-mi/MICmnLLDBProxySBValue.cpp
deleted file mode 100644
index 14e39cd1f80a..000000000000
--- a/tools/lldb-mi/MICmnLLDBProxySBValue.cpp
+++ /dev/null
@@ -1,134 +0,0 @@
-//===-- MICmnLLDBProxySBValue.cpp -------------------------------*- C++ -*-===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-#include <stdlib.h>
-
-// Third Party Headers:
-#include "lldb/API/SBError.h"
-
-// In-house headers:
-#include "MICmnLLDBDebugSessionInfo.h"
-#include "MICmnLLDBProxySBValue.h"
-#include "MIUtilString.h"
-
-//++
-// Details: Retrieve the numerical value from the SBValue object. If the
-// function fails
-// it could indicate the SBValue object does not represent an internal
-// type.
-// Type: Static method.
-// Args: vrValue - (R) The SBValue object to get a value from.
-// vwValue - (W) The numerical value.
-// Return: MIstatus::success - Functionality succeeded.
-// MIstatus::failure - Functionality failed.
-// Throws: None.
-//--
-bool CMICmnLLDBProxySBValue::GetValueAsUnsigned(const lldb::SBValue &vrValue,
- MIuint64 &vwValue) {
- lldb::SBValue &rValue = const_cast<lldb::SBValue &>(vrValue);
- bool bCompositeType = true;
- MIuint64 nFailValue = 0;
- MIuint64 nValue = rValue.GetValueAsUnsigned(nFailValue);
- if (nValue == nFailValue) {
- nFailValue = 5; // Some arbitrary number
- nValue = rValue.GetValueAsUnsigned(nFailValue);
- if (nValue != nFailValue) {
- bCompositeType = false;
- vwValue = nValue;
- }
- } else {
- bCompositeType = false;
- vwValue = nValue;
- }
-
- return (bCompositeType ? MIstatus::failure : MIstatus::success);
-}
-
-//++
-// Details: Retrieve the numerical value from the SBValue object. If the
-// function fails
-// it could indicate the SBValue object does not represent an internal
-// type.
-// Type: Static method.
-// Args: vrValue - (R) The SBValue object to get a value from.
-// vwValue - (W) The numerical value.
-// Return: MIstatus::success - Functionality succeeded.
-// MIstatus::failure - Functionality failed.
-// Throws: None.
-//--
-bool CMICmnLLDBProxySBValue::GetValueAsSigned(const lldb::SBValue &vrValue,
- MIint64 &vwValue) {
- lldb::SBValue &rValue = const_cast<lldb::SBValue &>(vrValue);
- bool bCompositeType = true;
- MIuint64 nFailValue = 0;
- MIuint64 nValue = rValue.GetValueAsSigned(nFailValue);
- if (nValue == nFailValue) {
- nFailValue = 5; // Some arbitrary number
- nValue = rValue.GetValueAsSigned(nFailValue);
- if (nValue != nFailValue) {
- bCompositeType = false;
- vwValue = nValue;
- }
- } else {
- bCompositeType = false;
- vwValue = nValue;
- }
-
- return (bCompositeType ? MIstatus::failure : MIstatus::success);
-}
-
-//++
-// Details: Retrieve the NUL terminated string from the SBValue object if it of
-// the type
-// unsigned char *.
-// Type: Static method.
-// Args: vrValue - (R) The SBValue object to get a value from.
-// vwCString - (W) The text data '\0' terminated.
-// Return: MIstatus::success - Functionality succeeded.
-// MIstatus::failure - Functionality failed, not suitable type.
-// Throws: None.
-//--
-bool CMICmnLLDBProxySBValue::GetCString(const lldb::SBValue &vrValue,
- CMIUtilString &vwCString) {
- lldb::SBValue &rValue = const_cast<lldb::SBValue &>(vrValue);
- const char *pCType = rValue.GetTypeName();
- if (pCType == nullptr)
- return MIstatus::failure;
-
- const char *pType = "unsigned char *";
- if (!CMIUtilString::Compare(pCType, pType))
- return MIstatus::failure;
-
- const CMIUtilString strAddr(rValue.GetValue());
- MIint64 nNum = 0;
- if (!strAddr.ExtractNumber(nNum))
- return MIstatus::failure;
-
- CMICmnLLDBDebugSessionInfo &rSessionInfo(
- CMICmnLLDBDebugSessionInfo::Instance());
- lldb::SBProcess sbProcess = rSessionInfo.GetProcess();
- MIuint nBufferSize = 64;
- bool bNeedResize = false;
- char *pBuffer = static_cast<char *>(::malloc(nBufferSize));
- do {
- lldb::SBError error;
- const size_t nReadSize = sbProcess.ReadCStringFromMemory(
- (lldb::addr_t)nNum, pBuffer, nBufferSize, error);
- if (nReadSize == (nBufferSize - 1)) {
- bNeedResize = true;
- nBufferSize = nBufferSize << 1;
- pBuffer = static_cast<char *>(::realloc(pBuffer, nBufferSize));
- } else
- bNeedResize = false;
- } while (bNeedResize);
-
- vwCString = pBuffer;
- free((void *)pBuffer);
-
- return MIstatus::success;
-}