Package lldb :: Class SBTarget
[hide private]
[frames] | no frames]

Class SBTarget

source code



Represents the target program running under the debugger.

SBTarget supports module, breakpoint, and watchpoint iterations. For example,

    for m in target.module_iter():
        print m

produces:

(x86_64) /Volumes/data/lldb/svn/trunk/test/python_api/lldbutil/iter/a.out
(x86_64) /usr/lib/dyld
(x86_64) /usr/lib/libstdc++.6.dylib
(x86_64) /usr/lib/libSystem.B.dylib
(x86_64) /usr/lib/system/libmathCommon.A.dylib
(x86_64) /usr/lib/libSystem.B.dylib(__commpage)

and,

    for b in target.breakpoint_iter():
        print b

produces:

SBBreakpoint: id = 1, file ='main.cpp', line = 66, locations = 1
SBBreakpoint: id = 2, file ='main.cpp', line = 85, locations = 1

and,

    for wp_loc in target.watchpoint_iter():
        print wp_loc

produces:

Watchpoint 1: addr = 0x1034ca048 size = 4 state = enabled type = rw
    declare @ '/Volumes/data/lldb/svn/trunk/test/python_api/watchpoint/main.c:12'
    hw_index = 0  hit_count = 2     ignore_count = 0

Nested Classes [hide private]
  modules_access
A helper object that will lazily hand out lldb.SBModule objects for a target when supplied an index, or by full or partial path.
Instance Methods [hide private]
 
__setattr__(self, name, value)
x.__setattr__('name', value) <==> x.name = value
source code
 
__getattr__(self, name) source code
 
__repr__(self)
repr(x)
source code
 
module_iter(self) source code
 
breakpoint_iter(self) source code
 
watchpoint_iter(self) source code
 
__init__(self, *args)
__init__(lldb::SBTarget self) -> SBTarget __init__(lldb::SBTarget self, SBTarget rhs) -> SBTarget
source code
 
__swig_destroy__(...)
delete_SBTarget(SBTarget self)
 
__del__(self) source code
 
__nonzero__(self) source code
 
IsValid(self)
IsValid(SBTarget self) -> bool
source code
 
GetProcess(self)
GetProcess(SBTarget self) -> SBProcess
source code
 
LaunchSimple(self, *args)
LaunchSimple(SBTarget self, str const ** argv, str const ** envp, str const * working_directory) -> SBProcess
source code
 
Launch(self, *args)
Launch(SBTarget self, SBListener listener, str const ** argv, str const ** envp, str const * stdin_path, str const * stdout_path, str const * stderr_path, str const * working_directory, uint32_t launch_flags, bool stop_at_entry, SBError error) -> SBProcess Launch(SBTarget self, SBLaunchInfo launch_info, SBError error) -> SBProcess
source code
 
LoadCore(self, *args)
LoadCore(SBTarget self, str const * core_file) -> SBProcess
source code
 
Attach(self, *args)
Attach(SBTarget self, SBAttachInfo attach_info, SBError error) -> SBProcess
source code
 
AttachToProcessWithID(self, *args)
AttachToProcessWithID(SBTarget self, SBListener listener, lldb::pid_t pid, SBError error) -> SBProcess
source code
 
AttachToProcessWithName(self, *args)
AttachToProcessWithName(SBTarget self, SBListener listener, str const * name, bool wait_for, SBError error) -> SBProcess
source code
 
ConnectRemote(self, *args)
ConnectRemote(SBTarget self, SBListener listener, str const * url, str const * plugin_name, SBError error) -> SBProcess
source code
 
GetExecutable(self)
GetExecutable(SBTarget self) -> SBFileSpec
source code
 
AddModule(self, *args)
AddModule(SBTarget self, SBModule module) -> bool AddModule(SBTarget self, str const * path, str const * triple, str const * uuid) -> SBModule AddModule(SBTarget self, str const * path, str const * triple, str const * uuid_cstr, str const * symfile) -> SBModule AddModule(SBTarget self, SBModuleSpec module_spec) -> SBModule
source code
 
GetNumModules(self)
GetNumModules(SBTarget self) -> uint32_t
source code
 
GetModuleAtIndex(self, *args)
GetModuleAtIndex(SBTarget self, uint32_t idx) -> SBModule
source code
 
RemoveModule(self, *args)
RemoveModule(SBTarget self, SBModule module) -> bool
source code
 
GetDebugger(self)
GetDebugger(SBTarget self) -> SBDebugger
source code
 
FindModule(self, *args)
FindModule(SBTarget self, SBFileSpec file_spec) -> SBModule
source code
 
GetByteOrder(self)
GetByteOrder(SBTarget self) -> lldb::ByteOrder
source code
 
GetAddressByteSize(self)
GetAddressByteSize(SBTarget self) -> uint32_t
source code
 
GetTriple(self)
GetTriple(SBTarget self) -> str const *
source code
 
SetSectionLoadAddress(self, *args)
SetSectionLoadAddress(SBTarget self, SBSection section, lldb::addr_t section_base_addr) -> SBError
source code
 
ClearSectionLoadAddress(self, *args)
ClearSectionLoadAddress(SBTarget self, SBSection section) -> SBError
source code
 
SetModuleLoadAddress(self, *args)
SetModuleLoadAddress(SBTarget self, SBModule module, int64_t sections_offset) -> SBError
source code
 
ClearModuleLoadAddress(self, *args)
ClearModuleLoadAddress(SBTarget self, SBModule module) -> SBError
source code
 
FindFunctions(self, *args)
FindFunctions(SBTarget self, str const * name, uint32_t name_type_mask=eFunctionNameTypeAny) -> SBSymbolContextList FindFunctions(SBTarget self, str const * name) -> SBSymbolContextList
source code
 
FindFirstType(self, *args)
FindFirstType(SBTarget self, str const * type) -> SBType
source code
 
FindTypes(self, *args)
FindTypes(SBTarget self, str const * type) -> SBTypeList
source code
 
GetBasicType(self, *args)
GetBasicType(SBTarget self, lldb::BasicType type) -> SBType
source code
 
GetSourceManager(self)
GetSourceManager(SBTarget self) -> SBSourceManager
source code
 
FindGlobalVariables(self, *args)
FindGlobalVariables(SBTarget self, str const * name, uint32_t max_matches) -> SBValueList
source code
 
FindFirstGlobalVariable(self, *args)
FindFirstGlobalVariable(SBTarget self, str const * name) -> SBValue
source code
 
Clear(self)
Clear(SBTarget self)
source code
 
ResolveLoadAddress(self, *args)
ResolveLoadAddress(SBTarget self, lldb::addr_t vm_addr) -> SBAddress
source code
 
ResolveSymbolContextForAddress(self, *args)
ResolveSymbolContextForAddress(SBTarget self, SBAddress addr, uint32_t resolve_scope) -> SBSymbolContext
source code
 
BreakpointCreateByLocation(self, *args)
BreakpointCreateByLocation(SBTarget self, str const * file, uint32_t line) -> SBBreakpoint BreakpointCreateByLocation(SBTarget self, SBFileSpec file_spec, uint32_t line) -> SBBreakpoint
source code
 
BreakpointCreateByName(self, *args)
BreakpointCreateByName(SBTarget self, str const * symbol_name, str const * module_name=None) -> SBBreakpoint BreakpointCreateByName(SBTarget self, str const * symbol_name) -> SBBreakpoint BreakpointCreateByName(SBTarget self, str const * symbol_name, uint32_t func_name_type, SBFileSpecList module_list, SBFileSpecList comp_unit_list) -> SBBreakpoint
source code
 
BreakpointCreateByNames(self, *args)
BreakpointCreateByNames(SBTarget self, str const *[] symbol_name, uint32_t num_names, uint32_t name_type_mask, SBFileSpecList module_list, ...
source code
 
BreakpointCreateByRegex(self, *args)
BreakpointCreateByRegex(SBTarget self, str const * symbol_name_regex, str const * module_name=None) -> SBBreakpoint BreakpointCreateByRegex(SBTarget self, str const * symbol_name_regex) -> SBBreakpoint
source code
 
BreakpointCreateBySourceRegex(self, *args)
BreakpointCreateBySourceRegex(SBTarget self, str const * source_regex, SBFileSpec source_file, str const * module_name=None) -> SBBreakpoint BreakpointCreateBySourceRegex(SBTarget self, str const * source_regex, SBFileSpec source_file) -> SBBreakpoint
source code
 
BreakpointCreateForException(self, *args)
BreakpointCreateForException(SBTarget self, lldb::LanguageType language, bool catch_bp, bool throw_bp) -> SBBreakpoint
source code
 
BreakpointCreateByAddress(self, *args)
BreakpointCreateByAddress(SBTarget self, lldb::addr_t address) -> SBBreakpoint
source code
 
GetNumBreakpoints(self)
GetNumBreakpoints(SBTarget self) -> uint32_t
source code
 
GetBreakpointAtIndex(self, *args)
GetBreakpointAtIndex(SBTarget self, uint32_t idx) -> SBBreakpoint
source code
 
BreakpointDelete(self, *args)
BreakpointDelete(SBTarget self, lldb::break_id_t break_id) -> bool
source code
 
FindBreakpointByID(self, *args)
FindBreakpointByID(SBTarget self, lldb::break_id_t break_id) -> SBBreakpoint
source code
 
EnableAllBreakpoints(self)
EnableAllBreakpoints(SBTarget self) -> bool
source code
 
DisableAllBreakpoints(self)
DisableAllBreakpoints(SBTarget self) -> bool
source code
 
DeleteAllBreakpoints(self)
DeleteAllBreakpoints(SBTarget self) -> bool
source code
 
GetNumWatchpoints(self)
GetNumWatchpoints(SBTarget self) -> uint32_t
source code
 
GetWatchpointAtIndex(self, *args)
GetWatchpointAtIndex(SBTarget self, uint32_t idx) -> SBWatchpoint
source code
 
DeleteWatchpoint(self, *args)
DeleteWatchpoint(SBTarget self, lldb::watch_id_t watch_id) -> bool
source code
 
FindWatchpointByID(self, *args)
FindWatchpointByID(SBTarget self, lldb::watch_id_t watch_id) -> SBWatchpoint
source code
 
EnableAllWatchpoints(self)
EnableAllWatchpoints(SBTarget self) -> bool
source code
 
DisableAllWatchpoints(self)
DisableAllWatchpoints(SBTarget self) -> bool
source code
 
DeleteAllWatchpoints(self)
DeleteAllWatchpoints(SBTarget self) -> bool
source code
 
WatchAddress(self, *args)
WatchAddress(SBTarget self, lldb::addr_t addr, size_t size, bool read, bool write, SBError error) -> SBWatchpoint
source code
 
GetBroadcaster(self)
GetBroadcaster(SBTarget self) -> SBBroadcaster
source code
 
ReadInstructions(self, *args)
ReadInstructions(SBTarget self, SBAddress base_addr, uint32_t count) -> SBInstructionList ReadInstructions(SBTarget self, SBAddress base_addr, uint32_t count, str const * flavor_string) -> SBInstructionList
source code
 
GetInstructions(self, *args)
GetInstructions(SBTarget self, SBAddress base_addr, void const * buf) -> SBInstructionList
source code
 
GetInstructionsWithFlavor(self, *args)
GetInstructionsWithFlavor(SBTarget self, SBAddress base_addr, str const * flavor_string, void const * buf) -> SBInstructionList
source code
 
FindSymbols(self, *args)
FindSymbols(SBTarget self, str const * name, lldb::SymbolType type=eSymbolTypeAny) -> SBSymbolContextList FindSymbols(SBTarget self, str const * name) -> SBSymbolContextList
source code
 
GetDescription(self, *args)
GetDescription(SBTarget self, SBStream description, lldb::DescriptionLevel description_level) -> bool
source code
 
GetStackRedZoneSize(self)
GetStackRedZoneSize(SBTarget self) -> lldb::addr_t
source code
 
EvaluateExpression(self, *args)
EvaluateExpression(SBTarget self, str const * expr, SBExpressionOptions options) -> SBValue
source code
 
get_modules_access_object(self)
An accessor function that returns a modules_access() object which allows lazy module access from a lldb.SBTarget object.
source code
 
get_modules_array(self)
An accessor function that returns a list() that contains all modules in a lldb.SBTarget object.
source code
 
__str__(self)
__str__(SBTarget self) -> PyObject *
source code
 
__eq__(self, rhs) source code
 
__ne__(self, rhs) source code

Inherited from object: __delattr__, __format__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __sizeof__, __subclasshook__

Static Methods [hide private]
str const *
GetBroadcasterClassName() source code
Class Variables [hide private]
  __swig_setmethods__ = {}
  __swig_getmethods__ = {}
  eBroadcastBitBreakpointChanged = 1
  eBroadcastBitModulesLoaded = 2
  eBroadcastBitModulesUnloaded = 4
  eBroadcastBitWatchpointChanged = 8
  eBroadcastBitSymbolsLoaded = 16
Properties [hide private]
  addr_size
A read only property that returns the size in bytes of an address for this target.
  broadcaster
A read only property that an lldb object that represents the broadcaster (lldb.SBBroadcaster) for this target.
  byte_order
A read only property that returns an lldb enumeration value (lldb.eByteOrderLittle, lldb.eByteOrderBig, lldb.eByteOrderInvalid) that represents the byte order for this target.
  debugger
A read only property that returns an lldb object that represents the debugger (lldb.SBDebugger) that owns this target.
  executable
A read only property that returns an lldb object that represents the main executable module (lldb.SBModule) for this target.
  module
A read only property that returns an object that implements python operator overloading with the square brackets().\n target.module[<int>] allows array access to any modules.\n target.module[<str>] allows access to modules by basename, full path, or uuid string value.\n target.module[uuid.UUID()] allows module access by UUID.\n target.module[re] allows module access using a regular expression that matches the module full path.
  modules
A read only property that returns a list() of lldb.SBModule objects contained in this target.
  num_breakpoints
A read only property that returns the number of breakpoints that this target has as an integer.
  num_watchpoints
A read only property that returns the number of watchpoints that this target has as an integer.
  process
A read only property that returns an lldb object that represents the process (lldb.SBProcess) that this target owns.
  triple
A read only property that returns the target triple (arch-vendor-os) for this target as a string.

Inherited from object: __class__

Method Details [hide private]

__setattr__(self, name, value)

source code 

x.__setattr__('name', value) <==> x.name = value

Overrides: object.__setattr__
(inherited documentation)

__repr__(self)
(Representation operator)

source code 

repr(x)

Overrides: object.__repr__
(inherited documentation)

__init__(self, *args)
(Constructor)

source code 

__init__(lldb::SBTarget self) -> SBTarget __init__(lldb::SBTarget self, SBTarget rhs) -> SBTarget

Overrides: object.__init__

LaunchSimple(self, *args)

source code 

LaunchSimple(SBTarget self, str const ** argv, str const ** envp, str const * working_directory) -> SBProcess

Launch a new process with sensible defaults.

@param[in] argv
    The argument array.

@param[in] envp
    The environment array.

@param[in] working_directory
    The working directory to have the child process run in

Default: listener
    Set to the target's debugger (SBTarget::GetDebugger())

Default: launch_flags
    Empty launch flags

Default: stdin_path
Default: stdout_path
Default: stderr_path
    A pseudo terminal will be used.

@return
     A process object for the newly created process.

For example,

    process = target.LaunchSimple(['X', 'Y', 'Z'], None, os.getcwd())

launches a new process by passing 'X', 'Y', 'Z' as the args to the
executable.

Launch(self, *args)

source code 

Launch(SBTarget self, SBListener listener, str const ** argv, str const ** envp, str const * stdin_path, 
    str const * stdout_path, str const * stderr_path, str const * working_directory, 
    uint32_t launch_flags, bool stop_at_entry, SBError error) -> SBProcess
Launch(SBTarget self, SBLaunchInfo launch_info, SBError error) -> SBProcess

Launch a new process.

Launch a new process by spawning a new process using the
target object's executable module's file as the file to launch.
Arguments are given in argv, and the environment variables
are in envp. Standard input and output files can be
optionally re-directed to stdin_path, stdout_path, and
stderr_path.

@param[in] listener
    An optional listener that will receive all process events.
    If listener is valid then listener will listen to all
    process events. If not valid, then this target's debugger
    (SBTarget::GetDebugger()) will listen to all process events. 

@param[in] argv
    The argument array.

@param[in] envp
    The environment array.

@param[in] launch_flags
    Flags to modify the launch (@see lldb::LaunchFlags)

@param[in] stdin_path
    The path to use when re-directing the STDIN of the new
    process. If all stdXX_path arguments are NULL, a pseudo
    terminal will be used.

@param[in] stdout_path
    The path to use when re-directing the STDOUT of the new
    process. If all stdXX_path arguments are NULL, a pseudo
    terminal will be used.

@param[in] stderr_path
    The path to use when re-directing the STDERR of the new
    process. If all stdXX_path arguments are NULL, a pseudo
    terminal will be used.

@param[in] working_directory
    The working directory to have the child process run in

@param[in] launch_flags
    Some launch options specified by logical OR'ing 
    lldb::LaunchFlags enumeration values together.

@param[in] stop_at_endtry
    If false do not stop the inferior at the entry point.

@param[out]
    An error object. Contains the reason if there is some failure.

@return
     A process object for the newly created process.

For example,

    process = target.Launch(self.dbg.GetListener(), None, None,
                            None, '/tmp/stdout.txt', None,
                            None, 0, False, error)

launches a new process by passing nothing for both the args and the envs
and redirect the standard output of the inferior to the /tmp/stdout.txt
file. It does not specify a working directory so that the debug server
will use its idea of what the current working directory is for the
inferior. Also, we ask the debugger not to stop the inferior at the
entry point. If no breakpoint is specified for the inferior, it should
run to completion if no user interaction is required.

LoadCore(self, *args)

source code 

LoadCore(SBTarget self, str const * core_file) -> SBProcess

Load a core file

@param[in] core_file
    File path of the core dump.

@return
     A process object for the newly created core file.

For example,

    process = target.LoadCore('./a.out.core')

loads a new core file and returns the process object.

AttachToProcessWithID(self, *args)

source code 

AttachToProcessWithID(SBTarget self, SBListener listener, lldb::pid_t pid, SBError error) -> SBProcess

Attach to process with pid.

@param[in] listener
    An optional listener that will receive all process events.
    If listener is valid then listener will listen to all
    process events. If not valid, then this target's debugger
    (SBTarget::GetDebugger()) will listen to all process events.

@param[in] pid
    The process ID to attach to.

@param[out]
    An error explaining what went wrong if attach fails.

@return
     A process object for the attached process.

AttachToProcessWithName(self, *args)

source code 

AttachToProcessWithName(SBTarget self, SBListener listener, str const * name, bool wait_for, SBError error) -> SBProcess

Attach to process with name.

@param[in] listener
    An optional listener that will receive all process events.
    If listener is valid then listener will listen to all
    process events. If not valid, then this target's debugger
    (SBTarget::GetDebugger()) will listen to all process events.

@param[in] name
    Basename of process to attach to.

@param[in] wait_for
    If true wait for a new instance of 'name' to be launched.

@param[out]
    An error explaining what went wrong if attach fails.

@return
     A process object for the attached process.

ConnectRemote(self, *args)

source code 

ConnectRemote(SBTarget self, SBListener listener, str const * url, str const * plugin_name, SBError error) -> SBProcess

Connect to a remote debug server with url.

@param[in] listener
    An optional listener that will receive all process events.
    If listener is valid then listener will listen to all
    process events. If not valid, then this target's debugger
    (SBTarget::GetDebugger()) will listen to all process events.

@param[in] url
    The url to connect to, e.g., 'connect://localhost:12345'.

@param[in] plugin_name
    The plugin name to be used; can be NULL.

@param[out]
    An error explaining what went wrong if the connect fails.

@return
     A process object for the connected process.

FindFunctions(self, *args)

source code 

FindFunctions(SBTarget self, str const * name, uint32_t name_type_mask=eFunctionNameTypeAny) -> SBSymbolContextList
FindFunctions(SBTarget self, str const * name) -> SBSymbolContextList

Find functions by name.

@param[in] name
    The name of the function we are looking for.

@param[in] name_type_mask
    A logical OR of one or more FunctionNameType enum bits that
    indicate what kind of names should be used when doing the
    lookup. Bits include fully qualified names, base names,
    C++ methods, or ObjC selectors. 
    See FunctionNameType for more details.

@return
    A lldb::SBSymbolContextList that gets filled in with all of 
    the symbol contexts for all the matches.

FindGlobalVariables(self, *args)

source code 

FindGlobalVariables(SBTarget self, str const * name, uint32_t max_matches) -> SBValueList

Find global and static variables by name.

@param[in] name
    The name of the global or static variable we are looking
    for.

@param[in] max_matches
    Allow the number of matches to be limited to max_matches.

@return
    A list of matched variables in an SBValueList.

FindFirstGlobalVariable(self, *args)

source code 

FindFirstGlobalVariable(SBTarget self, str const * name) -> SBValue

Find the first global (or static) variable by name.

@param[in] name
    The name of the global or static variable we are looking
    for.

@return
    An SBValue that gets filled in with the found variable (if any).

BreakpointCreateByNames(self, *args)

source code 

BreakpointCreateByNames(SBTarget self, str const *[] symbol_name, uint32_t num_names, uint32_t name_type_mask, SBFileSpecList module_list, 
    SBFileSpecList comp_unit_list) -> SBBreakpoint

__str__(self)
(Informal representation operator)

source code 

__str__(SBTarget self) -> PyObject *

Overrides: object.__str__

Property Details [hide private]

addr_size

A read only property that returns the size in bytes of an address for this target.

Get Method:
GetAddressByteSize(self) - GetAddressByteSize(SBTarget self) -> uint32_t

broadcaster

A read only property that an lldb object that represents the broadcaster (lldb.SBBroadcaster) for this target.

Get Method:
GetBroadcaster(self) - GetBroadcaster(SBTarget self) -> SBBroadcaster

byte_order

A read only property that returns an lldb enumeration value (lldb.eByteOrderLittle, lldb.eByteOrderBig, lldb.eByteOrderInvalid) that represents the byte order for this target.

Get Method:
GetByteOrder(self) - GetByteOrder(SBTarget self) -> lldb::ByteOrder

debugger

A read only property that returns an lldb object that represents the debugger (lldb.SBDebugger) that owns this target.

Get Method:
GetDebugger(self) - GetDebugger(SBTarget self) -> SBDebugger

executable

A read only property that returns an lldb object that represents the main executable module (lldb.SBModule) for this target.

Get Method:
GetExecutable(self) - GetExecutable(SBTarget self) -> SBFileSpec

module

A read only property that returns an object that implements python operator overloading with the square brackets().\n target.module[<int>] allows array access to any modules.\n target.module[<str>] allows access to modules by basename, full path, or uuid string value.\n target.module[uuid.UUID()] allows module access by UUID.\n target.module[re] allows module access using a regular expression that matches the module full path.

Get Method:
get_modules_access_object(self) - An accessor function that returns a modules_access() object which allows lazy module access from a lldb.SBTarget object.

modules

A read only property that returns a list() of lldb.SBModule objects contained in this target. This list is a list all modules that the target currently is tracking (the main executable and all dependent shared libraries).

Get Method:
get_modules_array(self) - An accessor function that returns a list() that contains all modules in a lldb.SBTarget object.

num_breakpoints

A read only property that returns the number of breakpoints that this target has as an integer.

Get Method:
GetNumBreakpoints(self) - GetNumBreakpoints(SBTarget self) -> uint32_t

num_watchpoints

A read only property that returns the number of watchpoints that this target has as an integer.

Get Method:
GetNumWatchpoints(self) - GetNumWatchpoints(SBTarget self) -> uint32_t

process

A read only property that returns an lldb object that represents the process (lldb.SBProcess) that this target owns.

Get Method:
GetProcess(self) - GetProcess(SBTarget self) -> SBProcess

triple

A read only property that returns the target triple (arch-vendor-os) for this target as a string.

Get Method:
GetTriple(self) - GetTriple(SBTarget self) -> str const *