SBProcess.h revision fb9cee64303d36d6fe5d87e63dd8701d1ddb70a9
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
54fee26ee9a5db37e71f5d5aed279c634bbdab7c8cJim Ingham    const char *
55fee26ee9a5db37e71f5d5aed279c634bbdab7c8cJim Ingham    GetShortPluginName ();
56fee26ee9a5db37e71f5d5aed279c634bbdab7c8cJim Ingham
5724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    void
5824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    Clear ();
5924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
6024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    bool
6124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    IsValid() const;
6224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
6324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    lldb::SBTarget
6424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    GetTarget() const;
6524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
6660a544f23362d4f2fbe1e68b9c5340aa5e11302cJohnny Chen    lldb::ByteOrder
6760a544f23362d4f2fbe1e68b9c5340aa5e11302cJohnny Chen    GetByteOrder() const;
6860a544f23362d4f2fbe1e68b9c5340aa5e11302cJohnny Chen
6924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    size_t
7024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    PutSTDIN (const char *src, size_t src_len);
7124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
7224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    size_t
7324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    GetSTDOUT (char *dst, size_t dst_len) const;
7424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
7524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    size_t
7624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    GetSTDERR (char *dst, size_t dst_len) const;
7724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
78fb9cee64303d36d6fe5d87e63dd8701d1ddb70a9Han Ming Ong    size_t
79fb9cee64303d36d6fe5d87e63dd8701d1ddb70a9Han Ming Ong    GetAsyncProfileData(char *dst, size_t dst_len) const;
80fb9cee64303d36d6fe5d87e63dd8701d1ddb70a9Han Ming Ong
8124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    void
82c833295baeec641086f536e78050388af36784f8Jim Ingham    ReportEventState (const lldb::SBEvent &event, FILE *out) const;
8324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
8424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    void
85c833295baeec641086f536e78050388af36784f8Jim Ingham    AppendEventStateReport (const lldb::SBEvent &event, lldb::SBCommandReturnObject &result);
8624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
8724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    //------------------------------------------------------------------
88faf7f05749ea6e4011295cfd6947ea194e81d797Johnny Chen    /// Remote connection related functions. These will fail if the
89faf7f05749ea6e4011295cfd6947ea194e81d797Johnny Chen    /// process is not in eStateConnected. They are intended for use
90faf7f05749ea6e4011295cfd6947ea194e81d797Johnny Chen    /// when connecting to an externally managed debugserver instance.
913809340ce8954dbeaf24907ece29cd6b179143eaJames McIlree    //------------------------------------------------------------------
923809340ce8954dbeaf24907ece29cd6b179143eaJames McIlree    bool
933809340ce8954dbeaf24907ece29cd6b179143eaJames McIlree    RemoteAttachToProcessWithID (lldb::pid_t pid,
943809340ce8954dbeaf24907ece29cd6b179143eaJames McIlree                                 lldb::SBError& error);
953809340ce8954dbeaf24907ece29cd6b179143eaJames McIlree
963809340ce8954dbeaf24907ece29cd6b179143eaJames McIlree    bool
973809340ce8954dbeaf24907ece29cd6b179143eaJames McIlree    RemoteLaunch (char const **argv,
983809340ce8954dbeaf24907ece29cd6b179143eaJames McIlree                  char const **envp,
993809340ce8954dbeaf24907ece29cd6b179143eaJames McIlree                  const char *stdin_path,
1003809340ce8954dbeaf24907ece29cd6b179143eaJames McIlree                  const char *stdout_path,
1013809340ce8954dbeaf24907ece29cd6b179143eaJames McIlree                  const char *stderr_path,
1023809340ce8954dbeaf24907ece29cd6b179143eaJames McIlree                  const char *working_directory,
1033809340ce8954dbeaf24907ece29cd6b179143eaJames McIlree                  uint32_t launch_flags,
1043809340ce8954dbeaf24907ece29cd6b179143eaJames McIlree                  bool stop_at_entry,
1053809340ce8954dbeaf24907ece29cd6b179143eaJames McIlree                  lldb::SBError& error);
1063809340ce8954dbeaf24907ece29cd6b179143eaJames McIlree
1073809340ce8954dbeaf24907ece29cd6b179143eaJames McIlree    //------------------------------------------------------------------
10824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    // Thread related functions
10924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    //------------------------------------------------------------------
11024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    uint32_t
11124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    GetNumThreads ();
11224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
11324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    lldb::SBThread
11424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    GetThreadAtIndex (size_t index);
11524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
11624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    lldb::SBThread
11724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    GetThreadByID (lldb::tid_t sb_thread_id);
11824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
11924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    lldb::SBThread
120efbdd2280873cc87634bf4f4a37ab8b99662522aJim Ingham    GetThreadByIndexID (uint32_t index_id);
121efbdd2280873cc87634bf4f4a37ab8b99662522aJim Ingham
122efbdd2280873cc87634bf4f4a37ab8b99662522aJim Ingham    lldb::SBThread
123c833295baeec641086f536e78050388af36784f8Jim Ingham    GetSelectedThread () const;
12424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
12524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    bool
126c833295baeec641086f536e78050388af36784f8Jim Ingham    SetSelectedThread (const lldb::SBThread &thread);
12724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
12824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    bool
12982560f25ae1b4a55c927df9ccf1bd1becc01b1c1Greg Clayton    SetSelectedThreadByID (lldb::tid_t tid);
130efbdd2280873cc87634bf4f4a37ab8b99662522aJim Ingham
131efbdd2280873cc87634bf4f4a37ab8b99662522aJim Ingham    bool
132efbdd2280873cc87634bf4f4a37ab8b99662522aJim Ingham    SetSelectedThreadByIndexID (uint32_t index_id);
13324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
13424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    //------------------------------------------------------------------
13524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    // Stepping related functions
13624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    //------------------------------------------------------------------
13724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
13824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    lldb::StateType
13924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    GetState ();
14024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
14124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    int
14224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    GetExitStatus ();
14324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
14424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    const char *
14524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    GetExitDescription ();
14624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
14724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    lldb::pid_t
14824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    GetProcessID ();
14924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
15024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    uint32_t
15124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    GetAddressByteSize() const;
15224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
1530baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton    lldb::SBError
15424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    Destroy ();
15524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
1560baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton    lldb::SBError
15724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    Continue ();
15824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
1590baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton    lldb::SBError
16024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    Stop ();
16124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
1620baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton    lldb::SBError
16324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    Kill ();
16424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
1650baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton    lldb::SBError
16624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    Detach ();
16724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
1680baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton    lldb::SBError
16924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    Signal (int signal);
17024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
1715d90ade8e8e0d776fe8e1b9e88fc1c86d02e8e4eJim Ingham    void
1725d90ade8e8e0d776fe8e1b9e88fc1c86d02e8e4eJim Ingham    SendAsyncInterrupt();
1735d90ade8e8e0d776fe8e1b9e88fc1c86d02e8e4eJim Ingham
17424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    size_t
1750baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton    ReadMemory (addr_t addr, void *buf, size_t size, lldb::SBError &error);
17624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
17724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    size_t
1780baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton    WriteMemory (addr_t addr, const void *buf, size_t size, lldb::SBError &error);
17924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
1804a2e33769873d68d5703da5742c0e248f46e3a72Greg Clayton    size_t
1814a2e33769873d68d5703da5742c0e248f46e3a72Greg Clayton    ReadCStringFromMemory (addr_t addr, void *buf, size_t size, lldb::SBError &error);
1824a2e33769873d68d5703da5742c0e248f46e3a72Greg Clayton
1834a2e33769873d68d5703da5742c0e248f46e3a72Greg Clayton    uint64_t
1844a2e33769873d68d5703da5742c0e248f46e3a72Greg Clayton    ReadUnsignedFromMemory (addr_t addr, uint32_t byte_size, lldb::SBError &error);
1854a2e33769873d68d5703da5742c0e248f46e3a72Greg Clayton
1864a2e33769873d68d5703da5742c0e248f46e3a72Greg Clayton    lldb::addr_t
1874a2e33769873d68d5703da5742c0e248f46e3a72Greg Clayton    ReadPointerFromMemory (addr_t addr, lldb::SBError &error);
1884a2e33769873d68d5703da5742c0e248f46e3a72Greg Clayton
18924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    // Events
19024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    static lldb::StateType
19124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    GetStateFromEvent (const lldb::SBEvent &event);
19224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
19324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    static bool
19424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    GetRestartedFromEvent (const lldb::SBEvent &event);
19524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
19624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    static lldb::SBProcess
19724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    GetProcessFromEvent (const lldb::SBEvent &event);
19828e23861bedbeb5e46be7d2af4c33bf5132422c6Jim Ingham
19928e23861bedbeb5e46be7d2af4c33bf5132422c6Jim Ingham    static bool
20028e23861bedbeb5e46be7d2af4c33bf5132422c6Jim Ingham    EventIsProcessEvent (const lldb::SBEvent &event);
20124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
20224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    lldb::SBBroadcaster
20324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    GetBroadcaster () const;
20424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
2055a15e6927b5b3234fb3e688717297ba6b5dd6ad7Jim Ingham    static const char *
2065a15e6927b5b3234fb3e688717297ba6b5dd6ad7Jim Ingham    GetBroadcasterClass ();
2075a15e6927b5b3234fb3e688717297ba6b5dd6ad7Jim Ingham
20898f930f429160f9777f626c3ac6aa609f4e965d2Caroline Tice    bool
20998f930f429160f9777f626c3ac6aa609f4e965d2Caroline Tice    GetDescription (lldb::SBStream &description);
21098f930f429160f9777f626c3ac6aa609f4e965d2Caroline Tice
2110baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton    uint32_t
212191343e7213d3d717327319352d086f981fa8e58Johnny Chen    GetNumSupportedHardwareWatchpoints (lldb::SBError &error) const;
213191343e7213d3d717327319352d086f981fa8e58Johnny Chen
214191343e7213d3d717327319352d086f981fa8e58Johnny Chen    uint32_t
2150baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton    LoadImage (lldb::SBFileSpec &image_spec, lldb::SBError &error);
2160baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton
2170baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton    lldb::SBError
2180baa394cd55c6dfb7a6259d215d0dea2b708067bGreg Clayton    UnloadImage (uint32_t image_token);
2199f074f0e030a74a3efd716a476b436f2d32bdf74Johnny Chen
22024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerprotected:
22124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    friend class SBAddress;
22224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    friend class SBBreakpoint;
22324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    friend class SBBreakpointLocation;
22424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    friend class SBCommandInterpreter;
22524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    friend class SBDebugger;
2265c4c746a3a83c1aad411c6cdc5f9525a4fc2d17eGreg Clayton    friend class SBFunction;
227b5a8f1498e1ddaeed5187a878d57ea0b74af9c26Greg Clayton    friend class SBModule;
22824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    friend class SBTarget;
22924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    friend class SBThread;
23024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    friend class SBValue;
23124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
232334d33a19fd28cf41cba74cc61cf149e7101a603Greg Clayton    lldb::ProcessSP
233334d33a19fd28cf41cba74cc61cf149e7101a603Greg Clayton    GetSP() const;
234334d33a19fd28cf41cba74cc61cf149e7101a603Greg Clayton
23524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    void
236334d33a19fd28cf41cba74cc61cf149e7101a603Greg Clayton    SetSP (const lldb::ProcessSP &process_sp);
23724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
238bcaf99a74367d464dd38011e26b9b4be56b503baGreg Clayton    lldb::ProcessWP m_opaque_wp;
23924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner};
24024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
24124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner}  // namespace lldb
24224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
24324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#endif  // LLDB_SBProcess_h_
244