aboutsummaryrefslogtreecommitdiff
path: root/examples/python/globals.py
diff options
context:
space:
mode:
Diffstat (limited to 'examples/python/globals.py')
-rwxr-xr-xexamples/python/globals.py74
1 files changed, 54 insertions, 20 deletions
diff --git a/examples/python/globals.py b/examples/python/globals.py
index fb2739c8b69c..43bd915b3933 100755
--- a/examples/python/globals.py
+++ b/examples/python/globals.py
@@ -15,58 +15,92 @@ import os
import shlex
import sys
+
def get_globals(raw_path, options):
error = lldb.SBError()
# Resolve the path if needed
path = os.path.expanduser(raw_path)
# Create a target using path + options
- target = lldb.debugger.CreateTarget(path, options.arch, options.platform, False, error)
+ target = lldb.debugger.CreateTarget(
+ path, options.arch, options.platform, False, error)
if target:
# Get the executable module
module = target.module[target.executable.basename]
if module:
# Keep track of which variables we have already looked up
global_names = list()
- # Iterate through all symbols in the symbol table and watch for any DATA symbols
+ # Iterate through all symbols in the symbol table and watch for any
+ # DATA symbols
for symbol in module.symbols:
if symbol.type == lldb.eSymbolTypeData:
- # The symbol is a DATA symbol, lets try and find all global variables
+ # The symbol is a DATA symbol, lets try and find all global variables
# that match this name and print them
global_name = symbol.name
# Make sure we don't lookup the same variable twice
if global_name not in global_names:
global_names.append(global_name)
# Find all global variables by name
- global_variable_list = module.FindGlobalVariables (target, global_name, lldb.UINT32_MAX)
+ global_variable_list = module.FindGlobalVariables(
+ target, global_name, lldb.UINT32_MAX)
if global_variable_list:
# Print results for anything that matched
for global_variable in global_variable_list:
- print 'name = %s' % global_variable.name # returns the global variable name as a string
- print 'value = %s' % global_variable.value # Returns the variable value as a string
+ # returns the global variable name as a string
+ print 'name = %s' % global_variable.name
+ # Returns the variable value as a string
+ print 'value = %s' % global_variable.value
print 'type = %s' % global_variable.type # Returns an lldb.SBType object
- print 'addr = %s' % global_variable.addr # Returns an lldb.SBAddress (section offset address) for this global
- print 'file_addr = 0x%x' % global_variable.addr.file_addr # Returns the file virtual address for this global
- print 'location = %s' % global_variable.location # returns the global variable value as a string
- print 'size = %s' % global_variable.size # Returns the size in bytes of this global variable
+ # Returns an lldb.SBAddress (section offset
+ # address) for this global
+ print 'addr = %s' % global_variable.addr
+ # Returns the file virtual address for this
+ # global
+ print 'file_addr = 0x%x' % global_variable.addr.file_addr
+ # returns the global variable value as a string
+ print 'location = %s' % global_variable.location
+ # Returns the size in bytes of this global
+ # variable
+ print 'size = %s' % global_variable.size
print
+
def globals(command_args):
'''Extract all globals from any arguments which must be paths to object files.'''
usage = "usage: %prog [options] <PATH> [PATH ...]"
- description='''This command will find all globals in the specified object file and return an list() of lldb.SBValue objects (which might be empty).'''
- parser = optparse.OptionParser(description=description, prog='globals',usage=usage)
- parser.add_option('-v', '--verbose', action='store_true', dest='verbose', help='display verbose debug info', default=False)
- parser.add_option('-a', '--arch', type='string', metavar='arch', dest='arch', help='Specify an architecture (or triple) to use when extracting from a file.')
- parser.add_option('-p', '--platform', type='string', metavar='platform', dest='platform', help='Specify the platform to use when creating the debug target. Valid values include "localhost", "darwin-kernel", "ios-simulator", "remote-freebsd", "remote-macosx", "remote-ios", "remote-linux".')
+ description = '''This command will find all globals in the specified object file and return an list() of lldb.SBValue objects (which might be empty).'''
+ parser = optparse.OptionParser(
+ description=description,
+ prog='globals',
+ usage=usage)
+ parser.add_option(
+ '-v',
+ '--verbose',
+ action='store_true',
+ dest='verbose',
+ help='display verbose debug info',
+ default=False)
+ parser.add_option(
+ '-a',
+ '--arch',
+ type='string',
+ metavar='arch',
+ dest='arch',
+ help='Specify an architecture (or triple) to use when extracting from a file.')
+ parser.add_option(
+ '-p',
+ '--platform',
+ type='string',
+ metavar='platform',
+ dest='platform',
+ help='Specify the platform to use when creating the debug target. Valid values include "localhost", "darwin-kernel", "ios-simulator", "remote-freebsd", "remote-macosx", "remote-ios", "remote-linux".')
try:
(options, args) = parser.parse_args(command_args)
except:
return
-
+
for path in args:
- get_globals (path, options)
-
+ get_globals(path, options)
+
if __name__ == '__main__':
lldb.debugger = lldb.SBDebugger.Create()
- globals (sys.argv[1:])
-
+ globals(sys.argv[1:])