003 File Manager
Current Path:
/usr/src/contrib/llvm-project/lldb/bindings/interface
usr
/
src
/
contrib
/
llvm-project
/
lldb
/
bindings
/
interface
/
📁
..
📄
SBAddress.i
(9.42 KB)
📄
SBAttachInfo.i
(1.91 KB)
📄
SBBlock.i
(6.2 KB)
📄
SBBreakpoint.i
(10.37 KB)
📄
SBBreakpointLocation.i
(3.78 KB)
📄
SBBreakpointName.i
(3.14 KB)
📄
SBBroadcaster.i
(1.66 KB)
📄
SBCommandInterpreter.i
(4.92 KB)
📄
SBCommandInterpreterRunOptions.i
(1.64 KB)
📄
SBCommandReturnObject.i
(2.83 KB)
📄
SBCommunication.i
(2.18 KB)
📄
SBCompileUnit.i
(4.2 KB)
📄
SBData.i
(11.97 KB)
📄
SBDebugger.i
(14.86 KB)
📄
SBDeclaration.i
(1.94 KB)
📄
SBEnvironment.i
(1.14 KB)
📄
SBError.i
(3.67 KB)
📄
SBEvent.i
(5.17 KB)
📄
SBExecutionContext.i
(1.51 KB)
📄
SBExpressionOptions.i
(5.52 KB)
📄
SBFile.i
(3.1 KB)
📄
SBFileSpec.i
(3.29 KB)
📄
SBFileSpecList.i
(928 B)
📄
SBFrame.i
(14.59 KB)
📄
SBFunction.i
(4.8 KB)
📄
SBHostOS.i
(1.21 KB)
📄
SBInstruction.i
(2.97 KB)
📄
SBInstructionList.i
(3.06 KB)
📄
SBLanguageRuntime.i
(611 B)
📄
SBLaunchInfo.i
(2.37 KB)
📄
SBLineEntry.i
(3.19 KB)
📄
SBListener.i
(2.99 KB)
📄
SBMemoryRegionInfo.i
(1.15 KB)
📄
SBMemoryRegionInfoList.i
(856 B)
📄
SBModule.i
(22.78 KB)
📄
SBModuleSpec.i
(3.03 KB)
📄
SBPlatform.i
(4.21 KB)
📄
SBProcess.i
(17.86 KB)
📄
SBProcessInfo.i
(1.16 KB)
📄
SBQueue.i
(1.51 KB)
📄
SBQueueItem.i
(963 B)
📄
SBReproducer.i
(643 B)
📄
SBSection.i
(4.78 KB)
📄
SBSourceManager.i
(2.5 KB)
📄
SBStream.i
(2.92 KB)
📄
SBStringList.i
(1.19 KB)
📄
SBStructuredData.i
(1.66 KB)
📄
SBSymbol.i
(3.23 KB)
📄
SBSymbolContext.i
(3.71 KB)
📄
SBSymbolContextList.i
(4.71 KB)
📄
SBTarget.i
(37.44 KB)
📄
SBThread.i
(18.06 KB)
📄
SBThreadCollection.i
(825 B)
📄
SBThreadPlan.i
(3.47 KB)
📄
SBTrace.i
(995 B)
📄
SBTraceOptions.i
(948 B)
📄
SBType.i
(14.14 KB)
📄
SBTypeCategory.i
(9.15 KB)
📄
SBTypeEnumMember.i
(2.53 KB)
📄
SBTypeFilter.i
(1.69 KB)
📄
SBTypeFormat.i
(1.69 KB)
📄
SBTypeNameSpecifier.i
(1.59 KB)
📄
SBTypeSummary.i
(2.66 KB)
📄
SBTypeSynthetic.i
(1.85 KB)
📄
SBUnixSignals.i
(1.71 KB)
📄
SBValue.i
(20.94 KB)
📄
SBValueList.i
(5.04 KB)
📄
SBVariablesOptions.i
(1.28 KB)
📄
SBWatchpoint.i
(2.2 KB)
Editing: SBValueList.i
//===-- SWIG Interface for SBValueList --------------------------*- 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 // //===----------------------------------------------------------------------===// namespace lldb { %feature("docstring", "Represents a collection of SBValues. Both SBFrame's GetVariables() and GetRegisters() return a SBValueList. SBValueList supports SBValue iteration. For example (from test/lldbutil.py), def get_registers(frame, kind): '''Returns the registers given the frame and the kind of registers desired. Returns None if there's no such kind. ''' registerSet = frame.GetRegisters() # Return type of SBValueList. for value in registerSet: if kind.lower() in value.GetName().lower(): return value return None def get_GPRs(frame): '''Returns the general purpose registers of the frame as an SBValue. The returned SBValue object is iterable. An example: ... from lldbutil import get_GPRs regs = get_GPRs(frame) for reg in regs: print('%s => %s' % (reg.GetName(), reg.GetValue())) ... ''' return get_registers(frame, 'general purpose') def get_FPRs(frame): '''Returns the floating point registers of the frame as an SBValue. The returned SBValue object is iterable. An example: ... from lldbutil import get_FPRs regs = get_FPRs(frame) for reg in regs: print('%s => %s' % (reg.GetName(), reg.GetValue())) ... ''' return get_registers(frame, 'floating point') def get_ESRs(frame): '''Returns the exception state registers of the frame as an SBValue. The returned SBValue object is iterable. An example: ... from lldbutil import get_ESRs regs = get_ESRs(frame) for reg in regs: print('%s => %s' % (reg.GetName(), reg.GetValue())) ... ''' return get_registers(frame, 'exception state')" ) SBValueList; class SBValueList { public: SBValueList (); SBValueList (const lldb::SBValueList &rhs); ~SBValueList(); bool IsValid() const; explicit operator bool() const; void Clear(); void Append (const lldb::SBValue &val_obj); void Append (const lldb::SBValueList& value_list); uint32_t GetSize() const; lldb::SBValue GetValueAtIndex (uint32_t idx) const; lldb::SBValue FindValueObjectByUID (lldb::user_id_t uid); lldb::SBValue GetFirstValueByName (const char* name) const; %extend { %nothreadallow; std::string lldb::SBValueList::__str__ (){ lldb::SBStream description; const size_t n = $self->GetSize(); if (n) { for (size_t i=0; i<n; ++i) $self->GetValueAtIndex(i).GetDescription(description); } else { description.Printf("<empty> lldb.SBValueList()"); } const char *desc = description.GetData(); size_t desc_len = description.GetSize(); if (desc_len > 0 && (desc[desc_len-1] == '\n' || desc[desc_len-1] == '\r')) --desc_len; return std::string(desc, desc_len); } %clearnothreadallow; } #ifdef SWIGPYTHON %pythoncode %{ def __iter__(self): '''Iterate over all values in a lldb.SBValueList object.''' return lldb_iter(self, 'GetSize', 'GetValueAtIndex') def __len__(self): return int(self.GetSize()) def __getitem__(self, key): count = len(self) #------------------------------------------------------------ # Access with "int" to get Nth item in the list #------------------------------------------------------------ if type(key) is int: if key < count: return self.GetValueAtIndex(key) #------------------------------------------------------------ # Access with "str" to get values by name #------------------------------------------------------------ elif type(key) is str: matches = [] for idx in range(count): value = self.GetValueAtIndex(idx) if value.name == key: matches.append(value) return matches #------------------------------------------------------------ # Match with regex #------------------------------------------------------------ elif isinstance(key, type(re.compile('.'))): matches = [] for idx in range(count): value = self.GetValueAtIndex(idx) re_match = key.search(value.name) if re_match: matches.append(value) return matches %} #endif }; } // namespace lldb
Upload File
Create Folder