//===-- MICmnLLDBUtilSBValue.h ----------------------------------*- C++ -*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// //++ // File: MICmnLLDBUtilSBValue.h // // Overview: CMICmnLLDBUtilSBValue interface. // // Environment: Compilers: Visual C++ 12. // gcc (Ubuntu/Linaro 4.8.1-10ubuntu9) 4.8.1 // Libraries: See MIReadmetxt. // // Copyright: None. //-- #pragma once // Third Party Headers: #include // In-house headers: #include "MIDataTypes.h" // Declerations: class CMIUtilString; //++ ============================================================================ // Details: Utility helper class to lldb::SBValue. Using a lldb::SBValue extract // value object information to help form verbose debug information. // Gotchas: None. // Authors: Illya Rudkin 08/07/2014. // Changes: None. //-- class CMICmnLLDBUtilSBValue { // Methods: public: /* ctor */ CMICmnLLDBUtilSBValue( const lldb::SBValue & vrValue, const bool vbHandleCharType = false ); /* dtor */ ~CMICmnLLDBUtilSBValue( void ); // CMIUtilString GetName( void ) const; CMIUtilString GetValue( void ) const; CMIUtilString GetValueCString( void ) const; CMIUtilString GetChildValueCString( void ) const; CMIUtilString GetTypeName( void ) const; CMIUtilString GetTypeNameDisplay( void ) const; bool IsCharType( void ) const; bool IsChildCharType( void ) const; bool IsLLDBVariable( void ) const; bool IsNameUnknown( void ) const; bool IsValueUnknown( void ) const; bool IsValid( void ) const; bool HasName( void ) const; // Methods: private: CMIUtilString ReadCStringFromHostMemory( const lldb::SBValue & vrValueObj ) const; // Attributes: private: lldb::SBValue & m_rValue; const MIchar * m_pUnkwn; bool m_bValidSBValue; // True = SBValue is a valid object, false = not valid. bool m_bHandleCharType; // True = Yes return text molding to char type, false = just return data. };