124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//===-- SBProcess.h ---------------------------------------------*- C++ -*-===// 224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// 324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// The LLVM Compiler Infrastructure 424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// 524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// This file is distributed under the University of Illinois Open Source 624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// License. See LICENSE.TXT for details. 724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// 824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//===----------------------------------------------------------------------===// 924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 1024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#ifndef LLDB_SBProcess_h_ 1124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#define LLDB_SBProcess_h_ 1224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 135f81547fd786584b10999c087528b323b5945896Eli Friedman#include "lldb/API/SBDefines.h" 145f81547fd786584b10999c087528b323b5945896Eli Friedman#include "lldb/API/SBError.h" 155f81547fd786584b10999c087528b323b5945896Eli Friedman#include "lldb/API/SBTarget.h" 167884ab842f7f0be6c583eac2904f5763706816bcEli Friedman#include <stdio.h> 1724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 1824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnernamespace lldb { 1924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 2024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SBEvent; 2124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 2224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SBProcess 2324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner{ 2424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerpublic: 2524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner //------------------------------------------------------------------ 2624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner /// Broadcaster event bits definitions. 2724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner //------------------------------------------------------------------ 2824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner enum 2924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner { 3024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner eBroadcastBitStateChanged = (1 << 0), 3124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner eBroadcastBitInterrupt = (1 << 1), 3224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner eBroadcastBitSTDOUT = (1 << 2), 33fb9cee64303d36d6fe5d87e63dd8701d1ddb70a9Han Ming Ong eBroadcastBitSTDERR = (1 << 3), 34fb9cee64303d36d6fe5d87e63dd8701d1ddb70a9Han Ming Ong eBroadcastBitProfileData = (1 << 4) 3524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner }; 3624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 3724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner SBProcess (); 3824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 3924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner SBProcess (const lldb::SBProcess& rhs); 4024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 41538eb82a89a68dbc57251915080bd5152b333978Greg Clayton const lldb::SBProcess& 42538eb82a89a68dbc57251915080bd5152b333978Greg Clayton operator = (const lldb::SBProcess& rhs); 43538eb82a89a68dbc57251915080bd5152b333978Greg Clayton 44155ee91cc315888c26de1bfebd876bf35b857329Enrico Granata SBProcess (const lldb::ProcessSP &process_sp); 45155ee91cc315888c26de1bfebd876bf35b857329Enrico Granata 4624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner ~SBProcess(); 4724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 485a15e6927b5b3234fb3e688717297ba6b5dd6ad7Jim Ingham static const char * 495a15e6927b5b3234fb3e688717297ba6b5dd6ad7Jim Ingham GetBroadcasterClassName (); 505a15e6927b5b3234fb3e688717297ba6b5dd6ad7Jim Ingham 51fee26ee9a5db37e71f5d5aed279c634bbdab7c8cJim Ingham const char * 52fee26ee9a5db37e71f5d5aed279c634bbdab7c8cJim Ingham GetPluginName (); 53fee26ee9a5db37e71f5d5aed279c634bbdab7c8cJim Ingham 540e191607adcb0ea8ebd06c278be648a7f5c0097fGreg Clayton // DEPRECATED: use GetPluginName() 55fee26ee9a5db37e71f5d5aed279c634bbdab7c8cJim Ingham const char * 56fee26ee9a5db37e71f5d5aed279c634bbdab7c8cJim Ingham GetShortPluginName (); 57fee26ee9a5db37e71f5d5aed279c634bbdab7c8cJim Ingham 5824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner void 5924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner Clear (); 6024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 6124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool 6224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner IsValid() const; 6324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 6424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner lldb::SBTarget 6524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner GetTarget() const; 6624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 6760a544f23362d4f2fbe1e68b9c5340aa5e11302cJohnny Chen lldb::ByteOrder 6860a544f23362d4f2fbe1e68b9c5340aa5e11302cJohnny Chen GetByteOrder() const; 6960a544f23362d4f2fbe1e68b9c5340aa5e11302cJohnny Chen 7024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner size_t 7124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner PutSTDIN (const char *src, size_t src_len); 7224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 7324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner size_t 7424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner GetSTDOUT (char *dst, size_t dst_len) const; 7524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 7624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner size_t 7724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner GetSTDERR (char *dst, size_t dst_len) const; 7824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 79fb9cee64303d36d6fe5d87e63dd8701d1ddb70a9Han Ming Ong size_t 80fb9cee64303d36d6fe5d87e63dd8701d1ddb70a9Han Ming Ong GetAsyncProfileData(char *dst, size_t dst_len) const; 81fb9cee64303d36d6fe5d87e63dd8701d1ddb70a9Han Ming Ong 8224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner void 83c833295baeec641086f536e78050388af36784f8Jim Ingham ReportEventState (const lldb::SBEvent &event, FILE *out) const; 8424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 8524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner void 86c833295baeec641086f536e78050388af36784f8Jim Ingham AppendEventStateReport (const lldb::SBEvent &event, lldb::SBCommandReturnObject &result); 8724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 8824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner //------------------------------------------------------------------ 89faf7f05749ea6e4011295cfd6947ea194e81d797Johnny Chen /// Remote connection related functions. These will fail if the 90faf7f05749ea6e4011295cfd6947ea194e81d797Johnny Chen /// process is not in eStateConnected. They are intended for use 91faf7f05749ea6e4011295cfd6947ea194e81d797Johnny Chen /// when connecting to an externally managed debugserver instance. 923809340ce8954dbeaf24907ece29cd6b179143eaJames McIlree //------------------------------------------------------------------ 933809340ce8954dbeaf24907ece29cd6b179143eaJames McIlree bool 943809340ce8954dbeaf24907ece29cd6b179143eaJames McIlree RemoteAttachToProcessWithID (lldb::pid_t pid, 953809340ce8954dbeaf24907ece29cd6b179143eaJames McIlree lldb::SBError& error); 963809340ce8954dbeaf24907ece29cd6b179143eaJames McIlree 973809340ce8954dbeaf24907ece29cd6b179143eaJames McIlree bool 983809340ce8954dbeaf24907ece29cd6b179143eaJames McIlree RemoteLaunch (char const **argv, 993809340ce8954dbeaf24907ece29cd6b179143eaJames McIlree char const **envp, 1003809340ce8954dbeaf24907ece29cd6b179143eaJames McIlree const char *stdin_path, 1013809340ce8954dbeaf24907ece29cd6b179143eaJames McIlree const char *stdout_path, 1023809340ce8954dbeaf24907ece29cd6b179143eaJames McIlree const char *stderr_path, 1033809340ce8954dbeaf24907ece29cd6b179143eaJames McIlree const char *working_directory, 1043809340ce8954dbeaf24907ece29cd6b179143eaJames McIlree uint32_t launch_flags, 1053809340ce8954dbeaf24907ece29cd6b179143eaJames McIlree bool stop_at_entry, 1063809340ce8954dbeaf24907ece29cd6b179143eaJames McIlree lldb::SBError& error); 1073809340ce8954dbeaf24907ece29cd6b179143eaJames McIlree 1083809340ce8954dbeaf24907ece29cd6b179143eaJames McIlree //------------------------------------------------------------------ 10924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner // Thread related functions 11024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner //------------------------------------------------------------------ 11124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner uint32_t 11224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner GetNumThreads (); 11324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 11424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner lldb::SBThread 11524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner GetThreadAtIndex (size_t index); 11624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 11724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner lldb::SBThread 11824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner GetThreadByID (lldb::tid_t sb_thread_id); 11924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 12024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner lldb::SBThread 121efbdd2280873cc87634bf4f4a37ab8b99662522aJim Ingham GetThreadByIndexID (uint32_t index_id); 122efbdd2280873cc87634bf4f4a37ab8b99662522aJim Ingham 123efbdd2280873cc87634bf4f4a37ab8b99662522aJim Ingham lldb::SBThread 124c833295baeec641086f536e78050388af36784f8Jim Ingham GetSelectedThread () const; 12524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 12652ebc0aab1fdecb634801deceeddd71a14c2148cGreg Clayton //------------------------------------------------------------------ 12752ebc0aab1fdecb634801deceeddd71a14c2148cGreg Clayton // Function for lazily creating a thread using the current OS 12852ebc0aab1fdecb634801deceeddd71a14c2148cGreg Clayton // plug-in. This function will be removed in the future when there 12952ebc0aab1fdecb634801deceeddd71a14c2148cGreg Clayton // are APIs to create SBThread objects through the interface and add 13052ebc0aab1fdecb634801deceeddd71a14c2148cGreg Clayton // them to the process through the SBProcess API. 13152ebc0aab1fdecb634801deceeddd71a14c2148cGreg Clayton //------------------------------------------------------------------ 13252ebc0aab1fdecb634801deceeddd71a14c2148cGreg Clayton lldb::SBThread 13352ebc0aab1fdecb634801deceeddd71a14c2148cGreg Clayton CreateOSPluginThread (lldb::tid_t tid, lldb::addr_t context); 13452ebc0aab1fdecb634801deceeddd71a14c2148cGreg Clayton 13524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool 136c833295baeec641086f536e78050388af36784f8Jim Ingham SetSelectedThread (const lldb::SBThread &thread); 13724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 13824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool 13982560f25ae1b4a55c927df9ccf1bd1becc01b1c1Greg Clayton SetSelectedThreadByID (lldb::tid_t tid); 140efbdd2280873cc87634bf4f4a37ab8b99662522aJim Ingham 141efbdd2280873cc87634bf4f4a37ab8b99662522aJim Ingham bool 142efbdd2280873cc87634bf4f4a37ab8b99662522aJim Ingham SetSelectedThreadByIndexID (uint32_t index_id); 14324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 14424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner //------------------------------------------------------------------ 14524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner // Stepping related functions 14624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner //------------------------------------------------------------------ 14724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 14824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner lldb::StateType 14924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner GetState (); 15024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 15124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner int 15224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner GetExitStatus (); 15324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 15424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner const char * 15524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner GetExitDescription (); 15624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 15764742744396c966e8de770e765130629b0c78335Greg Clayton //------------------------------------------------------------------ 15864742744396c966e8de770e765130629b0c78335Greg Clayton /// Gets the process ID 15964742744396c966e8de770e765130629b0c78335Greg Clayton /// 16064742744396c966e8de770e765130629b0c78335Greg Clayton /// Returns the process identifier for the process as it is known 16164742744396c966e8de770e765130629b0c78335Greg Clayton /// on the system on which the process is running. For unix systems 16264742744396c966e8de770e765130629b0c78335Greg Clayton /// this is typically the same as if you called "getpid()" in the 16364742744396c966e8de770e765130629b0c78335Greg Clayton /// process. 16464742744396c966e8de770e765130629b0c78335Greg Clayton /// 16564742744396c966e8de770e765130629b0c78335Greg Clayton /// @return 16664742744396c966e8de770e765130629b0c78335Greg Clayton /// Returns LLDB_INVALID_PROCESS_ID if this object does not 16764742744396c966e8de770e765130629b0c78335Greg Clayton /// contain a valid process object, or if the process has not 16864742744396c966e8de770e765130629b0c78335Greg Clayton /// been launched. Returns a valid process ID if the process is 16964742744396c966e8de770e765130629b0c78335Greg Clayton /// valid. 17064742744396c966e8de770e765130629b0c78335Greg Clayton //------------------------------------------------------------------ 17124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner lldb::pid_t 17224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner GetProcessID (); 17324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 17464742744396c966e8de770e765130629b0c78335Greg Clayton //------------------------------------------------------------------ 17564742744396c966e8de770e765130629b0c78335Greg Clayton /// Gets the unique ID associated with this process object 17664742744396c966e8de770e765130629b0c78335Greg Clayton /// 17764742744396c966e8de770e765130629b0c78335Greg Clayton /// Unique IDs start at 1 and increment up with each new process 17864742744396c966e8de770e765130629b0c78335Greg Clayton /// instance. Since starting a process on a system might always 17964742744396c966e8de770e765130629b0c78335Greg Clayton /// create a process with the same process ID, there needs to be a 18064742744396c966e8de770e765130629b0c78335Greg Clayton /// way to tell two process instances apart. 18164742744396c966e8de770e765130629b0c78335Greg Clayton /// 18264742744396c966e8de770e765130629b0c78335Greg Clayton /// @return 18364742744396c966e8de770e765130629b0c78335Greg Clayton /// Returns a non-zero integer ID if this object contains a 18464742744396c966e8de770e765130629b0c78335Greg Clayton /// valid process object, zero if this object does not contain 18564742744396c966e8de770e765130629b0c78335Greg Clayton /// a valid process object. 18664742744396c966e8de770e765130629b0c78335Greg Clayton //------------------------------------------------------------------ 18764742744396c966e8de770e765130629b0c78335Greg Clayton uint32_t 18864742744396c966e8de770e765130629b0c78335Greg Clayton GetUniqueID(); 18964742744396c966e8de770e765130629b0c78335Greg Clayton 19024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner uint32_t 19124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner GetAddressByteSize() const; 19224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 1930baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton lldb::SBError 19424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner Destroy (); 19524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 1960baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton lldb::SBError 19724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner Continue (); 19824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 1990baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton lldb::SBError 20024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner Stop (); 20124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 2020baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton lldb::SBError 20324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner Kill (); 20424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 2050baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton lldb::SBError 20624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner Detach (); 20724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 2080baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton lldb::SBError 209761afb822b18c46b2ad84be03f372e90ac1e6143Jim Ingham Detach (bool keep_stopped); 210761afb822b18c46b2ad84be03f372e90ac1e6143Jim Ingham 211761afb822b18c46b2ad84be03f372e90ac1e6143Jim Ingham lldb::SBError 21224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner Signal (int signal); 21324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 2145d90ade8e8e0d776fe8e1b9e88fc1c86d02e8e4eJim Ingham void 2155d90ade8e8e0d776fe8e1b9e88fc1c86d02e8e4eJim Ingham SendAsyncInterrupt(); 2165d90ade8e8e0d776fe8e1b9e88fc1c86d02e8e4eJim Ingham 2170e3b98e7de6d69613a9729bac9d4b965c0635698Jim Ingham uint32_t 2180e3b98e7de6d69613a9729bac9d4b965c0635698Jim Ingham GetStopID(bool include_expression_stops = false); 2190e3b98e7de6d69613a9729bac9d4b965c0635698Jim Ingham 22024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner size_t 2210baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton ReadMemory (addr_t addr, void *buf, size_t size, lldb::SBError &error); 22224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 22324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner size_t 2240baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton WriteMemory (addr_t addr, const void *buf, size_t size, lldb::SBError &error); 22524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 2264a2e33769873d68d5703da5742c0e248f46e3a72Greg Clayton size_t 2274a2e33769873d68d5703da5742c0e248f46e3a72Greg Clayton ReadCStringFromMemory (addr_t addr, void *buf, size_t size, lldb::SBError &error); 2284a2e33769873d68d5703da5742c0e248f46e3a72Greg Clayton 2294a2e33769873d68d5703da5742c0e248f46e3a72Greg Clayton uint64_t 2304a2e33769873d68d5703da5742c0e248f46e3a72Greg Clayton ReadUnsignedFromMemory (addr_t addr, uint32_t byte_size, lldb::SBError &error); 2314a2e33769873d68d5703da5742c0e248f46e3a72Greg Clayton 2324a2e33769873d68d5703da5742c0e248f46e3a72Greg Clayton lldb::addr_t 2334a2e33769873d68d5703da5742c0e248f46e3a72Greg Clayton ReadPointerFromMemory (addr_t addr, lldb::SBError &error); 2344a2e33769873d68d5703da5742c0e248f46e3a72Greg Clayton 23524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner // Events 23624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner static lldb::StateType 23724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner GetStateFromEvent (const lldb::SBEvent &event); 23824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 23924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner static bool 24024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner GetRestartedFromEvent (const lldb::SBEvent &event); 24189e248f04ecb87d0df4a4b96158c3fac0a3e43c7Jim Ingham 24289e248f04ecb87d0df4a4b96158c3fac0a3e43c7Jim Ingham static size_t 24389e248f04ecb87d0df4a4b96158c3fac0a3e43c7Jim Ingham GetNumRestartedReasonsFromEvent (const lldb::SBEvent &event); 24489e248f04ecb87d0df4a4b96158c3fac0a3e43c7Jim Ingham 24589e248f04ecb87d0df4a4b96158c3fac0a3e43c7Jim Ingham static const char * 24689e248f04ecb87d0df4a4b96158c3fac0a3e43c7Jim Ingham GetRestartedReasonAtIndexFromEvent (const lldb::SBEvent &event, size_t idx); 24724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 24824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner static lldb::SBProcess 24924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner GetProcessFromEvent (const lldb::SBEvent &event); 25028e23861bedbeb5e46be7d2af4c33bf5132422c6Jim Ingham 25128e23861bedbeb5e46be7d2af4c33bf5132422c6Jim Ingham static bool 25228e23861bedbeb5e46be7d2af4c33bf5132422c6Jim Ingham EventIsProcessEvent (const lldb::SBEvent &event); 25324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 25424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner lldb::SBBroadcaster 25524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner GetBroadcaster () const; 25624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 2575a15e6927b5b3234fb3e688717297ba6b5dd6ad7Jim Ingham static const char * 2585a15e6927b5b3234fb3e688717297ba6b5dd6ad7Jim Ingham GetBroadcasterClass (); 2595a15e6927b5b3234fb3e688717297ba6b5dd6ad7Jim Ingham 26098f930f429160f9777f626c3ac6aa609f4e965d2Caroline Tice bool 26198f930f429160f9777f626c3ac6aa609f4e965d2Caroline Tice GetDescription (lldb::SBStream &description); 26298f930f429160f9777f626c3ac6aa609f4e965d2Caroline Tice 2630baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton uint32_t 264191343e7213d3d717327319352d086f981fa8e58Johnny Chen GetNumSupportedHardwareWatchpoints (lldb::SBError &error) const; 265191343e7213d3d717327319352d086f981fa8e58Johnny Chen 266191343e7213d3d717327319352d086f981fa8e58Johnny Chen uint32_t 2670baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton LoadImage (lldb::SBFileSpec &image_spec, lldb::SBError &error); 2680baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton 2690baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton lldb::SBError 2700baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton UnloadImage (uint32_t image_token); 2719f074f0e030a74a3efd716a476b436f2d32bdf74Johnny Chen 27224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerprotected: 27324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner friend class SBAddress; 27424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner friend class SBBreakpoint; 27524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner friend class SBBreakpointLocation; 27624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner friend class SBCommandInterpreter; 27724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner friend class SBDebugger; 2785c4c746a3a83c1aad411c6cdc5f9525a4fc2d17eGreg Clayton friend class SBFunction; 279b5a8f1498e1ddaeed5187a878d57ea0b74af9c26Greg Clayton friend class SBModule; 28024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner friend class SBTarget; 28124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner friend class SBThread; 28224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner friend class SBValue; 28324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 284334d33a19fd28cf41cba74cc61cf149e7101a603Greg Clayton lldb::ProcessSP 285334d33a19fd28cf41cba74cc61cf149e7101a603Greg Clayton GetSP() const; 286334d33a19fd28cf41cba74cc61cf149e7101a603Greg Clayton 28724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner void 288334d33a19fd28cf41cba74cc61cf149e7101a603Greg Clayton SetSP (const lldb::ProcessSP &process_sp); 28924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 290bcaf99a74367d464dd38011e26b9b4be56b503baGreg Clayton lldb::ProcessWP m_opaque_wp; 29124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner}; 29224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 29324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner} // namespace lldb 29424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 29524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#endif // LLDB_SBProcess_h_ 296