summaryrefslogtreecommitdiffstats
path: root/lldb/scripts/Python/interface/SBProcess.i
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/scripts/Python/interface/SBProcess.i')
-rw-r--r--lldb/scripts/Python/interface/SBProcess.i496
1 files changed, 0 insertions, 496 deletions
diff --git a/lldb/scripts/Python/interface/SBProcess.i b/lldb/scripts/Python/interface/SBProcess.i
deleted file mode 100644
index e6f5464d0e6..00000000000
--- a/lldb/scripts/Python/interface/SBProcess.i
+++ /dev/null
@@ -1,496 +0,0 @@
-//===-- SWIG Interface for SBProcess ----------------------------*- C++ -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-namespace lldb {
-
-%feature("docstring",
-"Represents the process associated with the target program.
-
-SBProcess supports thread iteration. For example (from test/lldbutil.py),
-
-# ==================================================
-# Utility functions related to Threads and Processes
-# ==================================================
-
-def get_stopped_threads(process, reason):
- '''Returns the thread(s) with the specified stop reason in a list.
-
- The list can be empty if no such thread exists.
- '''
- threads = []
- for t in process:
- if t.GetStopReason() == reason:
- threads.append(t)
- return threads
-
-...
-"
-) SBProcess;
-class SBProcess
-{
-public:
- //------------------------------------------------------------------
- /// Broadcaster event bits definitions.
- //------------------------------------------------------------------
- enum
- {
- eBroadcastBitStateChanged = (1 << 0),
- eBroadcastBitInterrupt = (1 << 1),
- eBroadcastBitSTDOUT = (1 << 2),
- eBroadcastBitSTDERR = (1 << 3),
- eBroadcastBitProfileData = (1 << 4)
- };
-
- SBProcess ();
-
- SBProcess (const lldb::SBProcess& rhs);
-
- ~SBProcess();
-
- static const char *
- GetBroadcasterClassName ();
-
- const char *
- GetPluginName ();
-
- const char *
- GetShortPluginName ();
-
- void
- Clear ();
-
- bool
- IsValid() const;
-
- lldb::SBTarget
- GetTarget() const;
-
- lldb::ByteOrder
- GetByteOrder() const;
-
- %feature("autodoc", "
- Writes data into the current process's stdin. API client specifies a Python
- string as the only argument.
- ") PutSTDIN;
- size_t
- PutSTDIN (const char *src, size_t src_len);
-
- %feature("autodoc", "
- Reads data from the current process's stdout stream. API client specifies
- the size of the buffer to read data into. It returns the byte buffer in a
- Python string.
- ") GetSTDOUT;
- size_t
- GetSTDOUT (char *dst, size_t dst_len) const;
-
- %feature("autodoc", "
- Reads data from the current process's stderr stream. API client specifies
- the size of the buffer to read data into. It returns the byte buffer in a
- Python string.
- ") GetSTDERR;
- size_t
- GetSTDERR (char *dst, size_t dst_len) const;
-
- size_t
- GetAsyncProfileData(char *dst, size_t dst_len) const;
-
- void
- ReportEventState (const lldb::SBEvent &event, FILE *out) const;
-
- void
- AppendEventStateReport (const lldb::SBEvent &event, lldb::SBCommandReturnObject &result);
-
- %feature("docstring", "
- //------------------------------------------------------------------
- /// Remote connection related functions. These will fail if the
- /// process is not in eStateConnected. They are intended for use
- /// when connecting to an externally managed debugserver instance.
- //------------------------------------------------------------------
- ") RemoteAttachToProcessWithID;
- bool
- RemoteAttachToProcessWithID (lldb::pid_t pid,
- lldb::SBError& error);
-
- %feature("docstring",
- "See SBTarget.Launch for argument description and usage."
- ) RemoteLaunch;
- bool
- RemoteLaunch (char const **argv,
- char const **envp,
- const char *stdin_path,
- const char *stdout_path,
- const char *stderr_path,
- const char *working_directory,
- uint32_t launch_flags,
- bool stop_at_entry,
- lldb::SBError& error);
-
- //------------------------------------------------------------------
- // Thread related functions
- //------------------------------------------------------------------
- uint32_t
- GetNumThreads ();
-
- %feature("autodoc", "
- Returns the INDEX'th thread from the list of current threads. The index
- of a thread is only valid for the current stop. For a persistent thread
- identifier use either the thread ID or the IndexID. See help on SBThread
- for more details.
- ") GetThreadAtIndex;
- lldb::SBThread
- GetThreadAtIndex (size_t index);
-
- %feature("autodoc", "
- Returns the thread with the given thread ID.
- ") GetThreadByID;
- lldb::SBThread
- GetThreadByID (lldb::tid_t sb_thread_id);
-
- %feature("autodoc", "
- Returns the thread with the given thread IndexID.
- ") GetThreadByIndexID;
- lldb::SBThread
- GetThreadByIndexID (uint32_t index_id);
-
- %feature("autodoc", "
- Returns the currently selected thread.
- ") GetSelectedThread;
- lldb::SBThread
- GetSelectedThread () const;
-
- %feature("autodoc", "
- Lazily create a thread on demand through the current OperatingSystem plug-in, if the current OperatingSystem plug-in supports it.
- ") CreateOSPluginThread;
- lldb::SBThread
- CreateOSPluginThread (lldb::tid_t tid, lldb::addr_t context);
-
- bool
- SetSelectedThread (const lldb::SBThread &thread);
-
- bool
- SetSelectedThreadByID (lldb::tid_t tid);
-
- bool
- SetSelectedThreadByIndexID (uint32_t index_id);
-
- //------------------------------------------------------------------
- // Queue related functions
- //------------------------------------------------------------------
- uint32_t
- GetNumQueues ();
-
- lldb::SBQueue
- GetQueueAtIndex (uint32_t index);
-
- //------------------------------------------------------------------
- // Stepping related functions
- //------------------------------------------------------------------
-
- lldb::StateType
- GetState ();
-
- int
- GetExitStatus ();
-
- const char *
- GetExitDescription ();
-
- %feature("autodoc", "
- Returns the process ID of the process.
- ") GetProcessID;
- lldb::pid_t
- GetProcessID ();
-
- %feature("autodoc", "
- Returns an integer ID that is guaranteed to be unique across all process instances. This is not the process ID, just a unique integer for comparison and caching purposes.
- ") GetUniqueID;
- uint32_t
- GetUniqueID();
-
- uint32_t
- GetAddressByteSize() const;
-
- %feature("docstring", "
- Kills the process and shuts down all threads that were spawned to
- track and monitor process.
- ") Destroy;
- lldb::SBError
- Destroy ();
-
- lldb::SBError
- Continue ();
-
- lldb::SBError
- Stop ();
-
- %feature("docstring", "Same as Destroy(self).") Destroy;
- lldb::SBError
- Kill ();
-
- lldb::SBError
- Detach ();
-
- %feature("docstring", "Sends the process a unix signal.") Signal;
- lldb::SBError
- Signal (int signal);
-
- lldb::SBUnixSignals
- GetUnixSignals();
-
- %feature("docstring", "
- Returns a stop id that will increase every time the process executes. If
- include_expression_stops is true, then stops caused by expression evaluation
- will cause the returned value to increase, otherwise the counter returned will
- only increase when execution is continued explicitly by the user. Note, the value
- will always increase, but may increase by more than one per stop.
- ") GetStopID;
- uint32_t
- GetStopID(bool include_expression_stops = false);
-
- void
- SendAsyncInterrupt();
-
- %feature("autodoc", "
- Reads memory from the current process's address space and removes any
- traps that may have been inserted into the memory. It returns the byte
- buffer in a Python string. Example:
-
- # Read 4 bytes from address 'addr' and assume error.Success() is True.
- content = process.ReadMemory(addr, 4, error)
- new_bytes = bytearray(content)
- ") ReadMemory;
- size_t
- ReadMemory (addr_t addr, void *buf, size_t size, lldb::SBError &error);
-
- %feature("autodoc", "
- Writes memory to the current process's address space and maintains any
- traps that might be present due to software breakpoints. Example:
-
- # Create a Python string from the byte array.
- new_value = str(bytes)
- result = process.WriteMemory(addr, new_value, error)
- if not error.Success() or result != len(bytes):
- print 'SBProcess.WriteMemory() failed!'
- ") WriteMemory;
- size_t
- WriteMemory (addr_t addr, const void *buf, size_t size, lldb::SBError &error);
-
- %feature("autodoc", "
- Reads a NULL terminated C string from the current process's address space.
- It returns a python string of the exact length, or truncates the string if
- the maximum character limit is reached. Example:
-
- # Read a C string of at most 256 bytes from address '0x1000'
- error = lldb.SBError()
- cstring = process.ReadCStringFromMemory(0x1000, 256, error)
- if error.Success():
- print 'cstring: ', cstring
- else
- print 'error: ', error
- ") ReadCStringFromMemory;
-
- size_t
- ReadCStringFromMemory (addr_t addr, void *buf, size_t size, lldb::SBError &error);
-
- %feature("autodoc", "
- Reads an unsigned integer from memory given a byte size and an address.
- Returns the unsigned integer that was read. Example:
-
- # Read a 4 byte unsigned integer from address 0x1000
- error = lldb.SBError()
- uint = ReadUnsignedFromMemory(0x1000, 4, error)
- if error.Success():
- print 'integer: %u' % uint
- else
- print 'error: ', error
-
- ") ReadUnsignedFromMemory;
-
- uint64_t
- ReadUnsignedFromMemory (addr_t addr, uint32_t byte_size, lldb::SBError &error);
-
- %feature("autodoc", "
- Reads a pointer from memory from an address and returns the value. Example:
-
- # Read a pointer from address 0x1000
- error = lldb.SBError()
- ptr = ReadPointerFromMemory(0x1000, error)
- if error.Success():
- print 'pointer: 0x%x' % ptr
- else
- print 'error: ', error
-
- ") ReadPointerFromMemory;
-
- lldb::addr_t
- ReadPointerFromMemory (addr_t addr, lldb::SBError &error);
-
-
- // Events
- static lldb::StateType
- GetStateFromEvent (const lldb::SBEvent &event);
-
- static bool
- GetRestartedFromEvent (const lldb::SBEvent &event);
-
- static size_t
- GetNumRestartedReasonsFromEvent (const lldb::SBEvent &event);
-
- static const char *
- GetRestartedReasonAtIndexFromEvent (const lldb::SBEvent &event, size_t idx);
-
- static lldb::SBProcess
- GetProcessFromEvent (const lldb::SBEvent &event);
-
- static bool
- EventIsProcessEvent (const lldb::SBEvent &event);
-
- lldb::SBBroadcaster
- GetBroadcaster () const;
-
- bool
- GetDescription (lldb::SBStream &description);
-
- uint32_t
- GetNumSupportedHardwareWatchpoints (lldb::SBError &error) const;
-
- uint32_t
- LoadImage (lldb::SBFileSpec &image_spec, lldb::SBError &error);
-
- lldb::SBError
- UnloadImage (uint32_t image_token);
-
- lldb::SBError
- SendEventData (const char *event_data);
-
- %feature("autodoc", "
- Return the number of different thread-origin extended backtraces
- this process can support as a uint32_t.
- When the process is stopped and you have an SBThread, lldb may be
- able to show a backtrace of when that thread was originally created,
- or the work item was enqueued to it (in the case of a libdispatch
- queue).
- ") GetNumExtendedBacktraceTypes;
-
- uint32_t
- GetNumExtendedBacktraceTypes ();
-
- %feature("autodoc", "
- Takes an index argument, returns the name of one of the thread-origin
- extended backtrace methods as a str.
- ") GetExtendedBacktraceTypeAtIndex;
-
- const char *
- GetExtendedBacktraceTypeAtIndex (uint32_t idx);
-
- lldb::SBThreadCollection
- GetHistoryThreads (addr_t addr);
-
- bool
- IsInstrumentationRuntimePresent(lldb::InstrumentationRuntimeType type);
-
- %pythoncode %{
- def __get_is_alive__(self):
- '''Returns "True" if the process is currently alive, "False" otherwise'''
- s = self.GetState()
- if (s == eStateAttaching or
- s == eStateLaunching or
- s == eStateStopped or
- s == eStateRunning or
- s == eStateStepping or
- s == eStateCrashed or
- s == eStateSuspended):
- return True
- return False
-
- def __get_is_running__(self):
- '''Returns "True" if the process is currently running, "False" otherwise'''
- state = self.GetState()
- if state == eStateRunning or state == eStateStepping:
- return True
- return False
-
- def __get_is_running__(self):
- '''Returns "True" if the process is currently stopped, "False" otherwise'''
- state = self.GetState()
- if state == eStateStopped or state == eStateCrashed or state == eStateSuspended:
- return True
- return False
-
- class threads_access(object):
- '''A helper object that will lazily hand out thread for a process when supplied an index.'''
- def __init__(self, sbprocess):
- self.sbprocess = sbprocess
-
- def __len__(self):
- if self.sbprocess:
- return int(self.sbprocess.GetNumThreads())
- return 0
-
- def __getitem__(self, key):
- if type(key) is int and key < len(self):
- return self.sbprocess.GetThreadAtIndex(key)
- return None
-
- def get_threads_access_object(self):
- '''An accessor function that returns a modules_access() object which allows lazy thread access from a lldb.SBProcess object.'''
- return self.threads_access (self)
-
- def get_process_thread_list(self):
- '''An accessor function that returns a list() that contains all threads in a lldb.SBProcess object.'''
- threads = []
- accessor = self.get_threads_access_object()
- for idx in range(len(accessor)):
- threads.append(accessor[idx])
- return threads
-
- __swig_getmethods__["threads"] = get_process_thread_list
- if _newclass: threads = property(get_process_thread_list, None, doc='''A read only property that returns a list() of lldb.SBThread objects for this process.''')
-
- __swig_getmethods__["thread"] = get_threads_access_object
- if _newclass: thread = property(get_threads_access_object, None, doc='''A read only property that returns an object that can access threads by thread index (thread = lldb.process.thread[12]).''')
-
- __swig_getmethods__["is_alive"] = __get_is_alive__
- if _newclass: is_alive = property(__get_is_alive__, None, doc='''A read only property that returns a boolean value that indicates if this process is currently alive.''')
-
- __swig_getmethods__["is_running"] = __get_is_running__
- if _newclass: is_running = property(__get_is_running__, None, doc='''A read only property that returns a boolean value that indicates if this process is currently running.''')
-
- __swig_getmethods__["is_stopped"] = __get_is_running__
- if _newclass: is_stopped = property(__get_is_running__, None, doc='''A read only property that returns a boolean value that indicates if this process is currently stopped.''')
-
- __swig_getmethods__["id"] = GetProcessID
- if _newclass: id = property(GetProcessID, None, doc='''A read only property that returns the process ID as an integer.''')
-
- __swig_getmethods__["target"] = GetTarget
- if _newclass: target = property(GetTarget, None, doc='''A read only property that an lldb object that represents the target (lldb.SBTarget) that owns this process.''')
-
- __swig_getmethods__["num_threads"] = GetNumThreads
- if _newclass: num_threads = property(GetNumThreads, None, doc='''A read only property that returns the number of threads in this process as an integer.''')
-
- __swig_getmethods__["selected_thread"] = GetSelectedThread
- __swig_setmethods__["selected_thread"] = SetSelectedThread
- if _newclass: selected_thread = property(GetSelectedThread, SetSelectedThread, doc='''A read/write property that gets/sets the currently selected thread in this process. The getter returns a lldb.SBThread object and the setter takes an lldb.SBThread object.''')
-
- __swig_getmethods__["state"] = GetState
- if _newclass: state = property(GetState, None, doc='''A read only property that returns an lldb enumeration value (see enumerations that start with "lldb.eState") that represents the current state of this process (running, stopped, exited, etc.).''')
-
- __swig_getmethods__["exit_state"] = GetExitStatus
- if _newclass: exit_state = property(GetExitStatus, None, doc='''A read only property that returns an exit status as an integer of this process when the process state is lldb.eStateExited.''')
-
- __swig_getmethods__["exit_description"] = GetExitDescription
- if _newclass: exit_description = property(GetExitDescription, None, doc='''A read only property that returns an exit description as a string of this process when the process state is lldb.eStateExited.''')
-
- __swig_getmethods__["broadcaster"] = GetBroadcaster
- if _newclass: broadcaster = property(GetBroadcaster, None, doc='''A read only property that an lldb object that represents the broadcaster (lldb.SBBroadcaster) for this process.''')
- %}
-
-};
-
-} // namespace lldb
OpenPOWER on IntegriCloud