forked from OSchip/llvm-project
Move StructuredData from Core to Utility
Summary: It had a dependency on StringConvert and file reading code, which is not in Utility. I've replaced that code by equivalent llvm operations. I've added a unit test to demonstrate that parsing a file still works. Reviewers: zturner, jingham Subscribers: kubamracek, mgorny, lldb-commits Differential Revision: https://reviews.llvm.org/D34625 llvm-svn: 306394
This commit is contained in:
parent
6a391bbf40
commit
f2a8bccf85
|
@ -26,8 +26,8 @@
|
|||
#include "lldb/Breakpoint/Stoppoint.h"
|
||||
#include "lldb/Core/Event.h"
|
||||
#include "lldb/Core/SearchFilter.h"
|
||||
#include "lldb/Core/StructuredData.h"
|
||||
#include "lldb/Utility/StringList.h"
|
||||
#include "lldb/Utility/StructuredData.h"
|
||||
|
||||
namespace lldb_private {
|
||||
|
||||
|
|
|
@ -17,9 +17,9 @@
|
|||
|
||||
// Other libraries and framework includes
|
||||
// Project includes
|
||||
#include "lldb/Core/StructuredData.h"
|
||||
#include "lldb/Utility/Baton.h"
|
||||
#include "lldb/Utility/StringList.h"
|
||||
#include "lldb/Utility/StructuredData.h"
|
||||
#include "lldb/lldb-private.h"
|
||||
|
||||
namespace lldb_private {
|
||||
|
|
|
@ -11,9 +11,9 @@
|
|||
#define liblldb_Event_h_
|
||||
|
||||
#include "lldb/Core/Broadcaster.h"
|
||||
#include "lldb/Core/StructuredData.h"
|
||||
#include "lldb/Host/Predicate.h"
|
||||
#include "lldb/Utility/ConstString.h"
|
||||
#include "lldb/Utility/StructuredData.h"
|
||||
#include "lldb/lldb-defines.h" // for DISALLOW_COPY_AND_ASSIGN
|
||||
#include "lldb/lldb-forward.h" // for EventDataSP, ProcessSP, Struct...
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
#define liblldb_SearchFilter_h_
|
||||
|
||||
#include "lldb/Core/FileSpecList.h"
|
||||
#include "lldb/Core/StructuredData.h"
|
||||
#include "lldb/Utility/StructuredData.h"
|
||||
|
||||
#include "lldb/Utility/FileSpec.h" // for FileSpec
|
||||
#include "lldb/lldb-forward.h" // for SearchFilterSP, TargetSP, Modu...
|
||||
|
|
|
@ -11,10 +11,10 @@
|
|||
#define liblldb_StructuredDataImpl_h_
|
||||
|
||||
#include "lldb/Core/Event.h"
|
||||
#include "lldb/Core/StructuredData.h"
|
||||
#include "lldb/Target/StructuredDataPlugin.h"
|
||||
#include "lldb/Utility/Status.h"
|
||||
#include "lldb/Utility/Stream.h"
|
||||
#include "lldb/Utility/StructuredData.h"
|
||||
#include "lldb/lldb-enumerations.h"
|
||||
#include "lldb/lldb-forward.h"
|
||||
#include "llvm/ADT/StringRef.h"
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
#include "lldb/lldb-defines.h"
|
||||
#include "lldb/lldb-enumerations.h"
|
||||
|
||||
#include "lldb/Core/StructuredData.h"
|
||||
#include "lldb/Utility/StructuredData.h"
|
||||
|
||||
namespace lldb_private {
|
||||
class TraceOptions {
|
||||
|
|
|
@ -24,8 +24,8 @@
|
|||
#include "lldb/lldb-public.h"
|
||||
|
||||
#include "lldb/Core/FormatEntity.h"
|
||||
#include "lldb/Core/StructuredData.h"
|
||||
#include "lldb/Utility/Status.h"
|
||||
#include "lldb/Utility/StructuredData.h"
|
||||
|
||||
namespace lldb_private {
|
||||
class TypeSummaryOptions {
|
||||
|
|
|
@ -25,8 +25,8 @@
|
|||
#include "lldb/lldb-enumerations.h"
|
||||
#include "lldb/lldb-public.h"
|
||||
|
||||
#include "lldb/Core/StructuredData.h"
|
||||
#include "lldb/Core/ValueObject.h"
|
||||
#include "lldb/Utility/StructuredData.h"
|
||||
|
||||
namespace lldb_private {
|
||||
class SyntheticChildrenFrontEnd {
|
||||
|
|
|
@ -24,8 +24,8 @@
|
|||
#include "llvm/ADT/StringRef.h"
|
||||
|
||||
// Project includes
|
||||
#include "lldb/Core/StructuredData.h"
|
||||
#include "lldb/Utility/StreamString.h"
|
||||
#include "lldb/Utility/StructuredData.h"
|
||||
#include "lldb/lldb-private.h"
|
||||
|
||||
namespace lldb_private {
|
||||
|
|
|
@ -19,8 +19,8 @@
|
|||
#include "lldb/Breakpoint/BreakpointOptions.h"
|
||||
#include "lldb/Core/Broadcaster.h"
|
||||
#include "lldb/Core/PluginInterface.h"
|
||||
#include "lldb/Core/StructuredData.h"
|
||||
#include "lldb/Utility/Status.h"
|
||||
#include "lldb/Utility/StructuredData.h"
|
||||
|
||||
#include "lldb/Host/PseudoTerminal.h"
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
// Other libraries and framework includes
|
||||
// Project includes
|
||||
#include "lldb/Core/PluginInterface.h"
|
||||
#include "lldb/Core/StructuredData.h"
|
||||
#include "lldb/Utility/StructuredData.h"
|
||||
#include "lldb/lldb-forward.h"
|
||||
#include "lldb/lldb-private.h"
|
||||
#include "lldb/lldb-types.h"
|
||||
|
|
|
@ -16,8 +16,8 @@
|
|||
|
||||
// Other libraries and framework includes
|
||||
// Project includes
|
||||
#include "lldb/Core/StructuredData.h"
|
||||
#include "lldb/Target/StopInfo.h"
|
||||
#include "lldb/Utility/StructuredData.h"
|
||||
|
||||
namespace lldb_private {
|
||||
|
||||
|
|
|
@ -34,7 +34,6 @@
|
|||
#include "lldb/Core/Listener.h"
|
||||
#include "lldb/Core/LoadedModuleInfoList.h"
|
||||
#include "lldb/Core/PluginInterface.h"
|
||||
#include "lldb/Core/StructuredData.h"
|
||||
#include "lldb/Core/ThreadSafeValue.h"
|
||||
#include "lldb/Core/TraceOptions.h"
|
||||
#include "lldb/Core/UserSettingsController.h"
|
||||
|
@ -50,6 +49,7 @@
|
|||
#include "lldb/Target/ThreadList.h"
|
||||
#include "lldb/Utility/NameMatches.h"
|
||||
#include "lldb/Utility/Status.h"
|
||||
#include "lldb/Utility/StructuredData.h"
|
||||
#include "lldb/lldb-private.h"
|
||||
|
||||
#include "llvm/ADT/ArrayRef.h"
|
||||
|
|
|
@ -16,8 +16,8 @@
|
|||
|
||||
// Other libraries and framework includes
|
||||
// Project includes
|
||||
#include "lldb/Core/StructuredData.h"
|
||||
#include "lldb/Target/Process.h"
|
||||
#include "lldb/Utility/StructuredData.h"
|
||||
#include "lldb/lldb-public.h"
|
||||
|
||||
namespace lldb_private {
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
#define StructuredDataPlugin_h
|
||||
|
||||
#include "lldb/Core/PluginInterface.h"
|
||||
#include "lldb/Core/StructuredData.h"
|
||||
#include "lldb/Utility/StructuredData.h"
|
||||
|
||||
namespace lldb_private {
|
||||
|
||||
|
|
|
@ -18,10 +18,10 @@
|
|||
|
||||
#include "lldb/Core/ModuleList.h"
|
||||
#include "lldb/Core/PluginInterface.h"
|
||||
#include "lldb/Core/StructuredData.h"
|
||||
#include "lldb/Target/QueueItem.h"
|
||||
#include "lldb/Target/QueueList.h"
|
||||
#include "lldb/Utility/ConstString.h"
|
||||
#include "lldb/Utility/StructuredData.h"
|
||||
#include "lldb/lldb-private.h"
|
||||
#include "lldb/lldb-public.h"
|
||||
|
||||
|
|
|
@ -21,11 +21,11 @@
|
|||
// Project includes
|
||||
#include "lldb/Core/Broadcaster.h"
|
||||
#include "lldb/Core/Event.h"
|
||||
#include "lldb/Core/StructuredData.h"
|
||||
#include "lldb/Core/UserSettingsController.h"
|
||||
#include "lldb/Target/ExecutionContextScope.h"
|
||||
#include "lldb/Target/RegisterCheckpoint.h"
|
||||
#include "lldb/Target/StackFrameList.h"
|
||||
#include "lldb/Utility/StructuredData.h"
|
||||
#include "lldb/Utility/UserID.h"
|
||||
#include "lldb/lldb-private.h"
|
||||
|
||||
|
|
|
@ -17,13 +17,13 @@
|
|||
|
||||
// Other libraries and framework includes
|
||||
// Project includes
|
||||
#include "lldb/Core/StructuredData.h"
|
||||
#include "lldb/Target/Process.h"
|
||||
#include "lldb/Target/StopInfo.h"
|
||||
#include "lldb/Target/Target.h"
|
||||
#include "lldb/Target/Thread.h"
|
||||
#include "lldb/Target/ThreadPlan.h"
|
||||
#include "lldb/Target/ThreadPlanTracer.h"
|
||||
#include "lldb/Utility/StructuredData.h"
|
||||
#include "lldb/Utility/UserID.h"
|
||||
#include "lldb/lldb-private.h"
|
||||
|
||||
|
|
|
@ -10,13 +10,9 @@
|
|||
#ifndef liblldb_ThreadSpec_h_
|
||||
#define liblldb_ThreadSpec_h_
|
||||
|
||||
// C Includes
|
||||
// C++ Includes
|
||||
#include <string>
|
||||
|
||||
// Other libraries and framework includes
|
||||
// Project includes
|
||||
#include "lldb/Utility/StructuredData.h"
|
||||
#include "lldb/lldb-private.h"
|
||||
#include <string>
|
||||
|
||||
namespace lldb_private {
|
||||
|
||||
|
|
|
@ -269,7 +269,7 @@ public:
|
|||
EndOfFile
|
||||
};
|
||||
|
||||
JSONParser(const char *cstr);
|
||||
JSONParser(llvm::StringRef data);
|
||||
|
||||
int GetEscapedChar(bool &was_escaped);
|
||||
|
||||
|
|
|
@ -16,6 +16,9 @@
|
|||
#include "lldb/Utility/FileSpec.h" // for FileSpec
|
||||
#include "lldb/lldb-enumerations.h" // for StructuredDataType
|
||||
|
||||
#include <cassert> // for assert
|
||||
#include <cstddef> // for size_t
|
||||
#include <cstdint> // for uint64_t
|
||||
#include <functional>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
|
@ -24,10 +27,6 @@
|
|||
#include <utility>
|
||||
#include <vector>
|
||||
|
||||
#include <assert.h> // for assert
|
||||
#include <stddef.h> // for size_t
|
||||
#include <stdint.h> // for uint64_t
|
||||
|
||||
namespace lldb_private {
|
||||
class Status;
|
||||
}
|
||||
|
@ -38,7 +37,7 @@ class Stream;
|
|||
namespace lldb_private {
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
/// @class StructuredData StructuredData.h "lldb/Core/StructuredData.h"
|
||||
/// @class StructuredData StructuredData.h "lldb/Utility/StructuredData.h"
|
||||
/// @brief A class which can hold structured data
|
||||
///
|
||||
/// The StructuredData class is designed to hold the data from a JSON
|
||||
|
@ -94,10 +93,9 @@ public:
|
|||
}
|
||||
|
||||
Dictionary *GetAsDictionary() {
|
||||
return (
|
||||
(m_type == lldb::eStructuredDataTypeDictionary)
|
||||
? static_cast<Dictionary *>(this)
|
||||
: nullptr);
|
||||
return ((m_type == lldb::eStructuredDataTypeDictionary)
|
||||
? static_cast<Dictionary *>(this)
|
||||
: nullptr);
|
||||
}
|
||||
|
||||
Integer *GetAsInteger() {
|
||||
|
@ -302,8 +300,8 @@ public:
|
|||
|
||||
class Float : public Object {
|
||||
public:
|
||||
Float(double d = 0.0) : Object(lldb::eStructuredDataTypeFloat),
|
||||
m_value(d) {}
|
||||
Float(double d = 0.0)
|
||||
: Object(lldb::eStructuredDataTypeFloat), m_value(d) {}
|
||||
|
||||
~Float() override = default;
|
||||
|
||||
|
@ -319,8 +317,8 @@ public:
|
|||
|
||||
class Boolean : public Object {
|
||||
public:
|
||||
Boolean(bool b = false) : Object(lldb::eStructuredDataTypeBoolean),
|
||||
m_value(b) {}
|
||||
Boolean(bool b = false)
|
||||
: Object(lldb::eStructuredDataTypeBoolean), m_value(b) {}
|
||||
|
||||
~Boolean() override = default;
|
||||
|
||||
|
@ -338,8 +336,7 @@ public:
|
|||
public:
|
||||
String() : Object(lldb::eStructuredDataTypeString) {}
|
||||
explicit String(llvm::StringRef S)
|
||||
: Object(lldb::eStructuredDataTypeString),
|
||||
m_value(S) {}
|
||||
: Object(lldb::eStructuredDataTypeString), m_value(S) {}
|
||||
|
||||
void SetValue(llvm::StringRef S) { m_value = S; }
|
||||
|
||||
|
@ -353,8 +350,7 @@ public:
|
|||
|
||||
class Dictionary : public Object {
|
||||
public:
|
||||
Dictionary() : Object(lldb::eStructuredDataTypeDictionary),
|
||||
m_dict() {}
|
||||
Dictionary() : Object(lldb::eStructuredDataTypeDictionary), m_dict() {}
|
||||
|
||||
~Dictionary() override = default;
|
||||
|
|
@ -11,11 +11,11 @@
|
|||
|
||||
#include "lldb/API/SBStream.h"
|
||||
#include "lldb/Core/Event.h"
|
||||
#include "lldb/Core/StructuredData.h"
|
||||
#include "lldb/Core/StructuredDataImpl.h"
|
||||
#include "lldb/Target/StructuredDataPlugin.h"
|
||||
#include "lldb/Utility/Status.h"
|
||||
#include "lldb/Utility/Stream.h"
|
||||
#include "lldb/Utility/StructuredData.h"
|
||||
|
||||
using namespace lldb;
|
||||
using namespace lldb_private;
|
||||
|
|
|
@ -16,7 +16,6 @@
|
|||
#include "lldb/Core/Debugger.h"
|
||||
#include "lldb/Core/State.h"
|
||||
#include "lldb/Core/StreamFile.h"
|
||||
#include "lldb/Core/StructuredData.h"
|
||||
#include "lldb/Core/ValueObject.h"
|
||||
#include "lldb/Interpreter/CommandInterpreter.h"
|
||||
#include "lldb/Symbol/CompileUnit.h"
|
||||
|
@ -34,6 +33,7 @@
|
|||
#include "lldb/Target/ThreadPlanStepRange.h"
|
||||
#include "lldb/Target/UnixSignals.h"
|
||||
#include "lldb/Utility/Stream.h"
|
||||
#include "lldb/Utility/StructuredData.h"
|
||||
|
||||
#include "lldb/API/SBAddress.h"
|
||||
#include "lldb/API/SBDebugger.h"
|
||||
|
|
|
@ -16,7 +16,6 @@
|
|||
#include "lldb/Core/Debugger.h"
|
||||
#include "lldb/Core/State.h"
|
||||
#include "lldb/Core/StreamFile.h"
|
||||
#include "lldb/Core/StructuredData.h"
|
||||
#include "lldb/Interpreter/CommandInterpreter.h"
|
||||
#include "lldb/Symbol/CompileUnit.h"
|
||||
#include "lldb/Symbol/SymbolContext.h"
|
||||
|
@ -33,6 +32,7 @@
|
|||
#include "lldb/Target/ThreadPlanStepOut.h"
|
||||
#include "lldb/Target/ThreadPlanStepRange.h"
|
||||
#include "lldb/Utility/Stream.h"
|
||||
#include "lldb/Utility/StructuredData.h"
|
||||
|
||||
#include "lldb/API/SBAddress.h"
|
||||
#include "lldb/API/SBDebugger.h"
|
||||
|
|
|
@ -32,7 +32,6 @@ add_lldb_library(lldbCore
|
|||
State.cpp
|
||||
StreamAsynchronousIO.cpp
|
||||
StreamFile.cpp
|
||||
StructuredData.cpp
|
||||
Timer.cpp
|
||||
UserSettingsController.cpp
|
||||
Value.cpp
|
||||
|
|
|
@ -14,8 +14,7 @@
|
|||
#include "lldb/Core/ArchSpec.h" // for ArchSpec
|
||||
#include "lldb/Core/Debugger.h"
|
||||
#include "lldb/Core/Module.h"
|
||||
#include "lldb/Core/RegisterValue.h" // for RegisterValue
|
||||
#include "lldb/Core/StructuredData.h" // for StructuredData::O...
|
||||
#include "lldb/Core/RegisterValue.h" // for RegisterValue
|
||||
#include "lldb/Core/ValueObject.h"
|
||||
#include "lldb/Core/ValueObjectVariable.h"
|
||||
#include "lldb/DataFormatters/DataVisualization.h"
|
||||
|
@ -50,9 +49,10 @@
|
|||
#include "lldb/Utility/SharingPtr.h" // for SharingPtr
|
||||
#include "lldb/Utility/Stream.h"
|
||||
#include "lldb/Utility/StreamString.h"
|
||||
#include "lldb/Utility/StringList.h" // for StringList
|
||||
#include "lldb/lldb-defines.h" // for LLDB_INVALID_ADDRESS
|
||||
#include "lldb/lldb-forward.h" // for ValueObjectSP
|
||||
#include "lldb/Utility/StringList.h" // for StringList
|
||||
#include "lldb/Utility/StructuredData.h" // for StructuredData::O...
|
||||
#include "lldb/lldb-defines.h" // for LLDB_INVALID_ADDRESS
|
||||
#include "lldb/lldb-forward.h" // for ValueObjectSP
|
||||
#include "llvm/ADT/STLExtras.h"
|
||||
#include "llvm/ADT/StringRef.h"
|
||||
#include "llvm/ADT/Triple.h" // for Triple, Triple::O...
|
||||
|
|
|
@ -59,7 +59,6 @@
|
|||
#include "lldb/Core/Module.h"
|
||||
#include "lldb/Core/ModuleSpec.h"
|
||||
#include "lldb/Core/StreamFile.h"
|
||||
#include "lldb/Core/StructuredData.h"
|
||||
#include "lldb/Host/ConnectionFileDescriptor.h"
|
||||
#include "lldb/Host/HostInfo.h"
|
||||
#include "lldb/Host/ThreadLauncher.h"
|
||||
|
@ -73,6 +72,7 @@
|
|||
#include "lldb/Utility/Log.h"
|
||||
#include "lldb/Utility/NameMatches.h"
|
||||
#include "lldb/Utility/StreamString.h"
|
||||
#include "lldb/Utility/StructuredData.h"
|
||||
|
||||
#include "llvm/Support/FileSystem.h"
|
||||
|
||||
|
|
|
@ -20,11 +20,11 @@
|
|||
#include "lldb/Utility/Status.h"
|
||||
|
||||
#include "lldb/Core/StreamFile.h"
|
||||
#include "lldb/Core/StructuredData.h"
|
||||
#include "lldb/Host/Host.h"
|
||||
#include "lldb/Host/HostInfo.h"
|
||||
#include "lldb/Utility/DataBufferHeap.h"
|
||||
#include "lldb/Utility/DataExtractor.h"
|
||||
#include "lldb/Utility/StructuredData.h"
|
||||
|
||||
#include "llvm/Support/ConvertUTF.h"
|
||||
|
||||
|
|
|
@ -18,11 +18,11 @@
|
|||
|
||||
// Other libraries and framework includes
|
||||
// Project includes
|
||||
#include "lldb/Core/StructuredData.h"
|
||||
#include "lldb/Target/DynamicLoader.h"
|
||||
#include "lldb/Target/Process.h"
|
||||
#include "lldb/Utility/FileSpec.h"
|
||||
#include "lldb/Utility/SafeMachO.h"
|
||||
#include "lldb/Utility/StructuredData.h"
|
||||
#include "lldb/Utility/UUID.h"
|
||||
|
||||
#include "llvm/ADT/Triple.h"
|
||||
|
|
|
@ -25,11 +25,11 @@
|
|||
|
||||
// Other libraries and framework includes
|
||||
// Project includes
|
||||
#include "lldb/Core/StructuredData.h"
|
||||
#include "lldb/Target/DynamicLoader.h"
|
||||
#include "lldb/Target/Process.h"
|
||||
#include "lldb/Utility/FileSpec.h"
|
||||
#include "lldb/Utility/SafeMachO.h"
|
||||
#include "lldb/Utility/StructuredData.h"
|
||||
#include "lldb/Utility/UUID.h"
|
||||
|
||||
#include "DynamicLoaderDarwin.h"
|
||||
|
|
|
@ -28,11 +28,11 @@
|
|||
|
||||
// Other libraries and framework includes
|
||||
// Project includes
|
||||
#include "lldb/Core/StructuredData.h"
|
||||
#include "lldb/Target/DynamicLoader.h"
|
||||
#include "lldb/Target/Process.h"
|
||||
#include "lldb/Utility/FileSpec.h"
|
||||
#include "lldb/Utility/SafeMachO.h"
|
||||
#include "lldb/Utility/StructuredData.h"
|
||||
#include "lldb/Utility/UUID.h"
|
||||
|
||||
#include "DynamicLoaderDarwin.h"
|
||||
|
|
|
@ -14,9 +14,9 @@
|
|||
// C++ Includes
|
||||
// Other libraries and framework includes
|
||||
// Project includes
|
||||
#include "lldb/Core/StructuredData.h"
|
||||
#include "lldb/Target/InstrumentationRuntime.h"
|
||||
#include "lldb/Target/Process.h"
|
||||
#include "lldb/Utility/StructuredData.h"
|
||||
#include "lldb/lldb-private.h"
|
||||
|
||||
namespace lldb_private {
|
||||
|
|
|
@ -10,9 +10,9 @@
|
|||
#ifndef liblldb_MainThreadCheckerRuntime_h_
|
||||
#define liblldb_MainThreadCheckerRuntime_h_
|
||||
|
||||
#include "lldb/Core/StructuredData.h"
|
||||
#include "lldb/Target/ABI.h"
|
||||
#include "lldb/Target/InstrumentationRuntime.h"
|
||||
#include "lldb/Utility/StructuredData.h"
|
||||
#include "lldb/lldb-private.h"
|
||||
|
||||
namespace lldb_private {
|
||||
|
|
|
@ -14,9 +14,9 @@
|
|||
// C++ Includes
|
||||
// Other libraries and framework includes
|
||||
// Project includes
|
||||
#include "lldb/Core/StructuredData.h"
|
||||
#include "lldb/Target/ABI.h"
|
||||
#include "lldb/Target/InstrumentationRuntime.h"
|
||||
#include "lldb/Utility/StructuredData.h"
|
||||
#include "lldb/lldb-private.h"
|
||||
|
||||
namespace lldb_private {
|
||||
|
|
|
@ -10,9 +10,9 @@
|
|||
#ifndef liblldb_UndefinedBehaviorSanitizerRuntime_h_
|
||||
#define liblldb_UndefinedBehaviorSanitizerRuntime_h_
|
||||
|
||||
#include "lldb/Core/StructuredData.h"
|
||||
#include "lldb/Target/ABI.h"
|
||||
#include "lldb/Target/InstrumentationRuntime.h"
|
||||
#include "lldb/Utility/StructuredData.h"
|
||||
#include "lldb/lldb-private.h"
|
||||
|
||||
namespace lldb_private {
|
||||
|
|
|
@ -22,7 +22,6 @@
|
|||
#include "lldb/Core/Module.h"
|
||||
#include "lldb/Core/PluginManager.h"
|
||||
#include "lldb/Core/RegisterValue.h"
|
||||
#include "lldb/Core/StructuredData.h"
|
||||
#include "lldb/Core/ValueObjectVariable.h"
|
||||
#include "lldb/Interpreter/CommandInterpreter.h"
|
||||
#include "lldb/Interpreter/ScriptInterpreter.h"
|
||||
|
@ -35,6 +34,7 @@
|
|||
#include "lldb/Target/ThreadList.h"
|
||||
#include "lldb/Utility/DataBufferHeap.h"
|
||||
#include "lldb/Utility/StreamString.h"
|
||||
#include "lldb/Utility/StructuredData.h"
|
||||
|
||||
using namespace lldb;
|
||||
using namespace lldb_private;
|
||||
|
|
|
@ -16,8 +16,8 @@
|
|||
// C++ Includes
|
||||
// Other libraries and framework includes
|
||||
// Project includes
|
||||
#include "lldb/Core/StructuredData.h"
|
||||
#include "lldb/Target/OperatingSystem.h"
|
||||
#include "lldb/Utility/StructuredData.h"
|
||||
|
||||
class DynamicRegisterInfo;
|
||||
|
||||
|
|
|
@ -7,7 +7,6 @@ add_lldb_library(lldbPluginProcessPOSIX PLUGIN
|
|||
ProcessPOSIXLog.cpp
|
||||
|
||||
LINK_LIBS
|
||||
lldbCore
|
||||
lldbInterpreter
|
||||
LINK_COMPONENTS
|
||||
Support
|
||||
|
|
|
@ -15,11 +15,11 @@
|
|||
// Project includes
|
||||
#include "lldb/Core/ArchSpec.h"
|
||||
#include "lldb/Core/StreamFile.h"
|
||||
#include "lldb/Core/StructuredData.h"
|
||||
#include "lldb/DataFormatters/FormatManager.h"
|
||||
#include "lldb/Host/StringConvert.h"
|
||||
#include "lldb/Utility/RegularExpression.h"
|
||||
#include "lldb/Utility/StringExtractor.h"
|
||||
#include "lldb/Utility/StructuredData.h"
|
||||
|
||||
using namespace lldb;
|
||||
using namespace lldb_private;
|
||||
|
|
|
@ -17,8 +17,8 @@
|
|||
|
||||
// Other libraries and framework includes
|
||||
// Project includes
|
||||
#include "lldb/Core/StructuredData.h"
|
||||
#include "lldb/Utility/ConstString.h"
|
||||
#include "lldb/Utility/StructuredData.h"
|
||||
#include "lldb/lldb-private.h"
|
||||
|
||||
class DynamicRegisterInfo {
|
||||
|
|
|
@ -23,9 +23,9 @@
|
|||
// Other libraries and framework includes
|
||||
// Project includes
|
||||
#include "lldb/Core/ArchSpec.h"
|
||||
#include "lldb/Core/StructuredData.h"
|
||||
#include "lldb/Target/Process.h"
|
||||
#include "lldb/Utility/StreamGDBRemote.h"
|
||||
#include "lldb/Utility/StructuredData.h"
|
||||
|
||||
#include "llvm/ADT/Optional.h"
|
||||
|
||||
|
|
|
@ -22,7 +22,6 @@
|
|||
#include "llvm/Support/FileSystem.h"
|
||||
#include "llvm/Support/Threading.h"
|
||||
|
||||
#include "lldb/Core/StructuredData.h"
|
||||
#include "lldb/Host/Config.h"
|
||||
#include "lldb/Host/ConnectionFileDescriptor.h"
|
||||
#include "lldb/Host/Host.h"
|
||||
|
@ -35,6 +34,7 @@
|
|||
#include "lldb/Utility/Log.h"
|
||||
#include "lldb/Utility/StreamGDBRemote.h"
|
||||
#include "lldb/Utility/StreamString.h"
|
||||
#include "lldb/Utility/StructuredData.h"
|
||||
#include "lldb/Utility/UriParser.h"
|
||||
|
||||
// Project includes
|
||||
|
|
|
@ -24,7 +24,6 @@
|
|||
#include "lldb/Core/Broadcaster.h"
|
||||
#include "lldb/Core/LoadedModuleInfoList.h"
|
||||
#include "lldb/Core/ModuleSpec.h"
|
||||
#include "lldb/Core/StructuredData.h"
|
||||
#include "lldb/Core/ThreadSafeValue.h"
|
||||
#include "lldb/Host/HostThread.h"
|
||||
#include "lldb/Target/Process.h"
|
||||
|
@ -35,6 +34,7 @@
|
|||
#include "lldb/Utility/StreamString.h"
|
||||
#include "lldb/Utility/StringExtractor.h"
|
||||
#include "lldb/Utility/StringList.h"
|
||||
#include "lldb/Utility/StructuredData.h"
|
||||
#include "lldb/lldb-private-forward.h"
|
||||
|
||||
#include "GDBRemoteCommunicationClient.h"
|
||||
|
|
|
@ -16,9 +16,9 @@
|
|||
|
||||
// Other libraries and framework includes
|
||||
// Project includes
|
||||
#include "lldb/Core/StructuredData.h"
|
||||
#include "lldb/Target/Process.h"
|
||||
#include "lldb/Target/Thread.h"
|
||||
#include "lldb/Utility/StructuredData.h"
|
||||
|
||||
class StringExtractor;
|
||||
|
||||
|
|
|
@ -21,10 +21,10 @@
|
|||
// Project includes
|
||||
#include "lldb/Utility/Flags.h"
|
||||
|
||||
#include "lldb/Core/StructuredData.h"
|
||||
#include "lldb/Host/File.h"
|
||||
#include "lldb/Interpreter/OptionValue.h"
|
||||
#include "lldb/Utility/ConstString.h"
|
||||
#include "lldb/Utility/StructuredData.h"
|
||||
#include "lldb/lldb-defines.h"
|
||||
|
||||
#include "llvm/ADT/ArrayRef.h"
|
||||
|
|
|
@ -19,12 +19,12 @@
|
|||
// Other libraries and framework include
|
||||
// Project includes
|
||||
#include "lldb/Core/ModuleList.h"
|
||||
#include "lldb/Core/StructuredData.h"
|
||||
#include "lldb/Target/Process.h"
|
||||
#include "lldb/Target/QueueItem.h"
|
||||
#include "lldb/Target/SystemRuntime.h"
|
||||
#include "lldb/Utility/ConstString.h"
|
||||
#include "lldb/Utility/FileSpec.h"
|
||||
#include "lldb/Utility/StructuredData.h"
|
||||
#include "lldb/Utility/UUID.h"
|
||||
|
||||
#include "AppleGetItemInfoHandler.h"
|
||||
|
|
|
@ -25,7 +25,6 @@
|
|||
#include "lldb/Core/ModuleSpec.h"
|
||||
#include "lldb/Core/PluginManager.h"
|
||||
#include "lldb/Core/StreamFile.h"
|
||||
#include "lldb/Core/StructuredData.h"
|
||||
#include "lldb/Host/FileSystem.h"
|
||||
#include "lldb/Host/Host.h"
|
||||
#include "lldb/Host/HostInfo.h"
|
||||
|
@ -42,6 +41,7 @@
|
|||
#include "lldb/Utility/FileSpec.h"
|
||||
#include "lldb/Utility/Log.h"
|
||||
#include "lldb/Utility/Status.h"
|
||||
#include "lldb/Utility/StructuredData.h"
|
||||
|
||||
#include "llvm/Support/FileSystem.h"
|
||||
|
||||
|
|
|
@ -11,9 +11,9 @@
|
|||
// C++ Includes
|
||||
// Other libraries and framework includes
|
||||
// Project includes
|
||||
#include "lldb/Target/Thread.h"
|
||||
#include "lldb/Core/StructuredData.h"
|
||||
#include "lldb/Target/ThreadSpec.h"
|
||||
#include "lldb/Target/Thread.h"
|
||||
#include "lldb/Utility/StructuredData.h"
|
||||
|
||||
using namespace lldb;
|
||||
using namespace lldb_private;
|
||||
|
|
|
@ -28,6 +28,7 @@ add_lldb_library(lldbUtility
|
|||
StringExtractorGDBRemote.cpp
|
||||
StringLexer.cpp
|
||||
StringList.cpp
|
||||
StructuredData.cpp
|
||||
TaskPool.cpp
|
||||
TildeExpressionResolver.cpp
|
||||
UserID.cpp
|
||||
|
|
|
@ -191,7 +191,7 @@ JSONValue::SP JSONArray::GetObject(Index i) {
|
|||
|
||||
JSONArray::Size JSONArray::GetNumElements() { return m_elements.size(); }
|
||||
|
||||
JSONParser::JSONParser(const char *cstr) : StringExtractor(cstr) {}
|
||||
JSONParser::JSONParser(llvm::StringRef data) : StringExtractor(data) {}
|
||||
|
||||
JSONParser::Token JSONParser::GetToken(std::string &value) {
|
||||
StreamString error;
|
||||
|
|
|
@ -7,28 +7,18 @@
|
|||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "lldb/Core/StructuredData.h"
|
||||
|
||||
#include "lldb/Host/File.h"
|
||||
#include "lldb/Host/StringConvert.h"
|
||||
#include "lldb/Utility/StructuredData.h"
|
||||
#include "lldb/Utility/DataBuffer.h"
|
||||
#include "lldb/Utility/FileSpec.h"
|
||||
#include "lldb/Utility/JSON.h"
|
||||
#include "lldb/Utility/Status.h"
|
||||
#include "lldb/Utility/Stream.h" // for Stream
|
||||
#include "lldb/Utility/StreamString.h"
|
||||
#include "lldb/lldb-enumerations.h" // for FilePermissions::eFilePermiss...
|
||||
#include "lldb/lldb-forward.h" // for DataBufferSP
|
||||
|
||||
#include "llvm/ADT/STLExtras.h" // for make_unique
|
||||
|
||||
#include <limits> // for numeric_limits
|
||||
|
||||
#include <errno.h>
|
||||
#include <cerrno>
|
||||
#include <cstdlib>
|
||||
#include <inttypes.h>
|
||||
#include <stdio.h> // for printf
|
||||
#include <stdlib.h>
|
||||
#include <sys/types.h> // for off_t
|
||||
#include <limits> // for numeric_limits
|
||||
|
||||
using namespace lldb_private;
|
||||
|
||||
|
@ -43,36 +33,20 @@ StructuredData::ObjectSP
|
|||
StructuredData::ParseJSONFromFile(const FileSpec &input_spec, Status &error) {
|
||||
StructuredData::ObjectSP return_sp;
|
||||
if (!input_spec.Exists()) {
|
||||
error.SetErrorStringWithFormat("input file %s does not exist.",
|
||||
input_spec.GetPath().c_str());
|
||||
error.SetErrorStringWithFormatv("input file {0} does not exist.",
|
||||
input_spec);
|
||||
return return_sp;
|
||||
}
|
||||
|
||||
File input_file(nullptr, File::OpenOptions::eOpenOptionRead,
|
||||
lldb::eFilePermissionsUserRead);
|
||||
std::string input_path = input_spec.GetPath();
|
||||
error =
|
||||
input_file.Open(input_path.c_str(), File::OpenOptions::eOpenOptionRead,
|
||||
lldb::eFilePermissionsUserRead);
|
||||
|
||||
if (!error.Success()) {
|
||||
error.SetErrorStringWithFormat("could not open input file: %s - %s.",
|
||||
input_spec.GetPath().c_str(),
|
||||
error.AsCString());
|
||||
auto buffer_or_error = llvm::MemoryBuffer::getFile(input_spec.GetPath());
|
||||
if (!buffer_or_error) {
|
||||
error.SetErrorStringWithFormatv("could not open input file: {0} - {1}.",
|
||||
input_spec.GetPath(),
|
||||
buffer_or_error.getError().message());
|
||||
return return_sp;
|
||||
}
|
||||
|
||||
lldb::DataBufferSP input_data;
|
||||
size_t num_bytes = std::numeric_limits<size_t>::max();
|
||||
off_t offset = 0;
|
||||
error = input_file.Read(num_bytes, offset, true, input_data);
|
||||
if (!error.Success()) {
|
||||
error.SetErrorStringWithFormat("could not read input file: %s - %s.",
|
||||
input_spec.GetPath().c_str(),
|
||||
error.AsCString());
|
||||
return return_sp;
|
||||
}
|
||||
JSONParser json_parser((char *)input_data->GetBytes());
|
||||
JSONParser json_parser(buffer_or_error.get()->getBuffer());
|
||||
return_sp = ParseJSONValue(json_parser);
|
||||
return return_sp;
|
||||
}
|
||||
|
@ -146,16 +120,14 @@ static StructuredData::ObjectSP ParseJSONValue(JSONParser &json_parser) {
|
|||
return ParseJSONArray(json_parser);
|
||||
|
||||
case JSONParser::Token::Integer: {
|
||||
bool success = false;
|
||||
uint64_t uval = StringConvert::ToUInt64(value.c_str(), 0, 0, &success);
|
||||
if (success)
|
||||
uint64_t uval;
|
||||
if (llvm::to_integer(value, uval, 0))
|
||||
return std::make_shared<StructuredData::Integer>(uval);
|
||||
} break;
|
||||
|
||||
case JSONParser::Token::Float: {
|
||||
bool success = false;
|
||||
double val = StringConvert::ToDouble(value.c_str(), 0.0, &success);
|
||||
if (success)
|
||||
double val;
|
||||
if (llvm::to_float(value, val))
|
||||
return std::make_shared<StructuredData::Float>(val);
|
||||
} break;
|
||||
|
||||
|
@ -219,7 +191,7 @@ StructuredData::Object::GetObjectForDotSeparatedPath(llvm::StringRef path) {
|
|||
void StructuredData::Object::DumpToStdout(bool pretty_print) const {
|
||||
StreamString stream;
|
||||
Dump(stream, pretty_print);
|
||||
printf("%s\n", stream.GetData());
|
||||
llvm::outs() << stream.GetString();
|
||||
}
|
||||
|
||||
void StructuredData::Array::Dump(Stream &s, bool pretty_print) const {
|
|
@ -6,7 +6,6 @@ add_lldb_unittest(LLDBCoreTests
|
|||
ScalarTest.cpp
|
||||
StateTest.cpp
|
||||
StreamCallbackTest.cpp
|
||||
StructuredDataTest.cpp
|
||||
TimerTest.cpp
|
||||
|
||||
LINK_LIBS
|
||||
|
|
|
@ -1,32 +0,0 @@
|
|||
//===-- StructuredDataTest.cpp ----------------------------------*- C++ -*-===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
#include "lldb/Core/StructuredData.h"
|
||||
#include "lldb/Utility/StreamString.h"
|
||||
|
||||
#include "llvm/BinaryFormat/MachO.h"
|
||||
|
||||
using namespace lldb;
|
||||
using namespace lldb_private;
|
||||
|
||||
TEST(StructuredDataTest, StringDump) {
|
||||
std::pair<llvm::StringRef, llvm::StringRef> TestCases[] = {
|
||||
{ R"(asdfg)", R"("asdfg")" },
|
||||
{ R"(as"df)", R"("as\"df")" },
|
||||
{ R"(as\df)", R"("as\\df")" },
|
||||
};
|
||||
for(auto P : TestCases) {
|
||||
StreamString S;
|
||||
const bool pretty_print = false;
|
||||
StructuredData::String(P.first).Dump(S, pretty_print);
|
||||
EXPECT_EQ(P.second, S.GetString());
|
||||
}
|
||||
}
|
|
@ -12,10 +12,10 @@
|
|||
|
||||
#include "Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h"
|
||||
#include "lldb/Core/ModuleSpec.h"
|
||||
#include "lldb/Core/StructuredData.h"
|
||||
#include "lldb/Core/TraceOptions.h"
|
||||
#include "lldb/Target/MemoryRegionInfo.h"
|
||||
#include "lldb/Utility/DataBuffer.h"
|
||||
#include "lldb/Utility/StructuredData.h"
|
||||
#include "lldb/lldb-enumerations.h"
|
||||
#include "llvm/ADT/ArrayRef.h"
|
||||
#include "llvm/Testing/Support/Error.h"
|
||||
|
|
|
@ -6,6 +6,7 @@ add_lldb_unittest(UtilityTests
|
|||
NameMatchesTest.cpp
|
||||
StatusTest.cpp
|
||||
StringExtractorTest.cpp
|
||||
StructuredDataTest.cpp
|
||||
TaskPoolTest.cpp
|
||||
TildeExpressionResolverTest.cpp
|
||||
TimeoutTest.cpp
|
||||
|
@ -18,3 +19,7 @@ add_lldb_unittest(UtilityTests
|
|||
LINK_COMPONENTS
|
||||
Support
|
||||
)
|
||||
|
||||
add_unittest_inputs(UtilityTests
|
||||
StructuredData-basic.json
|
||||
)
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
[1, 2, 3]
|
|
@ -0,0 +1,66 @@
|
|||
//===-- StructuredDataTest.cpp ----------------------------------*- C++ -*-===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
#include "lldb/Utility/Status.h"
|
||||
#include "lldb/Utility/StreamString.h"
|
||||
#include "lldb/Utility/StructuredData.h"
|
||||
#include "llvm/Support/Path.h"
|
||||
|
||||
extern const char *TestMainArgv0;
|
||||
|
||||
using namespace lldb;
|
||||
using namespace lldb_private;
|
||||
|
||||
namespace {
|
||||
|
||||
class StructuredDataTest : public testing::Test {
|
||||
public:
|
||||
static void SetUpTestCase() {
|
||||
s_inputs_folder = llvm::sys::path::parent_path(TestMainArgv0);
|
||||
llvm::sys::path::append(s_inputs_folder, "Inputs");
|
||||
}
|
||||
|
||||
protected:
|
||||
static llvm::SmallString<128> s_inputs_folder;
|
||||
};
|
||||
} // namespace
|
||||
|
||||
llvm::SmallString<128> StructuredDataTest::s_inputs_folder;
|
||||
|
||||
TEST_F(StructuredDataTest, StringDump) {
|
||||
std::pair<llvm::StringRef, llvm::StringRef> TestCases[] = {
|
||||
{R"(asdfg)", R"("asdfg")"},
|
||||
{R"(as"df)", R"("as\"df")"},
|
||||
{R"(as\df)", R"("as\\df")"},
|
||||
};
|
||||
for (auto P : TestCases) {
|
||||
StreamString S;
|
||||
const bool pretty_print = false;
|
||||
StructuredData::String(P.first).Dump(S, pretty_print);
|
||||
EXPECT_EQ(P.second, S.GetString());
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(StructuredDataTest, ParseJSONFromFile) {
|
||||
Status status;
|
||||
auto object_sp = StructuredData::ParseJSONFromFile(
|
||||
FileSpec("non-existing-file.json", false), status);
|
||||
EXPECT_EQ(nullptr, object_sp);
|
||||
|
||||
llvm::SmallString<128> input = s_inputs_folder;
|
||||
llvm::sys::path::append(input, "StructuredData-basic.json");
|
||||
object_sp = StructuredData::ParseJSONFromFile(FileSpec(input, false), status);
|
||||
ASSERT_NE(nullptr, object_sp);
|
||||
|
||||
StreamString S;
|
||||
object_sp->Dump(S, false);
|
||||
EXPECT_EQ("[1,2,3]", S.GetString());
|
||||
}
|
|
@ -8,7 +8,7 @@
|
|||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "MessageObjects.h"
|
||||
#include "lldb/Core/StructuredData.h"
|
||||
#include "lldb/Utility/StructuredData.h"
|
||||
#include "llvm/ADT/StringExtras.h"
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
|
|
Loading…
Reference in New Issue