124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//===-- SBTarget.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_SBTarget_h_ 1124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#define LLDB_SBTarget_h_ 1224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 135f81547fd786584b10999c087528b323b5945896Eli Friedman#include "lldb/API/SBDefines.h" 14a395506fb374f1f589d0d860f5e6c9fa7b1e0b9aGreg Clayton#include "lldb/API/SBAddress.h" 155f81547fd786584b10999c087528b323b5945896Eli Friedman#include "lldb/API/SBBroadcaster.h" 165f81547fd786584b10999c087528b323b5945896Eli Friedman#include "lldb/API/SBFileSpec.h" 17d6d47976b71187907c1cdeea86fabf7d5534314fJim Ingham#include "lldb/API/SBFileSpecList.h" 1896f6df8db3ce08861efe8d061b1daef328a4a4c0Sean Callanan#include "lldb/API/SBSymbolContextList.h" 19979e20d127335143ffc89c2e37ec3a8b717ff22dEnrico Granata#include "lldb/API/SBType.h" 2019b646725e7d6bebda787fa3cb55ff223a00d907Greg Clayton#include "lldb/API/SBValue.h" 211fa6b3d6c83955fe06c63d3a4025f2c0ec431d68Greg Clayton#include "lldb/API/SBWatchpoint.h" 2224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 2324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnernamespace lldb { 2424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 250a8dcacde404c520f1131c641041dceb9f68b6faGreg Claytonclass SBLaunchInfo 260a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton{ 270a8dcacde404c520f1131c641041dceb9f68b6faGreg Claytonpublic: 2898ca1e668c33bad3095da78977aaa3ee0043e6d7Greg Clayton SBLaunchInfo (const char **argv); 290a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 3066c2e19e7c343e1ff0fd31180a12f8a68fc61b6cGreg Clayton ~SBLaunchInfo(); 3166c2e19e7c343e1ff0fd31180a12f8a68fc61b6cGreg Clayton 320a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton uint32_t 330a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton GetUserID(); 340a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 350a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton uint32_t 360a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton GetGroupID(); 370a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 380a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton bool 390a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton UserIDIsValid (); 400a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 410a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton bool 420a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton GroupIDIsValid (); 430a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 440a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton void 450a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton SetUserID (uint32_t uid); 460a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 470a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton void 480a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton SetGroupID (uint32_t gid); 490a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 500a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton uint32_t 510a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton GetNumArguments (); 520a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 530a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton const char * 540a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton GetArgumentAtIndex (uint32_t idx); 550a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 560a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton void 570a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton SetArguments (const char **argv, bool append); 580a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 590a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton uint32_t 600a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton GetNumEnvironmentEntries (); 610a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 620a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton const char * 630a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton GetEnvironmentEntryAtIndex (uint32_t idx); 640a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 650a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton void 660a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton SetEnvironmentEntries (const char **envp, bool append); 670a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 680a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton void 690a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton Clear (); 700a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 710a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton const char * 720a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton GetWorkingDirectory () const; 730a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 740a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton void 750a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton SetWorkingDirectory (const char *working_dir); 760a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 770a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton uint32_t 780a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton GetLaunchFlags (); 790a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 800a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton void 810a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton SetLaunchFlags (uint32_t flags); 820a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 830a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton const char * 840a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton GetProcessPluginName (); 850a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 860a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton void 870a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton SetProcessPluginName (const char *plugin_name); 880a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 890a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton const char * 900a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton GetShell (); 910a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 920a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton void 930a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton SetShell (const char * path); 940a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 950a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton uint32_t 960a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton GetResumeCount (); 970a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 980a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton void 990a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton SetResumeCount (uint32_t c); 1000a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 1010a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton bool 1020a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton AddCloseFileAction (int fd); 1030a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 1040a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton bool 1050a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton AddDuplicateFileAction (int fd, int dup_fd); 1060a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 1070a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton bool 1080a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton AddOpenFileAction (int fd, const char *path, bool read, bool write); 1090a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 1100a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton bool 1110a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton AddSuppressFileAction (int fd, bool read, bool write); 1120a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 1130a8dcacde404c520f1131c641041dceb9f68b6faGreg Claytonprotected: 1140a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton friend class SBTarget; 1150a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 1160a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton lldb_private::ProcessLaunchInfo & 11766c2e19e7c343e1ff0fd31180a12f8a68fc61b6cGreg Clayton ref (); 1180a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 1190a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton ProcessLaunchInfoSP m_opaque_sp; 1200a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton}; 1210a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 1220a8dcacde404c520f1131c641041dceb9f68b6faGreg Claytonclass SBAttachInfo 1230a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton{ 1240a8dcacde404c520f1131c641041dceb9f68b6faGreg Claytonpublic: 1250a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton SBAttachInfo (); 1260a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 1270a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton SBAttachInfo (lldb::pid_t pid); 1280a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 1290a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton SBAttachInfo (const char *path, bool wait_for); 1300a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 1310a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton SBAttachInfo (const SBAttachInfo &rhs); 1320a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 13366c2e19e7c343e1ff0fd31180a12f8a68fc61b6cGreg Clayton ~SBAttachInfo(); 13466c2e19e7c343e1ff0fd31180a12f8a68fc61b6cGreg Clayton 1350a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton SBAttachInfo & 1360a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton operator = (const SBAttachInfo &rhs); 1370a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 1380a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton lldb::pid_t 1390a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton GetProcessID (); 1400a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 1410a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton void 1420a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton SetProcessID (lldb::pid_t pid); 1430a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 1440a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton void 1450a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton SetExecutable (const char *path); 1460a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 1470a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton void 1480a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton SetExecutable (lldb::SBFileSpec exe_file); 1490a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 1500a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton bool 1510a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton GetWaitForLaunch (); 1520a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 1530a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton void 1540a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton SetWaitForLaunch (bool b); 1550a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 1563a458eb1e413d39546b664813bba9f9ac292357eJim Ingham bool 1573a458eb1e413d39546b664813bba9f9ac292357eJim Ingham GetIgnoreExisting (); 1583a458eb1e413d39546b664813bba9f9ac292357eJim Ingham 1593a458eb1e413d39546b664813bba9f9ac292357eJim Ingham void 1603a458eb1e413d39546b664813bba9f9ac292357eJim Ingham SetIgnoreExisting (bool b); 1613a458eb1e413d39546b664813bba9f9ac292357eJim Ingham 1620a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton uint32_t 1630a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton GetResumeCount (); 1640a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 1650a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton void 1660a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton SetResumeCount (uint32_t c); 1670a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 1680a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton const char * 1690a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton GetProcessPluginName (); 1700a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 1710a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton void 1720a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton SetProcessPluginName (const char *plugin_name); 1730a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 1740a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton uint32_t 17580efa5e90a2924575e068cc44ee53e480e1d1467Greg Clayton GetUserID(); 17680efa5e90a2924575e068cc44ee53e480e1d1467Greg Clayton 17780efa5e90a2924575e068cc44ee53e480e1d1467Greg Clayton uint32_t 17880efa5e90a2924575e068cc44ee53e480e1d1467Greg Clayton GetGroupID(); 17980efa5e90a2924575e068cc44ee53e480e1d1467Greg Clayton 18080efa5e90a2924575e068cc44ee53e480e1d1467Greg Clayton bool 18180efa5e90a2924575e068cc44ee53e480e1d1467Greg Clayton UserIDIsValid (); 18280efa5e90a2924575e068cc44ee53e480e1d1467Greg Clayton 18380efa5e90a2924575e068cc44ee53e480e1d1467Greg Clayton bool 18480efa5e90a2924575e068cc44ee53e480e1d1467Greg Clayton GroupIDIsValid (); 18580efa5e90a2924575e068cc44ee53e480e1d1467Greg Clayton 18680efa5e90a2924575e068cc44ee53e480e1d1467Greg Clayton void 18780efa5e90a2924575e068cc44ee53e480e1d1467Greg Clayton SetUserID (uint32_t uid); 18880efa5e90a2924575e068cc44ee53e480e1d1467Greg Clayton 18980efa5e90a2924575e068cc44ee53e480e1d1467Greg Clayton void 19080efa5e90a2924575e068cc44ee53e480e1d1467Greg Clayton SetGroupID (uint32_t gid); 19180efa5e90a2924575e068cc44ee53e480e1d1467Greg Clayton 19280efa5e90a2924575e068cc44ee53e480e1d1467Greg Clayton uint32_t 1930a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton GetEffectiveUserID(); 1940a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 1950a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton uint32_t 1960a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton GetEffectiveGroupID(); 1970a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 1980a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton bool 1990a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton EffectiveUserIDIsValid (); 2000a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 2010a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton bool 2020a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton EffectiveGroupIDIsValid (); 2030a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 2040a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton void 2050a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton SetEffectiveUserID (uint32_t uid); 2060a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 2070a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton void 2080a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton SetEffectiveGroupID (uint32_t gid); 2090a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 2100a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton lldb::pid_t 2110a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton GetParentProcessID (); 2120a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 2130a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton void 2140a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton SetParentProcessID (lldb::pid_t pid); 2150a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 2160a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton bool 2170a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton ParentProcessIDIsValid(); 2180a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 2190a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 2200a8dcacde404c520f1131c641041dceb9f68b6faGreg Claytonprotected: 2210a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton friend class SBTarget; 2220a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 2230a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton lldb_private::ProcessAttachInfo & 22466c2e19e7c343e1ff0fd31180a12f8a68fc61b6cGreg Clayton ref (); 2250a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 2260a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton ProcessAttachInfoSP m_opaque_sp; 2270a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton}; 22824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 22924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass SBTarget 23024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner{ 23124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerpublic: 23224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner //------------------------------------------------------------------ 23324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner // Broadcaster bits. 23424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner //------------------------------------------------------------------ 23524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner enum 23624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner { 23724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner eBroadcastBitBreakpointChanged = (1 << 0), 23824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner eBroadcastBitModulesLoaded = (1 << 1), 2399c970a371511a0e31ba9360aa841d445792c1ab0Jim Ingham eBroadcastBitModulesUnloaded = (1 << 2), 24012fbcf5bdbc54e49bf565ec067b3b484c28a52feEnrico Granata eBroadcastBitWatchpointChanged = (1 << 3), 24112fbcf5bdbc54e49bf565ec067b3b484c28a52feEnrico Granata eBroadcastBitSymbolsLoaded = (1 << 4) 24224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner }; 24324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 24424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner //------------------------------------------------------------------ 245538eb82a89a68dbc57251915080bd5152b333978Greg Clayton // Constructors 24624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner //------------------------------------------------------------------ 247538eb82a89a68dbc57251915080bd5152b333978Greg Clayton SBTarget (); 248538eb82a89a68dbc57251915080bd5152b333978Greg Clayton 24924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner SBTarget (const lldb::SBTarget& rhs); 25024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 251001cd53e9d8d9e481ada536924ea7563b84ee9cfEnrico Granata SBTarget (const lldb::TargetSP& target_sp); 252001cd53e9d8d9e481ada536924ea7563b84ee9cfEnrico Granata 253538eb82a89a68dbc57251915080bd5152b333978Greg Clayton const lldb::SBTarget& 254538eb82a89a68dbc57251915080bd5152b333978Greg Clayton operator = (const lldb::SBTarget& rhs); 25524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 25624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner //------------------------------------------------------------------ 25724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner // Destructor 25824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner //------------------------------------------------------------------ 25924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner ~SBTarget(); 26024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 26124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool 26224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner IsValid() const; 2635a15e6927b5b3234fb3e688717297ba6b5dd6ad7Jim Ingham 2645a15e6927b5b3234fb3e688717297ba6b5dd6ad7Jim Ingham static const char * 2655a15e6927b5b3234fb3e688717297ba6b5dd6ad7Jim Ingham GetBroadcasterClassName (); 26624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 26724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner lldb::SBProcess 26824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner GetProcess (); 26924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 270271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton //------------------------------------------------------------------ 271271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// Launch a new process. 272271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// 273271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// Launch a new process by spawning a new process using the 274271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// target object's executable module's file as the file to launch. 275271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// Arguments are given in \a argv, and the environment variables 276271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// are in \a envp. Standard input and output files can be 277271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// optionally re-directed to \a stdin_path, \a stdout_path, and 278271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// \a stderr_path. 279271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// 280271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// @param[in] listener 281271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// An optional listener that will receive all process events. 282271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// If \a listener is valid then \a listener will listen to all 283271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// process events. If not valid, then this target's debugger 284271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// (SBTarget::GetDebugger()) will listen to all process events. 285271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// 286271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// @param[in] argv 287271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// The argument array. 288271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// 289271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// @param[in] envp 290271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// The environment array. 291271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// 292271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// @param[in] launch_flags 293271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// Flags to modify the launch (@see lldb::LaunchFlags) 294271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// 295271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// @param[in] stdin_path 296271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// The path to use when re-directing the STDIN of the new 297271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// process. If all stdXX_path arguments are NULL, a pseudo 298271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// terminal will be used. 299271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// 300271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// @param[in] stdout_path 301271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// The path to use when re-directing the STDOUT of the new 302271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// process. If all stdXX_path arguments are NULL, a pseudo 303271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// terminal will be used. 304271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// 305271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// @param[in] stderr_path 306271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// The path to use when re-directing the STDERR of the new 307271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// process. If all stdXX_path arguments are NULL, a pseudo 308271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// terminal will be used. 309271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// 310271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// @param[in] working_directory 311271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// The working directory to have the child process run in 312271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// 313271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// @param[in] launch_flags 314271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// Some launch options specified by logical OR'ing 315271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// lldb::LaunchFlags enumeration values together. 316271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// 317c22fb5ea4657d8c7c20a87de75cd57acaf32ec8aJohnny Chen /// @param[in] stop_at_endtry 318c22fb5ea4657d8c7c20a87de75cd57acaf32ec8aJohnny Chen /// If false do not stop the inferior at the entry point. 319c22fb5ea4657d8c7c20a87de75cd57acaf32ec8aJohnny Chen /// 320b5871fe4d11a06d5f468a607059a361cbdc25e1dJim Ingham /// @param[out] 321b5871fe4d11a06d5f468a607059a361cbdc25e1dJim Ingham /// An error object. Contains the reason if there is some failure. 322b5871fe4d11a06d5f468a607059a361cbdc25e1dJim Ingham /// 323271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// @return 324b5871fe4d11a06d5f468a607059a361cbdc25e1dJim Ingham /// A process object for the newly created process. 325271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton //------------------------------------------------------------------ 326c5f728c81b4896cfbbc87ed1daedf42ba2c0ee63Greg Clayton lldb::SBProcess 327271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton Launch (SBListener &listener, 328271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton char const **argv, 329d8c625380b56759fc3fef8b9cf0389ae1a07f44dGreg Clayton char const **envp, 330de915beb5febe597505ba33fdc2c39eea2abdbd4Greg Clayton const char *stdin_path, 331de915beb5febe597505ba33fdc2c39eea2abdbd4Greg Clayton const char *stdout_path, 332de915beb5febe597505ba33fdc2c39eea2abdbd4Greg Clayton const char *stderr_path, 333de915beb5febe597505ba33fdc2c39eea2abdbd4Greg Clayton const char *working_directory, 334d8c625380b56759fc3fef8b9cf0389ae1a07f44dGreg Clayton uint32_t launch_flags, // See LaunchFlags 335d8c625380b56759fc3fef8b9cf0389ae1a07f44dGreg Clayton bool stop_at_entry, 336d8c625380b56759fc3fef8b9cf0389ae1a07f44dGreg Clayton lldb::SBError& error); 337b5871fe4d11a06d5f468a607059a361cbdc25e1dJim Ingham 338d8c625380b56759fc3fef8b9cf0389ae1a07f44dGreg Clayton 339271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton //------------------------------------------------------------------ 340b5871fe4d11a06d5f468a607059a361cbdc25e1dJim Ingham /// Launch a new process with sensible defaults. 341271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// 342271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// @param[in] argv 343271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// The argument array. 344271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// 345271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// @param[in] envp 346271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// The environment array. 347271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// 348271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// @param[in] working_directory 349271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// The working directory to have the child process run in 350271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// 351b5871fe4d11a06d5f468a607059a361cbdc25e1dJim Ingham /// Default: listener 352b5871fe4d11a06d5f468a607059a361cbdc25e1dJim Ingham /// Set to the target's debugger (SBTarget::GetDebugger()) 353b5871fe4d11a06d5f468a607059a361cbdc25e1dJim Ingham /// 354b5871fe4d11a06d5f468a607059a361cbdc25e1dJim Ingham /// Default: launch_flags 355b5871fe4d11a06d5f468a607059a361cbdc25e1dJim Ingham /// Empty launch flags 356b5871fe4d11a06d5f468a607059a361cbdc25e1dJim Ingham /// 357b5871fe4d11a06d5f468a607059a361cbdc25e1dJim Ingham /// Default: stdin_path 358b5871fe4d11a06d5f468a607059a361cbdc25e1dJim Ingham /// Default: stdout_path 359b5871fe4d11a06d5f468a607059a361cbdc25e1dJim Ingham /// Default: stderr_path 360b5871fe4d11a06d5f468a607059a361cbdc25e1dJim Ingham /// A pseudo terminal will be used. 361271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// 362271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton /// @return 363b5871fe4d11a06d5f468a607059a361cbdc25e1dJim Ingham /// A process object for the newly created process. 364271a5db096ae183e9235ebd273c4a6aab6130b3eGreg Clayton //------------------------------------------------------------------ 3650a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton SBProcess 366b5871fe4d11a06d5f468a607059a361cbdc25e1dJim Ingham LaunchSimple (const char **argv, 367b5871fe4d11a06d5f468a607059a361cbdc25e1dJim Ingham const char **envp, 368b5871fe4d11a06d5f468a607059a361cbdc25e1dJim Ingham const char *working_directory); 369b5871fe4d11a06d5f468a607059a361cbdc25e1dJim Ingham 3700a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton SBProcess 3710a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton Launch (SBLaunchInfo &launch_info, SBError& error); 37259b96d5fdda21be0c7abbe7567af75239748be61Greg Clayton 37359b96d5fdda21be0c7abbe7567af75239748be61Greg Clayton SBProcess 37459b96d5fdda21be0c7abbe7567af75239748be61Greg Clayton LoadCore (const char *core_file); 3750a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 3760a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton SBProcess 3770a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton Attach (SBAttachInfo &attach_info, SBError& error); 3780a8dcacde404c520f1131c641041dceb9f68b6faGreg Clayton 37909e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen //------------------------------------------------------------------ 38009e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen /// Attach to process with pid. 38109e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen /// 38209e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen /// @param[in] listener 38309e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen /// An optional listener that will receive all process events. 38409e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen /// If \a listener is valid then \a listener will listen to all 38509e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen /// process events. If not valid, then this target's debugger 38609e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen /// (SBTarget::GetDebugger()) will listen to all process events. 38709e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen /// 38809e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen /// @param[in] pid 38909e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen /// The process ID to attach to. 39009e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen /// 39109e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen /// @param[out] 39209e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen /// An error explaining what went wrong if attach fails. 39309e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen /// 39409e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen /// @return 39509e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen /// A process object for the attached process. 39609e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen //------------------------------------------------------------------ 397b5871fe4d11a06d5f468a607059a361cbdc25e1dJim Ingham lldb::SBProcess 39809e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen AttachToProcessWithID (SBListener &listener, 39909e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen lldb::pid_t pid, 40009e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen lldb::SBError& error); 401c5f728c81b4896cfbbc87ed1daedf42ba2c0ee63Greg Clayton 402d5b0b447221ab6e1fe5c5223c6bf7604d4377e8bGreg Clayton#if defined(__APPLE__) 403d5b0b447221ab6e1fe5c5223c6bf7604d4377e8bGreg Clayton // We need to keep this around for a build or two since Xcode links 404d5b0b447221ab6e1fe5c5223c6bf7604d4377e8bGreg Clayton // to the 32 bit version of this function. We will take it out soon. 405d5b0b447221ab6e1fe5c5223c6bf7604d4377e8bGreg Clayton lldb::SBProcess 406d5b0b447221ab6e1fe5c5223c6bf7604d4377e8bGreg Clayton AttachToProcessWithID (SBListener &listener, 407d5b0b447221ab6e1fe5c5223c6bf7604d4377e8bGreg Clayton ::pid_t pid, // 32 bit int process ID 408d5b0b447221ab6e1fe5c5223c6bf7604d4377e8bGreg Clayton lldb::SBError& error); // DEPRECATED 409d5b0b447221ab6e1fe5c5223c6bf7604d4377e8bGreg Clayton#endif 41009e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen //------------------------------------------------------------------ 41109e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen /// Attach to process with name. 41209e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen /// 41309e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen /// @param[in] listener 41409e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen /// An optional listener that will receive all process events. 41509e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen /// If \a listener is valid then \a listener will listen to all 41609e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen /// process events. If not valid, then this target's debugger 41709e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen /// (SBTarget::GetDebugger()) will listen to all process events. 41809e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen /// 41909e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen /// @param[in] name 42009e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen /// Basename of process to attach to. 42109e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen /// 42209e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen /// @param[in] wait_for 42309e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen /// If true wait for a new instance of 'name' to be launched. 42409e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen /// 42509e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen /// @param[out] 42609e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen /// An error explaining what went wrong if attach fails. 42709e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen /// 42809e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen /// @return 42909e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen /// A process object for the attached process. 43009e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen //------------------------------------------------------------------ 431c5f728c81b4896cfbbc87ed1daedf42ba2c0ee63Greg Clayton lldb::SBProcess 43209e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen AttachToProcessWithName (SBListener &listener, 43309e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen const char *name, 43409e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen bool wait_for, 43509e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen lldb::SBError& error); 436c5f728c81b4896cfbbc87ed1daedf42ba2c0ee63Greg Clayton 43709e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen //------------------------------------------------------------------ 4387b1b875d7f76905b9b1f1f347b073e87437e760cJohnny Chen /// Connect to a remote debug server with url. 43909e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen /// 44009e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen /// @param[in] listener 44109e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen /// An optional listener that will receive all process events. 44209e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen /// If \a listener is valid then \a listener will listen to all 44309e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen /// process events. If not valid, then this target's debugger 44409e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen /// (SBTarget::GetDebugger()) will listen to all process events. 44509e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen /// 44609e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen /// @param[in] url 44709e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen /// The url to connect to, e.g., 'connect://localhost:12345'. 44809e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen /// 44909e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen /// @param[in] plugin_name 45009e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen /// The plugin name to be used; can be NULL. 45109e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen /// 45209e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen /// @param[out] 45309e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen /// An error explaining what went wrong if the connect fails. 45409e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen /// 45509e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen /// @return 45609e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen /// A process object for the connected process. 45709e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen //------------------------------------------------------------------ 4583809340ce8954dbeaf24907ece29cd6b179143eaJames McIlree lldb::SBProcess 4593809340ce8954dbeaf24907ece29cd6b179143eaJames McIlree ConnectRemote (SBListener &listener, 4603809340ce8954dbeaf24907ece29cd6b179143eaJames McIlree const char *url, 46109e0a42211591a7ee4de26cdb80350568eab40ecJohnny Chen const char *plugin_name, 4623809340ce8954dbeaf24907ece29cd6b179143eaJames McIlree SBError& error); 4633809340ce8954dbeaf24907ece29cd6b179143eaJames McIlree 46424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner lldb::SBFileSpec 46524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner GetExecutable (); 46624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 4673e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton bool 4683e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton AddModule (lldb::SBModule &module); 4693e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton 4703e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton lldb::SBModule 4713e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton AddModule (const char *path, 4723e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton const char *triple, 4733e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton const char *uuid); 4743e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton 475f0bc81575b0048a004add5e0212a6a15757dbdb0Greg Clayton lldb::SBModule 476f0bc81575b0048a004add5e0212a6a15757dbdb0Greg Clayton AddModule (const char *path, 477f0bc81575b0048a004add5e0212a6a15757dbdb0Greg Clayton const char *triple, 478f0bc81575b0048a004add5e0212a6a15757dbdb0Greg Clayton const char *uuid_cstr, 479f0bc81575b0048a004add5e0212a6a15757dbdb0Greg Clayton const char *symfile); 480f9215bae3f7f76ad98bace0097821a12415690c5Greg Clayton 481f9215bae3f7f76ad98bace0097821a12415690c5Greg Clayton lldb::SBModule 482f9215bae3f7f76ad98bace0097821a12415690c5Greg Clayton AddModule (const SBModuleSpec &module_spec); 483f9215bae3f7f76ad98bace0097821a12415690c5Greg Clayton 48424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner uint32_t 48524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner GetNumModules () const; 48624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 48724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner lldb::SBModule 48824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner GetModuleAtIndex (uint32_t idx); 48924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 4903e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton bool 4913e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton RemoveModule (lldb::SBModule module); 4923e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton 49363094e0bb161580564954dee512955c1c79d3476Greg Clayton lldb::SBDebugger 49463094e0bb161580564954dee512955c1c79d3476Greg Clayton GetDebugger() const; 49563094e0bb161580564954dee512955c1c79d3476Greg Clayton 49624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner lldb::SBModule 49724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner FindModule (const lldb::SBFileSpec &file_spec); 49824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 4991b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton lldb::ByteOrder 5001b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton GetByteOrder (); 5011b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton 5021b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton uint32_t 5031b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton GetAddressByteSize(); 5041b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton 5051b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton const char * 5061b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton GetTriple (); 5071b925206e3c4867fea9eb55a4c6460962cf32564Greg Clayton 50867dde8e176c0ab62056911a3165b62fdcc6259edJohnny Chen //------------------------------------------------------------------ 5093e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton /// Set the base load address for a module section. 5103e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton /// 5113e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton /// @param[in] section 5123e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton /// The section whose base load address will be set within this 5133e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton /// target. 5143e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton /// 5153e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton /// @param[in] section_base_addr 5163e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton /// The base address for the section. 5173e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton /// 5183e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton /// @return 5193e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton /// An error to indicate success, fail, and any reason for 5203e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton /// failure. 5213e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton //------------------------------------------------------------------ 5223e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton lldb::SBError 5233e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton SetSectionLoadAddress (lldb::SBSection section, 5243e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton lldb::addr_t section_base_addr); 5253e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton 5263e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton //------------------------------------------------------------------ 5273e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton /// Clear the base load address for a module section. 5283e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton /// 5293e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton /// @param[in] section 5303e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton /// The section whose base load address will be cleared within 5313e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton /// this target. 5323e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton /// 5333e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton /// @return 5343e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton /// An error to indicate success, fail, and any reason for 5353e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton /// failure. 5363e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton //------------------------------------------------------------------ 5373e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton lldb::SBError 5383e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton ClearSectionLoadAddress (lldb::SBSection section); 5393e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton 5403e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton //------------------------------------------------------------------ 5413e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton /// Slide all file addresses for all module sections so that \a module 5423e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton /// appears to loaded at these slide addresses. 5433e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton /// 5443e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton /// When you need all sections within a module to be loaded at a 5453e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton /// rigid slide from the addresses found in the module object file, 5463e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton /// this function will allow you to easily and quickly slide all 5473e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton /// module sections. 5483e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton /// 5493e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton /// @param[in] module 5503e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton /// The module to load. 5513e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton /// 5523e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton /// @param[in] sections_offset 5533e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton /// An offset that will be applied to all section file addresses 5543e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton /// (the virtual addresses found in the object file itself). 5553e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton /// 5563e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton /// @return 5573e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton /// An error to indicate success, fail, and any reason for 5583e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton /// failure. 5593e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton //------------------------------------------------------------------ 5603e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton lldb::SBError 5613e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton SetModuleLoadAddress (lldb::SBModule module, 5623e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton int64_t sections_offset); 5633e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton 5643e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton 5653e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton //------------------------------------------------------------------ 5663e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton /// The the section base load addresses for all sections in a module. 5673e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton /// 5683e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton /// @param[in] module 5693e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton /// The module to unload. 5703e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton /// 5713e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton /// @return 5723e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton /// An error to indicate success, fail, and any reason for 5733e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton /// failure. 5743e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton //------------------------------------------------------------------ 5753e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton lldb::SBError 5763e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton ClearModuleLoadAddress (lldb::SBModule module); 5773e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton 5783e8c25f62f92145b6fb699b379cbfe72b1245d4aGreg Clayton //------------------------------------------------------------------ 57967dde8e176c0ab62056911a3165b62fdcc6259edJohnny Chen /// Find functions by name. 58067dde8e176c0ab62056911a3165b62fdcc6259edJohnny Chen /// 58167dde8e176c0ab62056911a3165b62fdcc6259edJohnny Chen /// @param[in] name 58267dde8e176c0ab62056911a3165b62fdcc6259edJohnny Chen /// The name of the function we are looking for. 58367dde8e176c0ab62056911a3165b62fdcc6259edJohnny Chen /// 58467dde8e176c0ab62056911a3165b62fdcc6259edJohnny Chen /// @param[in] name_type_mask 58567dde8e176c0ab62056911a3165b62fdcc6259edJohnny Chen /// A logical OR of one or more FunctionNameType enum bits that 58667dde8e176c0ab62056911a3165b62fdcc6259edJohnny Chen /// indicate what kind of names should be used when doing the 58767dde8e176c0ab62056911a3165b62fdcc6259edJohnny Chen /// lookup. Bits include fully qualified names, base names, 58867dde8e176c0ab62056911a3165b62fdcc6259edJohnny Chen /// C++ methods, or ObjC selectors. 58967dde8e176c0ab62056911a3165b62fdcc6259edJohnny Chen /// See FunctionNameType for more details. 59067dde8e176c0ab62056911a3165b62fdcc6259edJohnny Chen /// 59167dde8e176c0ab62056911a3165b62fdcc6259edJohnny Chen /// @return 5927dd5c51fbab8384b18f20ecc125f9a1bb3c9bcb2Greg Clayton /// A lldb::SBSymbolContextList that gets filled in with all of 5937dd5c51fbab8384b18f20ecc125f9a1bb3c9bcb2Greg Clayton /// the symbol contexts for all the matches. 59467dde8e176c0ab62056911a3165b62fdcc6259edJohnny Chen //------------------------------------------------------------------ 5957dd5c51fbab8384b18f20ecc125f9a1bb3c9bcb2Greg Clayton lldb::SBSymbolContextList 5964ed315fdc503cfdc18e89b1eb43bf87e07fd1673Greg Clayton FindFunctions (const char *name, 5977dd5c51fbab8384b18f20ecc125f9a1bb3c9bcb2Greg Clayton uint32_t name_type_mask = lldb::eFunctionNameTypeAny); 5984ed315fdc503cfdc18e89b1eb43bf87e07fd1673Greg Clayton 599bbc6342babdd58daa34bb35e35d7d53f59beada1Johnny Chen //------------------------------------------------------------------ 600bbc6342babdd58daa34bb35e35d7d53f59beada1Johnny Chen /// Find global and static variables by name. 601bbc6342babdd58daa34bb35e35d7d53f59beada1Johnny Chen /// 602bbc6342babdd58daa34bb35e35d7d53f59beada1Johnny Chen /// @param[in] name 603bbc6342babdd58daa34bb35e35d7d53f59beada1Johnny Chen /// The name of the global or static variable we are looking 604bbc6342babdd58daa34bb35e35d7d53f59beada1Johnny Chen /// for. 605bbc6342babdd58daa34bb35e35d7d53f59beada1Johnny Chen /// 606bbc6342babdd58daa34bb35e35d7d53f59beada1Johnny Chen /// @param[in] max_matches 607bbc6342babdd58daa34bb35e35d7d53f59beada1Johnny Chen /// Allow the number of matches to be limited to \a max_matches. 608bbc6342babdd58daa34bb35e35d7d53f59beada1Johnny Chen /// 609bbc6342babdd58daa34bb35e35d7d53f59beada1Johnny Chen /// @return 610bbc6342babdd58daa34bb35e35d7d53f59beada1Johnny Chen /// A list of matched variables in an SBValueList. 611bbc6342babdd58daa34bb35e35d7d53f59beada1Johnny Chen //------------------------------------------------------------------ 612917c000e77fcf657099f59085d6436d179a39ea4Greg Clayton lldb::SBValueList 613917c000e77fcf657099f59085d6436d179a39ea4Greg Clayton FindGlobalVariables (const char *name, 614917c000e77fcf657099f59085d6436d179a39ea4Greg Clayton uint32_t max_matches); 615917c000e77fcf657099f59085d6436d179a39ea4Greg Clayton 616392bd8d8356a35a0ad7a9990e1e05d0509971c4bEnrico Granata //------------------------------------------------------------------ 617392bd8d8356a35a0ad7a9990e1e05d0509971c4bEnrico Granata /// Find the first global (or static) variable by name. 618392bd8d8356a35a0ad7a9990e1e05d0509971c4bEnrico Granata /// 619392bd8d8356a35a0ad7a9990e1e05d0509971c4bEnrico Granata /// @param[in] name 620392bd8d8356a35a0ad7a9990e1e05d0509971c4bEnrico Granata /// The name of the global or static variable we are looking 621392bd8d8356a35a0ad7a9990e1e05d0509971c4bEnrico Granata /// for. 622392bd8d8356a35a0ad7a9990e1e05d0509971c4bEnrico Granata /// 623392bd8d8356a35a0ad7a9990e1e05d0509971c4bEnrico Granata /// @return 624392bd8d8356a35a0ad7a9990e1e05d0509971c4bEnrico Granata /// An SBValue that gets filled in with the found variable (if any). 625392bd8d8356a35a0ad7a9990e1e05d0509971c4bEnrico Granata //------------------------------------------------------------------ 626392bd8d8356a35a0ad7a9990e1e05d0509971c4bEnrico Granata lldb::SBValue 627392bd8d8356a35a0ad7a9990e1e05d0509971c4bEnrico Granata FindFirstGlobalVariable (const char* name); 628392bd8d8356a35a0ad7a9990e1e05d0509971c4bEnrico Granata 62943490d1332d13694fb6690365984bf0ecdd8dcc3Greg Clayton void 63043490d1332d13694fb6690365984bf0ecdd8dcc3Greg Clayton Clear (); 63143490d1332d13694fb6690365984bf0ecdd8dcc3Greg Clayton 632a395506fb374f1f589d0d860f5e6c9fa7b1e0b9aGreg Clayton lldb::SBAddress 633a395506fb374f1f589d0d860f5e6c9fa7b1e0b9aGreg Clayton ResolveLoadAddress (lldb::addr_t vm_addr); 63424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 635afb8186acfef6132174ca02d357fafd36b599ca3Greg Clayton SBSymbolContext 636afb8186acfef6132174ca02d357fafd36b599ca3Greg Clayton ResolveSymbolContextForAddress (const SBAddress& addr, 637afb8186acfef6132174ca02d357fafd36b599ca3Greg Clayton uint32_t resolve_scope); 638afb8186acfef6132174ca02d357fafd36b599ca3Greg Clayton 63924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner lldb::SBBreakpoint 64024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner BreakpointCreateByLocation (const char *file, uint32_t line); 64124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 64224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner lldb::SBBreakpoint 64324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner BreakpointCreateByLocation (const lldb::SBFileSpec &file_spec, uint32_t line); 64424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 64524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner lldb::SBBreakpoint 64624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner BreakpointCreateByName (const char *symbol_name, const char *module_name = NULL); 64724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 6481fb8a2dd636ef408728989d8bbc6d1a7a73177ccJim Ingham // This version uses name_type_mask = eFunctionNameTypeAuto 64924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner lldb::SBBreakpoint 650d6d47976b71187907c1cdeea86fabf7d5534314fJim Ingham BreakpointCreateByName (const char *symbol_name, 651d6d47976b71187907c1cdeea86fabf7d5534314fJim Ingham const SBFileSpecList &module_list, 652d6d47976b71187907c1cdeea86fabf7d5534314fJim Ingham const SBFileSpecList &comp_unit_list); 653d6d47976b71187907c1cdeea86fabf7d5534314fJim Ingham 654d6d47976b71187907c1cdeea86fabf7d5534314fJim Ingham lldb::SBBreakpoint 6551fb8a2dd636ef408728989d8bbc6d1a7a73177ccJim Ingham BreakpointCreateByName (const char *symbol_name, 6561fb8a2dd636ef408728989d8bbc6d1a7a73177ccJim Ingham uint32_t name_type_mask, // Logical OR one or more FunctionNameType enum bits 6571fb8a2dd636ef408728989d8bbc6d1a7a73177ccJim Ingham const SBFileSpecList &module_list, 6581fb8a2dd636ef408728989d8bbc6d1a7a73177ccJim Ingham const SBFileSpecList &comp_unit_list); 6591fb8a2dd636ef408728989d8bbc6d1a7a73177ccJim Ingham 6601fb8a2dd636ef408728989d8bbc6d1a7a73177ccJim Ingham lldb::SBBreakpoint 6614722b10307668368bf0f12fa6b8691e4f4cb5488Jim Ingham BreakpointCreateByNames (const char *symbol_name[], 6624722b10307668368bf0f12fa6b8691e4f4cb5488Jim Ingham uint32_t num_names, 6634722b10307668368bf0f12fa6b8691e4f4cb5488Jim Ingham uint32_t name_type_mask, // Logical OR one or more FunctionNameType enum bits 6644722b10307668368bf0f12fa6b8691e4f4cb5488Jim Ingham const SBFileSpecList &module_list, 6654722b10307668368bf0f12fa6b8691e4f4cb5488Jim Ingham const SBFileSpecList &comp_unit_list); 6664722b10307668368bf0f12fa6b8691e4f4cb5488Jim Ingham 6674722b10307668368bf0f12fa6b8691e4f4cb5488Jim Ingham lldb::SBBreakpoint 66824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner BreakpointCreateByRegex (const char *symbol_name_regex, const char *module_name = NULL); 66903c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham 67003c8ee5aeafcd6c43f10002a4f8096af01780f86Jim Ingham lldb::SBBreakpoint 671d6d47976b71187907c1cdeea86fabf7d5534314fJim Ingham BreakpointCreateByRegex (const char *symbol_name_regex, 672d6d47976b71187907c1cdeea86fabf7d5534314fJim Ingham const SBFileSpecList &module_list, 673d6d47976b71187907c1cdeea86fabf7d5534314fJim Ingham const SBFileSpecList &comp_unit_list); 674d6d47976b71187907c1cdeea86fabf7d5534314fJim Ingham 675d6d47976b71187907c1cdeea86fabf7d5534314fJim Ingham lldb::SBBreakpoint 676d6d47976b71187907c1cdeea86fabf7d5534314fJim Ingham BreakpointCreateBySourceRegex (const char *source_regex, 677d6d47976b71187907c1cdeea86fabf7d5534314fJim Ingham const lldb::SBFileSpec &source_file, 678d6d47976b71187907c1cdeea86fabf7d5534314fJim Ingham const char *module_name = NULL); 679d6d47976b71187907c1cdeea86fabf7d5534314fJim Ingham 680d6d47976b71187907c1cdeea86fabf7d5534314fJim Ingham lldb::SBBreakpoint 681d6d47976b71187907c1cdeea86fabf7d5534314fJim Ingham BreakpointCreateBySourceRegex (const char *source_regex, 682d6d47976b71187907c1cdeea86fabf7d5534314fJim Ingham const SBFileSpecList &module_list, 683d6d47976b71187907c1cdeea86fabf7d5534314fJim Ingham const lldb::SBFileSpecList &source_file); 6844722b10307668368bf0f12fa6b8691e4f4cb5488Jim Ingham 6854722b10307668368bf0f12fa6b8691e4f4cb5488Jim Ingham lldb::SBBreakpoint 6864722b10307668368bf0f12fa6b8691e4f4cb5488Jim Ingham BreakpointCreateForException (lldb::LanguageType language, 6874722b10307668368bf0f12fa6b8691e4f4cb5488Jim Ingham bool catch_bp, 6884722b10307668368bf0f12fa6b8691e4f4cb5488Jim Ingham bool throw_bp); 68924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 69024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner lldb::SBBreakpoint 69124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner BreakpointCreateByAddress (addr_t address); 69224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 693c7f5d5c3a3b48869f5ad2a3cdc4b20ca40929ba3Greg Clayton uint32_t 694c7f5d5c3a3b48869f5ad2a3cdc4b20ca40929ba3Greg Clayton GetNumBreakpoints () const; 695c7f5d5c3a3b48869f5ad2a3cdc4b20ca40929ba3Greg Clayton 696c7f5d5c3a3b48869f5ad2a3cdc4b20ca40929ba3Greg Clayton lldb::SBBreakpoint 697c7f5d5c3a3b48869f5ad2a3cdc4b20ca40929ba3Greg Clayton GetBreakpointAtIndex (uint32_t idx) const; 698c7f5d5c3a3b48869f5ad2a3cdc4b20ca40929ba3Greg Clayton 69924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool 70024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner BreakpointDelete (break_id_t break_id); 70124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 70224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner lldb::SBBreakpoint 70324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner FindBreakpointByID (break_id_t break_id); 70424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 70524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool 70624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner EnableAllBreakpoints (); 70724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 70824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool 70924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner DisableAllBreakpoints (); 71024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 71124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool 71224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner DeleteAllBreakpoints (); 71324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 714096c293f8d4171448908801d5a1a74b152af1430Johnny Chen uint32_t 7151fa6b3d6c83955fe06c63d3a4025f2c0ec431d68Greg Clayton GetNumWatchpoints () const; 716096c293f8d4171448908801d5a1a74b152af1430Johnny Chen 7171fa6b3d6c83955fe06c63d3a4025f2c0ec431d68Greg Clayton lldb::SBWatchpoint 7181fa6b3d6c83955fe06c63d3a4025f2c0ec431d68Greg Clayton GetWatchpointAtIndex (uint32_t idx) const; 719096c293f8d4171448908801d5a1a74b152af1430Johnny Chen 720096c293f8d4171448908801d5a1a74b152af1430Johnny Chen bool 7211fa6b3d6c83955fe06c63d3a4025f2c0ec431d68Greg Clayton DeleteWatchpoint (lldb::watch_id_t watch_id); 7221fa6b3d6c83955fe06c63d3a4025f2c0ec431d68Greg Clayton 7231fa6b3d6c83955fe06c63d3a4025f2c0ec431d68Greg Clayton lldb::SBWatchpoint 7241fa6b3d6c83955fe06c63d3a4025f2c0ec431d68Greg Clayton FindWatchpointByID (lldb::watch_id_t watch_id); 725096c293f8d4171448908801d5a1a74b152af1430Johnny Chen 7261fa6b3d6c83955fe06c63d3a4025f2c0ec431d68Greg Clayton lldb::SBWatchpoint 7273f883496e92fce5011f6bf585af3ac6d1cddb64fJohnny Chen WatchAddress (lldb::addr_t addr, size_t size, bool read, bool write, SBError& error); 728096c293f8d4171448908801d5a1a74b152af1430Johnny Chen 729096c293f8d4171448908801d5a1a74b152af1430Johnny Chen bool 7301fa6b3d6c83955fe06c63d3a4025f2c0ec431d68Greg Clayton EnableAllWatchpoints (); 731096c293f8d4171448908801d5a1a74b152af1430Johnny Chen 732096c293f8d4171448908801d5a1a74b152af1430Johnny Chen bool 7331fa6b3d6c83955fe06c63d3a4025f2c0ec431d68Greg Clayton DisableAllWatchpoints (); 734096c293f8d4171448908801d5a1a74b152af1430Johnny Chen 735096c293f8d4171448908801d5a1a74b152af1430Johnny Chen bool 7361fa6b3d6c83955fe06c63d3a4025f2c0ec431d68Greg Clayton DeleteAllWatchpoints (); 737096c293f8d4171448908801d5a1a74b152af1430Johnny Chen 73824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner lldb::SBBroadcaster 73924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner GetBroadcaster () const; 740979e20d127335143ffc89c2e37ec3a8b717ff22dEnrico Granata 741979e20d127335143ffc89c2e37ec3a8b717ff22dEnrico Granata lldb::SBType 742979e20d127335143ffc89c2e37ec3a8b717ff22dEnrico Granata FindFirstType (const char* type); 743979e20d127335143ffc89c2e37ec3a8b717ff22dEnrico Granata 744979e20d127335143ffc89c2e37ec3a8b717ff22dEnrico Granata lldb::SBTypeList 745979e20d127335143ffc89c2e37ec3a8b717ff22dEnrico Granata FindTypes (const char* type); 746cc637461f6c59851302836c64e0cb002de4f4571Jim Ingham 7470b93a7546473b15fb14dbc129f1fe5ed6ee14976Greg Clayton lldb::SBType 7480b93a7546473b15fb14dbc129f1fe5ed6ee14976Greg Clayton GetBasicType(lldb::BasicType type); 7490b93a7546473b15fb14dbc129f1fe5ed6ee14976Greg Clayton 750cc637461f6c59851302836c64e0cb002de4f4571Jim Ingham SBSourceManager 751cc637461f6c59851302836c64e0cb002de4f4571Jim Ingham GetSourceManager(); 752ef1f690aa23e81a14654d4a6fe9df7810f4eda06Sean Callanan 753ef1f690aa23e81a14654d4a6fe9df7810f4eda06Sean Callanan lldb::SBInstructionList 754a989307c1ec2ef9cd52ec65fb2c877bb2df3aa3aGreg Clayton ReadInstructions (lldb::SBAddress base_addr, uint32_t count); 755a989307c1ec2ef9cd52ec65fb2c877bb2df3aa3aGreg Clayton 756a989307c1ec2ef9cd52ec65fb2c877bb2df3aa3aGreg Clayton lldb::SBInstructionList 7577d4083837c5a258375fdc185d464b4ed15759a4bJim Ingham ReadInstructions (lldb::SBAddress base_addr, uint32_t count, const char *flavor_string); 7587d4083837c5a258375fdc185d464b4ed15759a4bJim Ingham 7597d4083837c5a258375fdc185d464b4ed15759a4bJim Ingham lldb::SBInstructionList 760ef1f690aa23e81a14654d4a6fe9df7810f4eda06Sean Callanan GetInstructions (lldb::SBAddress base_addr, const void *buf, size_t size); 761ef1f690aa23e81a14654d4a6fe9df7810f4eda06Sean Callanan 7627d4083837c5a258375fdc185d464b4ed15759a4bJim Ingham // The "WithFlavor" is necessary to keep SWIG from getting confused about overloaded arguments when 7637d4083837c5a258375fdc185d464b4ed15759a4bJim Ingham // using the buf + size -> Python Object magic. 7647d4083837c5a258375fdc185d464b4ed15759a4bJim Ingham 7657d4083837c5a258375fdc185d464b4ed15759a4bJim Ingham lldb::SBInstructionList 7667d4083837c5a258375fdc185d464b4ed15759a4bJim Ingham GetInstructionsWithFlavor (lldb::SBAddress base_addr, const char *flavor_string, const void *buf, size_t size); 7677d4083837c5a258375fdc185d464b4ed15759a4bJim Ingham 768ef1f690aa23e81a14654d4a6fe9df7810f4eda06Sean Callanan lldb::SBInstructionList 769ef1f690aa23e81a14654d4a6fe9df7810f4eda06Sean Callanan GetInstructions (lldb::addr_t base_addr, const void *buf, size_t size); 77024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 7717d4083837c5a258375fdc185d464b4ed15759a4bJim Ingham lldb::SBInstructionList 7727d4083837c5a258375fdc185d464b4ed15759a4bJim Ingham GetInstructionsWithFlavor (lldb::addr_t base_addr, const char *flavor_string, const void *buf, size_t size); 7737d4083837c5a258375fdc185d464b4ed15759a4bJim Ingham 774b3dafc6a81a014339015701c9872624f2aeddd43Greg Clayton lldb::SBSymbolContextList 775b3dafc6a81a014339015701c9872624f2aeddd43Greg Clayton FindSymbols (const char *name, 776b3dafc6a81a014339015701c9872624f2aeddd43Greg Clayton lldb::SymbolType type = eSymbolTypeAny); 777b3dafc6a81a014339015701c9872624f2aeddd43Greg Clayton 77824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool 77924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner operator == (const lldb::SBTarget &rhs) const; 78024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 78124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner bool 78224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner operator != (const lldb::SBTarget &rhs) const; 78324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 78498f930f429160f9777f626c3ac6aa609f4e965d2Caroline Tice bool 785e43cdedc77133ff4d0a0c6a39f515d0f7584891cJohnny Chen GetDescription (lldb::SBStream &description, lldb::DescriptionLevel description_level); 78698f930f429160f9777f626c3ac6aa609f4e965d2Caroline Tice 78719b646725e7d6bebda787fa3cb55ff223a00d907Greg Clayton lldb::SBValue 78819b646725e7d6bebda787fa3cb55ff223a00d907Greg Clayton EvaluateExpression (const char *expr, const SBExpressionOptions &options); 78919b646725e7d6bebda787fa3cb55ff223a00d907Greg Clayton 790ad72e52945ee0560fc2b22dce0087d4c7274a218Greg Clayton lldb::addr_t 791ad72e52945ee0560fc2b22dce0087d4c7274a218Greg Clayton GetStackRedZoneSize(); 792ad72e52945ee0560fc2b22dce0087d4c7274a218Greg Clayton 79324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerprotected: 794eea264007bc5fb42c8f3239726a9d28ae42e1b7bGreg Clayton friend class SBAddress; 7957dd5c51fbab8384b18f20ecc125f9a1bb3c9bcb2Greg Clayton friend class SBBlock; 79624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner friend class SBDebugger; 7975c4c746a3a83c1aad411c6cdc5f9525a4fc2d17eGreg Clayton friend class SBFunction; 79823b8abbe214c252028f6e09f79169529c846409dGreg Clayton friend class SBInstruction; 79915afa9f26a38ea55876ac4ee0b17f0ac8137e9c1Greg Clayton friend class SBModule; 80024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner friend class SBProcess; 8015c5a38e7c640e9448241ec2aca0c60047ec3273cGreg Clayton friend class SBSection; 80215afa9f26a38ea55876ac4ee0b17f0ac8137e9c1Greg Clayton friend class SBSourceManager; 8035c4c746a3a83c1aad411c6cdc5f9525a4fc2d17eGreg Clayton friend class SBSymbol; 804979e20d127335143ffc89c2e37ec3a8b717ff22dEnrico Granata friend class SBValue; 80524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 80624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner //------------------------------------------------------------------ 80724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner // Constructors are private, use static Target::Create function to 80824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner // create an instance of this class. 80924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner //------------------------------------------------------------------ 81024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 811334d33a19fd28cf41cba74cc61cf149e7101a603Greg Clayton lldb::TargetSP 812334d33a19fd28cf41cba74cc61cf149e7101a603Greg Clayton GetSP () const; 81324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 814334d33a19fd28cf41cba74cc61cf149e7101a603Greg Clayton void 815334d33a19fd28cf41cba74cc61cf149e7101a603Greg Clayton SetSP (const lldb::TargetSP& target_sp); 81624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 81715afa9f26a38ea55876ac4ee0b17f0ac8137e9c1Greg Clayton 81824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerprivate: 81924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner //------------------------------------------------------------------ 82024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner // For Target only 82124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner //------------------------------------------------------------------ 82224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 82363094e0bb161580564954dee512955c1c79d3476Greg Clayton lldb::TargetSP m_opaque_sp; 82424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner}; 82524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 82624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner} // namespace lldb 82724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner 82824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#endif // LLDB_SBTarget_h_ 829