003 File Manager
Current Path:
/usr/src/contrib/llvm-project/lldb/include/lldb/Core
usr
/
src
/
contrib
/
llvm-project
/
lldb
/
include
/
lldb
/
Core
/
📁
..
📄
Address.h
(19.2 KB)
📄
AddressRange.h
(8.4 KB)
📄
AddressResolver.h
(1.9 KB)
📄
AddressResolverFileLine.h
(1.93 KB)
📄
AddressResolverName.h
(2.12 KB)
📄
Architecture.h
(4.65 KB)
📄
Communication.h
(14.32 KB)
📄
Debugger.h
(13.51 KB)
📄
Disassembler.h
(18.46 KB)
📄
DumpDataExtractor.h
(3.58 KB)
📄
DumpRegisterValue.h
(1013 B)
📄
EmulateInstruction.h
(19.35 KB)
📄
FileLineResolver.h
(2.15 KB)
📄
FileSpecList.h
(5.88 KB)
📄
FormatEntity.h
(6.2 KB)
📄
Highlighter.h
(5.49 KB)
📄
IOHandler.h
(16.98 KB)
📄
IOHandlerCursesGUI.h
(928 B)
📄
IOStreamMacros.h
(1.87 KB)
📄
LoadedModuleInfoList.h
(2.86 KB)
📄
Mangled.h
(9.11 KB)
📄
MappedHash.h
(11.58 KB)
📄
Module.h
(42.01 KB)
📄
ModuleChild.h
(1.73 KB)
📄
ModuleList.h
(17.43 KB)
📄
ModuleSpec.h
(11.82 KB)
📄
Opcode.h
(6.75 KB)
📄
PluginInterface.h
(724 B)
📄
PluginManager.h
(17.12 KB)
📄
PropertiesBase.td
(1.3 KB)
📄
RichManglingContext.h
(3.78 KB)
📄
SearchFilter.h
(14.2 KB)
📄
Section.h
(9.83 KB)
📄
SourceManager.h
(5.59 KB)
📄
StreamAsynchronousIO.h
(973 B)
📄
StreamBuffer.h
(1.66 KB)
📄
StreamFile.h
(1.59 KB)
📄
StructuredDataImpl.h
(4.28 KB)
📄
ThreadSafeDenseMap.h
(1.59 KB)
📄
ThreadSafeDenseSet.h
(1.31 KB)
📄
ThreadSafeValue.h
(1.62 KB)
📄
UniqueCStringMap.h
(7.76 KB)
📄
UserSettingsController.h
(3.21 KB)
📄
Value.h
(6.99 KB)
📄
ValueObject.h
(36.66 KB)
📄
ValueObjectCast.h
(1.84 KB)
📄
ValueObjectChild.h
(2.82 KB)
📄
ValueObjectConstResult.h
(5.79 KB)
📄
ValueObjectConstResultCast.h
(2.26 KB)
📄
ValueObjectConstResultChild.h
(2.75 KB)
📄
ValueObjectConstResultImpl.h
(2.66 KB)
📄
ValueObjectDynamicValue.h
(3.72 KB)
📄
ValueObjectList.h
(1.69 KB)
📄
ValueObjectMemory.h
(2.59 KB)
📄
ValueObjectRegister.h
(4.09 KB)
📄
ValueObjectSyntheticFilter.h
(5.05 KB)
📄
ValueObjectVariable.h
(2.64 KB)
📄
dwarf.h
(3.19 KB)
Editing: FormatEntity.h
//===-- FormatEntity.h ------------------------------------------*- 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 // //===----------------------------------------------------------------------===// #ifndef LLDB_CORE_FORMATENTITY_H #define LLDB_CORE_FORMATENTITY_H #include "lldb/Utility/CompletionRequest.h" #include "lldb/Utility/FileSpec.h" #include "lldb/Utility/Status.h" #include "lldb/lldb-enumerations.h" #include "lldb/lldb-types.h" #include <algorithm> #include <stddef.h> #include <stdint.h> #include <string> #include <vector> namespace lldb_private { class Address; class ExecutionContext; class Stream; class StringList; class SymbolContext; class ValueObject; } namespace llvm { class StringRef; } namespace lldb_private { class FormatEntity { public: struct Entry { enum class Type { Invalid, ParentNumber, ParentString, EscapeCode, Root, String, Scope, Variable, VariableSynthetic, ScriptVariable, ScriptVariableSynthetic, AddressLoad, AddressFile, AddressLoadOrFile, ProcessID, ProcessFile, ScriptProcess, ThreadID, ThreadProtocolID, ThreadIndexID, ThreadName, ThreadQueue, ThreadStopReason, ThreadStopReasonRaw, ThreadReturnValue, ThreadCompletedExpression, ScriptThread, ThreadInfo, TargetArch, ScriptTarget, ModuleFile, File, Lang, FrameIndex, FrameNoDebug, FrameRegisterPC, FrameRegisterSP, FrameRegisterFP, FrameRegisterFlags, FrameRegisterByName, FrameIsArtificial, ScriptFrame, FunctionID, FunctionDidChange, FunctionInitialFunction, FunctionName, FunctionNameWithArgs, FunctionNameNoArgs, FunctionMangledName, FunctionAddrOffset, FunctionAddrOffsetConcrete, FunctionLineOffset, FunctionPCOffset, FunctionInitial, FunctionChanged, FunctionIsOptimized, LineEntryFile, LineEntryLineNumber, LineEntryColumn, LineEntryStartAddress, LineEntryEndAddress, CurrentPCArrow }; struct Definition { const char *name; const char *string; // Insert this exact string into the output Entry::Type type; uint64_t data; uint32_t num_children; Definition *children; // An array of "num_children" Definition entries, bool keep_separator; }; Entry(Type t = Type::Invalid, const char *s = nullptr, const char *f = nullptr) : string(s ? s : ""), printf_format(f ? f : ""), children(), definition(nullptr), type(t), fmt(lldb::eFormatDefault), number(0), deref(false) {} Entry(llvm::StringRef s); Entry(char ch); void AppendChar(char ch); void AppendText(const llvm::StringRef &s); void AppendText(const char *cstr); void AppendEntry(const Entry &&entry) { children.push_back(entry); } void Clear() { string.clear(); printf_format.clear(); children.clear(); definition = nullptr; type = Type::Invalid; fmt = lldb::eFormatDefault; number = 0; deref = false; } static const char *TypeToCString(Type t); void Dump(Stream &s, int depth = 0) const; bool operator==(const Entry &rhs) const { if (string != rhs.string) return false; if (printf_format != rhs.printf_format) return false; const size_t n = children.size(); const size_t m = rhs.children.size(); for (size_t i = 0; i < std::min<size_t>(n, m); ++i) { if (!(children[i] == rhs.children[i])) return false; } if (children != rhs.children) return false; if (definition != rhs.definition) return false; if (type != rhs.type) return false; if (fmt != rhs.fmt) return false; if (deref != rhs.deref) return false; return true; } std::string string; std::string printf_format; std::vector<Entry> children; Definition *definition; Type type; lldb::Format fmt; lldb::addr_t number; bool deref; }; static bool Format(const Entry &entry, Stream &s, const SymbolContext *sc, const ExecutionContext *exe_ctx, const Address *addr, ValueObject *valobj, bool function_changed, bool initial_function); static bool FormatStringRef(const llvm::StringRef &format, Stream &s, const SymbolContext *sc, const ExecutionContext *exe_ctx, const Address *addr, ValueObject *valobj, bool function_changed, bool initial_function); static bool FormatCString(const char *format, Stream &s, const SymbolContext *sc, const ExecutionContext *exe_ctx, const Address *addr, ValueObject *valobj, bool function_changed, bool initial_function); static Status Parse(const llvm::StringRef &format, Entry &entry); static Status ExtractVariableInfo(llvm::StringRef &format_str, llvm::StringRef &variable_name, llvm::StringRef &variable_format); static void AutoComplete(lldb_private::CompletionRequest &request); // Format the current elements into the stream \a s. // // The root element will be stripped off and the format str passed in will be // either an empty string (print a description of this object), or contain a // `.`-separated series like a domain name that identifies further // sub-elements to display. static bool FormatFileSpec(const FileSpec &file, Stream &s, llvm::StringRef elements, llvm::StringRef element_format); protected: static Status ParseInternal(llvm::StringRef &format, Entry &parent_entry, uint32_t depth); }; } // namespace lldb_private #endif // LLDB_CORE_FORMATENTITY_H
Upload File
Create Folder