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: SBEvent.i
//===-- SWIG Interface for SBEvent ------------------------------*- 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 { class SBBroadcaster; %feature("docstring", "API clients can register to receive events. For example, check out the following output: Try wait for event... Event description: 0x103d0bb70 Event: broadcaster = 0x1009c8410, type = 0x00000001, data = { process = 0x1009c8400 (pid = 21528), state = running} Event data flavor: Process::ProcessEventData Process state: running Try wait for event... Event description: 0x103a700a0 Event: broadcaster = 0x1009c8410, type = 0x00000001, data = { process = 0x1009c8400 (pid = 21528), state = stopped} Event data flavor: Process::ProcessEventData Process state: stopped Try wait for event... Event description: 0x103d0d4a0 Event: broadcaster = 0x1009c8410, type = 0x00000001, data = { process = 0x1009c8400 (pid = 21528), state = exited} Event data flavor: Process::ProcessEventData Process state: exited Try wait for event... timeout occurred waiting for event... from test/python_api/event/TestEventspy: def do_listen_for_and_print_event(self): '''Create a listener and use SBEvent API to print the events received.''' exe = os.path.join(os.getcwd(), 'a.out') # Create a target by the debugger. target = self.dbg.CreateTarget(exe) self.assertTrue(target, VALID_TARGET) # Now create a breakpoint on main.c by name 'c'. breakpoint = target.BreakpointCreateByName('c', 'a.out') # Now launch the process, and do not stop at the entry point. process = target.LaunchSimple(None, None, os.getcwd()) self.assertTrue(process.GetState() == lldb.eStateStopped, PROCESS_STOPPED) # Get a handle on the process's broadcaster. broadcaster = process.GetBroadcaster() # Create an empty event object. event = lldb.SBEvent() # Create a listener object and register with the broadcaster. listener = lldb.SBListener('my listener') rc = broadcaster.AddListener(listener, lldb.SBProcess.eBroadcastBitStateChanged) self.assertTrue(rc, 'AddListener successfully retruns') traceOn = self.TraceOn() if traceOn: lldbutil.print_stacktraces(process) # Create MyListeningThread class to wait for any kind of event. import threading class MyListeningThread(threading.Thread): def run(self): count = 0 # Let's only try at most 4 times to retrieve any kind of event. # After that, the thread exits. while not count > 3: if traceOn: print('Try wait for event...') if listener.WaitForEventForBroadcasterWithType(5, broadcaster, lldb.SBProcess.eBroadcastBitStateChanged, event): if traceOn: desc = lldbutil.get_description(event)) print('Event description:', desc) print('Event data flavor:', event.GetDataFlavor()) print('Process state:', lldbutil.state_type_to_str(process.GetState())) print() else: if traceOn: print 'timeout occurred waiting for event...' count = count + 1 return # Let's start the listening thread to retrieve the events. my_thread = MyListeningThread() my_thread.start() # Use Python API to continue the process. The listening thread should be # able to receive the state changed events. process.Continue() # Use Python API to kill the process. The listening thread should be # able to receive the state changed event, too. process.Kill() # Wait until the 'MyListeningThread' terminates. my_thread.join()") SBEvent; class SBEvent { public: SBEvent(); SBEvent (const lldb::SBEvent &rhs); %feature("autodoc", "__init__(self, int type, str data) -> SBEvent (make an event that contains a C string)" ) SBEvent; SBEvent (uint32_t event, const char *cstr, uint32_t cstr_len); ~SBEvent(); bool IsValid() const; explicit operator bool() const; const char * GetDataFlavor (); uint32_t GetType () const; lldb::SBBroadcaster GetBroadcaster () const; const char * GetBroadcasterClass () const; bool BroadcasterMatchesRef (const lldb::SBBroadcaster &broadcaster); void Clear(); static const char * GetCStringFromEvent (const lldb::SBEvent &event); bool GetDescription (lldb::SBStream &description) const; }; } // namespace lldb
Upload File
Create Folder