diff -ru lldb-8.0.0.src.orig/examples/python/bsd.py lldb-8.0.0.src/examples/python/bsd.py --- lldb-8.0.0.src.orig/examples/python/bsd.py 2019-03-26 17:36:55.201323116 +0000 +++ lldb-8.0.0.src/examples/python/bsd.py 2019-03-26 18:04:34.490674743 +0000 @@ -20,8 +20,8 @@ s = src[i:i+bytes_per_line] hex_bytes = ' '.join(["%02x" % (ord(x)) for x in s]) ascii = s.translate(FILTER) - print("%#08.8x: %-*s %s" % (address+i, bytes_per_line*3, hex_bytes, - ascii)) + print(("%#08.8x: %-*s %s" % (address+i, bytes_per_line*3, hex_bytes, + ascii))) class Object(object): @@ -87,9 +87,9 @@ if path is None: path = self.name if not overwrite and os.path.exists(path): - print('error: outfile "%s" already exists' % (path)) + print(('error: outfile "%s" already exists' % (path))) return - print('Saving "%s" to "%s"...' % (self.name, path)) + print(('Saving "%s" to "%s"...' % (self.name, path))) with open(path, 'w') as f: f.write(self.get_bytes()) @@ -218,7 +218,7 @@ def default(self, line): '''Catch all for unknown command, which will exit the interpreter.''' - print("unknown command: %s" % line) + print(("unknown command: %s" % line)) return True def do_q(self, line): @@ -241,8 +241,8 @@ object.save(overwrite=False) extracted = True if not extracted: - print('error: no object matches "%s" in any archives' % ( - object_name)) + print(('error: no object matches "%s" in any archives' % ( + object_name))) else: print('error: must specify the name of an object to extract') @@ -256,8 +256,8 @@ for object in matches: object.dump(flat=False) else: - print('error: no object matches "%s" in "%s"' % ( - object_name, archive.path)) + print(('error: no object matches "%s" in "%s"' % ( + object_name, archive.path))) else: for archive in self.archives: archive.dump(flat=True) @@ -342,7 +342,7 @@ for path in args: archive = Archive(path) if options.object_name: - print('%s:\n' % (path)) + print(('%s:\n' % (path))) matches = archive.find(options.object_name, options.mtime) if matches: dump_all = True @@ -351,15 +351,15 @@ dump_all = False matches[0].save(path=options.outfile, overwrite=False) else: - print('error: multiple objects match "%s". Specify ' + print(('error: multiple objects match "%s". Specify ' 'the modification time using --mtime.' % ( - options.object_name)) + options.object_name))) if dump_all: for obj in matches: obj.dump(flat=False) else: - print('error: object "%s" not found in archive' % ( - options.object_name)) + print(('error: object "%s" not found in archive' % ( + options.object_name))) elif options.find_symbol: symdefs = archive.get_symdef() if symdefs: @@ -367,12 +367,12 @@ for (name, offset) in symdefs: obj = archive.get_object_at_offset(offset) if name == options.find_symbol: - print('Found "%s" in:' % (options.find_symbol)) + print(('Found "%s" in:' % (options.find_symbol))) obj.dump(flat=False) success = True if not success: - print('Didn\'t find "%s" in any objects' % ( - options.find_symbol)) + print(('Didn\'t find "%s" in any objects' % ( + options.find_symbol))) else: print("error: no __.SYMDEF was found") elif options.symdef: @@ -381,7 +381,7 @@ object_dict['object'].dump(flat=False) print("symbols:") for name in object_dict['symdefs']: - print(" %s" % (name)) + print((" %s" % (name))) else: archive.dump(flat=not options.verbose) @@ -391,18 +391,18 @@ def print_mtime_error(result, dmap_mtime, actual_mtime): - print >>result, ("error: modification time in debug map (%#08.8x) doesn't " + print(("error: modification time in debug map (%#08.8x) doesn't " "match the .o file modification time (%#08.8x)" % ( - dmap_mtime, actual_mtime)) + dmap_mtime, actual_mtime)), file=result) def print_file_missing_error(result, path): - print >>result, "error: file \"%s\" doesn't exist" % (path) + print("error: file \"%s\" doesn't exist" % (path), file=result) def print_multiple_object_matches(result, object_name, mtime, matches): - print >>result, ("error: multiple matches for object '%s' with with " - "modification time %#08.8x:" % (object_name, mtime)) + print(("error: multiple matches for object '%s' with with " + "modification time %#08.8x:" % (object_name, mtime)), file=result) Archive.dump_header(f=result) for match in matches: match.dump(f=result, flat=True) @@ -411,15 +411,15 @@ def print_archive_object_error(result, object_name, mtime, archive): matches = archive.find(object_name, f=result) if len(matches) > 0: - print >>result, ("error: no objects have a modification time that " + print(("error: no objects have a modification time that " "matches %#08.8x for '%s'. Potential matches:" % ( - mtime, object_name)) + mtime, object_name)), file=result) Archive.dump_header(f=result) for match in matches: match.dump(f=result, flat=True) else: - print >>result, "error: no object named \"%s\" found in archive:" % ( - object_name) + print("error: no object named \"%s\" found in archive:" % ( + object_name), file=result) Archive.dump_header(f=result) for match in archive.objects: match.dump(f=result, flat=True) @@ -496,13 +496,13 @@ dmap_mtime = int(str(symbol).split('value = ') [1].split(',')[0], 16) if not options.errors: - print >>result, '%s' % (path) + print('%s' % (path), file=result) if os.path.exists(path): actual_mtime = int(os.stat(path).st_mtime) if dmap_mtime != actual_mtime: num_errors += 1 if options.errors: - print >>result, '%s' % (path), + print('%s' % (path), end=' ', file=result) print_mtime_error(result, dmap_mtime, actual_mtime) elif path[-1] == ')': @@ -510,13 +510,13 @@ if not archive_path and not object_name: num_errors += 1 if options.errors: - print >>result, '%s' % (path), + print('%s' % (path), end=' ', file=result) print_file_missing_error(path) continue if not os.path.exists(archive_path): num_errors += 1 if options.errors: - print >>result, '%s' % (path), + print('%s' % (path), end=' ', file=result) print_file_missing_error(archive_path) continue if archive_path in archives: @@ -527,30 +527,30 @@ matches = archive.find(object_name, dmap_mtime) num_matches = len(matches) if num_matches == 1: - print >>result, '1 match' + print('1 match', file=result) obj = matches[0] if obj.date != dmap_mtime: num_errors += 1 if options.errors: - print >>result, '%s' % (path), + print('%s' % (path), end=' ', file=result) print_mtime_error(result, dmap_mtime, obj.date) elif num_matches == 0: num_errors += 1 if options.errors: - print >>result, '%s' % (path), + print('%s' % (path), end=' ', file=result) print_archive_object_error(result, object_name, dmap_mtime, archive) elif num_matches > 1: num_errors += 1 if options.errors: - print >>result, '%s' % (path), + print('%s' % (path), end=' ', file=result) print_multiple_object_matches(result, object_name, dmap_mtime, matches) if num_errors > 0: - print >>result, "%u errors found" % (num_errors) + print("%u errors found" % (num_errors), file=result) else: - print >>result, "No errors detected in debug map" + print("No errors detected in debug map", file=result) def __lldb_init_module(debugger, dict): @@ -560,5 +560,5 @@ debugger.HandleCommand( 'command script add -c %s.VerifyDebugMapCommand %s' % ( __name__, VerifyDebugMapCommand.name)) - print('The "%s" command has been installed, type "help %s" for detailed ' - 'help.' % (VerifyDebugMapCommand.name, VerifyDebugMapCommand.name)) + print(('The "%s" command has been installed, type "help %s" for detailed ' + 'help.' % (VerifyDebugMapCommand.name, VerifyDebugMapCommand.name))) diff -ru lldb-8.0.0.src.orig/examples/python/cmdtemplate.py lldb-8.0.0.src/examples/python/cmdtemplate.py --- lldb-8.0.0.src.orig/examples/python/cmdtemplate.py 2019-03-26 17:36:55.201323116 +0000 +++ lldb-8.0.0.src/examples/python/cmdtemplate.py 2019-03-26 18:04:33.818665159 +0000 @@ -28,8 +28,8 @@ cls.__name__, cls.program) debugger.HandleCommand(command) - print('The "{0}" command has been installed, type "help {0}" or "{0} ' - '--help" for detailed help.'.format(cls.program)) + print(('The "{0}" command has been installed, type "help {0}" or "{0} ' + '--help" for detailed help.'.format(cls.program))) @classmethod def create_options(cls): @@ -124,7 +124,7 @@ options.inscope) variables_count = variables_list.GetSize() if variables_count == 0: - print >> result, "no variables here" + print("no variables here", file=result) return total_size = 0 for i in range(0, variables_count): @@ -132,9 +132,9 @@ variable_type = variable.GetType() total_size = total_size + variable_type.GetByteSize() average_size = float(total_size) / variables_count - print >>result, ("Your frame has %d variables. Their total size " + print(("Your frame has %d variables. Their total size " "is %d bytes. The average size is %f bytes") % ( - variables_count, total_size, average_size) + variables_count, total_size, average_size), file=result) # not returning anything is akin to returning success diff -ru lldb-8.0.0.src.orig/examples/python/crashlog.py lldb-8.0.0.src/examples/python/crashlog.py --- lldb-8.0.0.src.orig/examples/python/crashlog.py 2019-03-26 17:36:55.201323116 +0000 +++ lldb-8.0.0.src/examples/python/crashlog.py 2019-03-26 18:04:38.770735789 +0000 @@ -26,7 +26,7 @@ # PYTHONPATH=/path/to/LLDB.framework/Resources/Python ./crashlog.py ~/Library/Logs/DiagnosticReports/a.crash #---------------------------------------------------------------------- -import commands +import subprocess import cmd import datetime import glob @@ -51,7 +51,7 @@ platform_system = platform.system() if platform_system == 'Darwin': # On Darwin, try the currently selected Xcode directory - xcode_dir = commands.getoutput("xcode-select --print-path") + xcode_dir = subprocess.getoutput("xcode-select --print-path") if xcode_dir: lldb_python_dirs.append( os.path.realpath( @@ -71,11 +71,11 @@ except ImportError: pass else: - print 'imported lldb from: "%s"' % (lldb_python_dir) + print('imported lldb from: "%s"' % (lldb_python_dir)) success = True break if not success: - print "error: couldn't locate the 'lldb' module, please set PYTHONPATH correctly" + print("error: couldn't locate the 'lldb' module, please set PYTHONPATH correctly") sys.exit(1) from lldb.utils import symbolication @@ -113,17 +113,17 @@ def dump(self, prefix): if self.app_specific_backtrace: - print "%Application Specific Backtrace[%u] %s" % (prefix, self.index, self.reason) + print("%Application Specific Backtrace[%u] %s" % (prefix, self.index, self.reason)) else: - print "%sThread[%u] %s" % (prefix, self.index, self.reason) + print("%sThread[%u] %s" % (prefix, self.index, self.reason)) if self.frames: - print "%s Frames:" % (prefix) + print("%s Frames:" % (prefix)) for frame in self.frames: frame.dump(prefix + ' ') if self.registers: - print "%s Registers:" % (prefix) - for reg in self.registers.keys(): - print "%s %-5s = %#16.16x" % (prefix, reg, self.registers[reg]) + print("%s Registers:" % (prefix)) + for reg in list(self.registers.keys()): + print("%s %-5s = %#16.16x" % (prefix, reg, self.registers[reg])) def dump_symbolicated(self, crash_log, options): this_thread_crashed = self.app_specific_backtrace @@ -132,7 +132,7 @@ if options.crashed_only and this_thread_crashed == False: return - print "%s" % self + print("%s" % self) #prev_frame_index = -1 display_frame_idx = -1 for frame_idx, frame in enumerate(self.frames): @@ -151,7 +151,7 @@ symbolicated_frame_address_idx = 0 for symbolicated_frame_address in symbolicated_frame_addresses: display_frame_idx += 1 - print '[%3u] %s' % (frame_idx, symbolicated_frame_address) + print('[%3u] %s' % (frame_idx, symbolicated_frame_address)) if (options.source_all or self.did_crash( )) and display_frame_idx < options.source_frames and options.source_context: source_context = options.source_context @@ -166,12 +166,12 @@ # Indent the source a bit indent_str = ' ' join_str = '\n' + indent_str - print '%s%s' % (indent_str, join_str.join(source_text.split('\n'))) + print('%s%s' % (indent_str, join_str.join(source_text.split('\n')))) if symbolicated_frame_address_idx == 0: if disassemble: instructions = symbolicated_frame_address.get_instructions() if instructions: - print + print() symbolication.disassemble_instructions( crash_log.get_target(), instructions, @@ -179,10 +179,10 @@ options.disassemble_before, options.disassemble_after, frame.index > 0) - print + print() symbolicated_frame_address_idx += 1 else: - print frame + print(frame) def add_ident(self, ident): if ident not in self.idents: @@ -216,13 +216,13 @@ return "[%3u] 0x%16.16x" % (self.index, self.pc) def dump(self, prefix): - print "%s%s" % (prefix, str(self)) + print("%s%s" % (prefix, str(self))) class DarwinImage(symbolication.Image): """Class that represents a binary images in a darwin crash log""" dsymForUUIDBinary = os.path.expanduser('~rc/bin/dsymForUUID') if not os.path.exists(dsymForUUIDBinary): - dsymForUUIDBinary = commands.getoutput('which dsymForUUID') + dsymForUUIDBinary = subprocess.getoutput('which dsymForUUID') dwarfdump_uuid_regex = re.compile( 'UUID: ([-0-9a-fA-F]+) \(([^\(]+)\) .*') @@ -245,7 +245,7 @@ self.version = version def find_matching_slice(self): - dwarfdump_cmd_output = commands.getoutput( + dwarfdump_cmd_output = subprocess.getoutput( 'dwarfdump --uuid "%s"' % self.path) self_uuid = self.get_uuid() for line in dwarfdump_cmd_output.splitlines(): @@ -259,8 +259,8 @@ return True if not self.resolved_path: self.unavailable = True - print("error\n error: unable to locate '%s' with UUID %s" - % (self.path, uuid_str)) + print(("error\n error: unable to locate '%s' with UUID %s" + % (self.path, uuid_str))) return False def locate_module_and_debug_symbols(self): @@ -270,16 +270,16 @@ # Mark this as resolved so we don't keep trying self.resolved = True uuid_str = self.get_normalized_uuid_string() - print 'Getting symbols for %s %s...' % (uuid_str, self.path), + print('Getting symbols for %s %s...' % (uuid_str, self.path), end=' ') if os.path.exists(self.dsymForUUIDBinary): dsym_for_uuid_command = '%s %s' % ( self.dsymForUUIDBinary, uuid_str) - s = commands.getoutput(dsym_for_uuid_command) + s = subprocess.getoutput(dsym_for_uuid_command) if s: try: plist_root = plistlib.readPlistFromString(s) except: - print("Got exception: ", sys.exc_value, " handling dsymForUUID output: \n", s) + print(("Got exception: ", sys.exc_info()[1], " handling dsymForUUID output: \n", s)) raise if plist_root: plist = plist_root[uuid_str] @@ -303,7 +303,7 @@ ["/usr/bin/mdfind", "com_apple_xcode_dsym_uuids == %s"%uuid_str])[:-1] if dsym and os.path.exists(dsym): - print('falling back to binary inside "%s"'%dsym) + print(('falling back to binary inside "%s"'%dsym)) self.symfile = dsym dwarf_dir = os.path.join(dsym, 'Contents/Resources/DWARF') for filename in os.listdir(dwarf_dir): @@ -315,7 +315,7 @@ pass if (self.resolved_path and os.path.exists(self.resolved_path)) or ( self.path and os.path.exists(self.path)): - print 'ok' + print('ok') # if self.resolved_path: # print ' exe = "%s"' % self.resolved_path # if self.symfile: @@ -471,7 +471,7 @@ thread.frames.append(CrashLog.Frame(int(frame_match.group(1)), int( frame_match.group(3), 0), frame_match.group(4))) else: - print 'error: frame regex failed for line: "%s"' % line + print('error: frame regex failed for line: "%s"' % line) elif parse_mode == PARSE_MODE_IMAGES: image_match = self.image_regex_uuid.search(line) if image_match: @@ -484,7 +484,7 @@ uuid.UUID(img_uuid), img_path) self.images.append(image) else: - print "error: image regex failed for: %s" % line + print("error: image regex failed for: %s" % line) elif parse_mode == PARSE_MODE_THREGS: stripped_line = line.strip() @@ -502,15 +502,15 @@ f.close() def dump(self): - print "Crash Log File: %s" % (self.path) + print("Crash Log File: %s" % (self.path)) if self.backtraces: - print "\nApplication Specific Backtraces:" + print("\nApplication Specific Backtraces:") for thread in self.backtraces: thread.dump(' ') - print "\nThreads:" + print("\nThreads:") for thread in self.threads: thread.dump(' ') - print "\nImages:" + print("\nImages:") for image in self.images: image.dump(' ') @@ -533,7 +533,7 @@ return self.target # We weren't able to open the main executable as, but we can still # symbolicate - print 'crashlog.create_target()...2' + print('crashlog.create_target()...2') if self.idents: for ident in self.idents: image = self.find_image_with_identifier(ident) @@ -541,13 +541,13 @@ self.target = image.create_target() if self.target: return self.target # success - print 'crashlog.create_target()...3' + print('crashlog.create_target()...3') for image in self.images: self.target = image.create_target() if self.target: return self.target # success - print 'crashlog.create_target()...4' - print 'error: unable to locate any executables from the crash log' + print('crashlog.create_target()...4') + print('error: unable to locate any executables from the crash log') return self.target def get_target(self): @@ -555,7 +555,7 @@ def usage(): - print "Usage: lldb-symbolicate.py [-n name] executable-image" + print("Usage: lldb-symbolicate.py [-n name] executable-image") sys.exit(0) @@ -572,7 +572,7 @@ def default(self, line): '''Catch all for unknown command, which will exit the interpreter.''' - print "uknown command: %s" % line + print("uknown command: %s" % line) return True def do_q(self, line): @@ -602,7 +602,7 @@ if idx < len(self.crash_logs): SymbolicateCrashLog(self.crash_logs[idx], options) else: - print 'error: crash log index %u is out of range' % (idx) + print('error: crash log index %u is out of range' % (idx)) else: # No arguments, symbolicate all crash logs using the options # provided @@ -613,9 +613,9 @@ '''Dump a list of all crash logs that are currently loaded. USAGE: list''' - print '%u crash logs are loaded:' % len(self.crash_logs) + print('%u crash logs are loaded:' % len(self.crash_logs)) for (crash_log_idx, crash_log) in enumerate(self.crash_logs): - print '[%u] = %s' % (crash_log_idx, crash_log.path) + print('[%u] = %s' % (crash_log_idx, crash_log.path)) def do_image(self, line): '''Dump information about one or more binary images in the crash log given an image basename, or all images if no arguments are provided.''' @@ -645,22 +645,22 @@ if fullpath_search: if image.get_resolved_path() == image_path: matches_found += 1 - print '[%u] ' % (crash_log_idx), image + print('[%u] ' % (crash_log_idx), image) else: image_basename = image.get_resolved_path_basename() if image_basename == image_path: matches_found += 1 - print '[%u] ' % (crash_log_idx), image + print('[%u] ' % (crash_log_idx), image) if matches_found == 0: for (image_idx, image) in enumerate(crash_log.images): resolved_image_path = image.get_resolved_path() if resolved_image_path and string.find( image.get_resolved_path(), image_path) >= 0: - print '[%u] ' % (crash_log_idx), image + print('[%u] ' % (crash_log_idx), image) else: for crash_log in self.crash_logs: for (image_idx, image) in enumerate(crash_log.images): - print '[%u] %s' % (image_idx, image) + print('[%u] %s' % (image_idx, image)) return False @@ -675,12 +675,12 @@ # print 'crash_log_file = "%s"' % crash_log_file crash_log = CrashLog(crash_log_file) if crash_log.error: - print crash_log.error + print(crash_log.error) continue if options.debug: crash_log.dump() if not crash_log.images: - print 'error: no images in crash log "%s"' % (crash_log) + print('error: no images in crash log "%s"' % (crash_log)) continue else: crash_logs.append(crash_log) @@ -736,7 +736,7 @@ (datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))) out_file.write( 'OS Version: Mac OS X %s (%s)\n' % - (platform.mac_ver()[0], commands.getoutput('sysctl -n kern.osversion'))) + (platform.mac_ver()[0], subprocess.getoutput('sysctl -n kern.osversion'))) out_file.write('Report Version: 9\n') for thread_idx in range(process.num_threads): thread = process.thread[thread_idx] @@ -808,21 +808,21 @@ def SymbolicateCrashLog(crash_log, options): if crash_log.error: - print crash_log.error + print(crash_log.error) return if options.debug: crash_log.dump() if not crash_log.images: - print 'error: no images in crash log' + print('error: no images in crash log') return if options.dump_image_list: - print "Binary Images:" + print("Binary Images:") for image in crash_log.images: if options.verbose: - print image.debug_dump() + print(image.debug_dump()) else: - print image + print(image) target = crash_log.create_target() if not target: @@ -845,7 +845,7 @@ for image in images: images_to_load.append(image) else: - print 'error: can\'t find image for identifier "%s"' % ident + print('error: can\'t find image for identifier "%s"' % ident) else: for ident in crash_log.idents: images = crash_log.find_images_with_identifier(ident) @@ -853,13 +853,13 @@ for image in images: images_to_load.append(image) else: - print 'error: can\'t find image for identifier "%s"' % ident + print('error: can\'t find image for identifier "%s"' % ident) for image in images_to_load: if image not in loaded_images: err = image.add_module(target) if err: - print err + print(err) else: # print 'loaded %s' % image loaded_images.append(image) @@ -867,11 +867,11 @@ if crash_log.backtraces: for thread in crash_log.backtraces: thread.dump_symbolicated(crash_log, options) - print + print() for thread in crash_log.threads: thread.dump_symbolicated(crash_log, options) - print + print() def CreateSymbolicateCrashLogOptions( @@ -998,12 +998,12 @@ return if options.debug: - print 'command_args = %s' % command_args - print 'options', options - print 'args', args + print('command_args = %s' % command_args) + print('options', options) + print('args', args) if options.debug_delay > 0: - print "Waiting %u seconds for debugger to attach..." % options.debug_delay + print("Waiting %u seconds for debugger to attach..." % options.debug_delay) time.sleep(options.debug_delay) error = lldb.SBError() @@ -1024,4 +1024,4 @@ 'command script add -f lldb.macosx.crashlog.Symbolicate crashlog') lldb.debugger.HandleCommand( 'command script add -f lldb.macosx.crashlog.save_crashlog save_crashlog') - print '"crashlog" and "save_crashlog" command installed, use the "--help" option for detailed help' + print('"crashlog" and "save_crashlog" command installed, use the "--help" option for detailed help') diff -ru lldb-8.0.0.src.orig/examples/python/delta.py lldb-8.0.0.src/examples/python/delta.py --- lldb-8.0.0.src.orig/examples/python/delta.py 2019-03-26 17:36:55.201323116 +0000 +++ lldb-8.0.0.src/examples/python/delta.py 2019-03-26 18:04:27.285571978 +0000 @@ -16,7 +16,7 @@ # available. #---------------------------------------------------------------------- -import commands +import subprocess import optparse import os import shlex @@ -94,9 +94,9 @@ handy when trying to figure out why some operation in the debugger is taking a long time during a preset set of debugger commands.''' - print '#----------------------------------------------------------------------' - print "# Log file: '%s'" % file - print '#----------------------------------------------------------------------' + print('#----------------------------------------------------------------------') + print("# Log file: '%s'" % file) + print('#----------------------------------------------------------------------') timestamp_regex = re.compile('(\s*)([1-9][0-9]+\.[0-9]+)([^0-9].*)$') @@ -114,10 +114,10 @@ else: base_time = curr_time - print '%s%.6f %+.6f%s' % (match.group(1), curr_time - base_time, delta, match.group(3)) + print('%s%.6f %+.6f%s' % (match.group(1), curr_time - base_time, delta, match.group(3))) last_time = curr_time else: - print line + print(line) if __name__ == '__main__': @@ -131,4 +131,4 @@ # Add any commands contained in this module to LLDB lldb.debugger.HandleCommand( 'command script add -f delta.parse_time_log parse_time_log') - print 'The "parse_time_log" command is now installed and ready for use, type "parse_time_log --help" for more information' + print('The "parse_time_log" command is now installed and ready for use, type "parse_time_log --help" for more information') diff -ru lldb-8.0.0.src.orig/examples/python/diagnose_nsstring.py lldb-8.0.0.src/examples/python/diagnose_nsstring.py --- lldb-8.0.0.src.orig/examples/python/diagnose_nsstring.py 2019-03-26 17:36:55.200323102 +0000 +++ lldb-8.0.0.src/examples/python/diagnose_nsstring.py 2019-03-26 18:04:27.003567956 +0000 @@ -32,7 +32,7 @@ if x < size - 2: data = data + ":" except Exception as e: - print e + print(e) return data @@ -57,7 +57,7 @@ nsstring = frame.EvaluateExpression(command, options) else: nsstring = target.EvaluateExpression(command, options) - print >>result, str(nsstring) + print(str(nsstring), file=result) nsstring_address = nsstring.GetValueAsUnsigned(0) if nsstring_address == 0: return "unable to obtain the string - cannot proceed" @@ -103,7 +103,7 @@ expression = expression + "*(($__lldb__CFString*) %d)" % nsstring_address # print expression dumped = target.EvaluateExpression(expression, options) - print >>result, str(dumped) + print(str(dumped), file=result) little_endian = (target.byte_order == lldb.eByteOrderLittle) ptr_size = target.addr_size @@ -119,8 +119,8 @@ lldb.eDynamicCanRunTarget).GetTypeName() == "NSPathStore2") has_null = (info_bits & 8) == 8 - print >>result, "\nInfo=%d\nMutable=%s\nInline=%s\nExplicit=%s\nUnicode=%s\nSpecial=%s\nNull=%s\n" % \ - (info_bits, "yes" if is_mutable else "no", "yes" if is_inline else "no", "yes" if has_explicit_length else "no", "yes" if is_unicode else "no", "yes" if is_special else "no", "yes" if has_null else "no") + print("\nInfo=%d\nMutable=%s\nInline=%s\nExplicit=%s\nUnicode=%s\nSpecial=%s\nNull=%s\n" % \ + (info_bits, "yes" if is_mutable else "no", "yes" if is_inline else "no", "yes" if has_explicit_length else "no", "yes" if is_unicode else "no", "yes" if is_special else "no", "yes" if has_null else "no"), file=result) explicit_length_offset = 0 if not has_null and has_explicit_length and not is_special: @@ -135,13 +135,13 @@ explicit_length_offset = 0 if explicit_length_offset == 0: - print >>result, "There is no explicit length marker - skipping this step\n" + print("There is no explicit length marker - skipping this step\n", file=result) else: explicit_length_offset = nsstring_address + explicit_length_offset explicit_length = process.ReadUnsignedFromMemory( explicit_length_offset, 4, error) - print >>result, "Explicit length location is at 0x%x - read value is %d\n" % ( - explicit_length_offset, explicit_length) + print("Explicit length location is at 0x%x - read value is %d\n" % ( + explicit_length_offset, explicit_length), file=result) if is_mutable: location = 2 * ptr_size + nsstring_address @@ -152,7 +152,7 @@ location = 2 * ptr_size + nsstring_address if is_inline: if not has_explicit_length: - print >>result, "Unicode & Inline & !Explicit is a new combo - no formula for it" + print("Unicode & Inline & !Explicit is a new combo - no formula for it", file=result) else: location += ptr_size else: @@ -166,18 +166,18 @@ else: location = 2 * ptr_size + nsstring_address location = process.ReadPointerFromMemory(location, error) - print >>result, "Expected data location: 0x%x\n" % (location) - print >>result, "1K of data around location: %s\n" % read_memory( - process, location, 1024) - print >>result, "5K of data around string pointer: %s\n" % read_memory( - process, nsstring_address, 1024 * 5) + print("Expected data location: 0x%x\n" % (location), file=result) + print("1K of data around location: %s\n" % read_memory( + process, location, 1024), file=result) + print("5K of data around string pointer: %s\n" % read_memory( + process, nsstring_address, 1024 * 5), file=result) def __lldb_init_module(debugger, internal_dict): debugger.HandleCommand( "command script add -f %s.diagnose_nsstring_Command_Impl diagnose-nsstring" % __name__) - print 'The "diagnose-nsstring" command has been installed, type "help diagnose-nsstring" for detailed help.' + print('The "diagnose-nsstring" command has been installed, type "help diagnose-nsstring" for detailed help.') __lldb_init_module(lldb.debugger, None) __lldb_init_module = None diff -ru lldb-8.0.0.src.orig/examples/python/diagnose_unwind.py lldb-8.0.0.src/examples/python/diagnose_unwind.py --- lldb-8.0.0.src.orig/examples/python/diagnose_unwind.py 2019-03-26 17:36:55.200323102 +0000 +++ lldb-8.0.0.src/examples/python/diagnose_unwind.py 2019-03-26 18:04:28.628591134 +0000 @@ -39,7 +39,7 @@ module_description = '%s %s' % ( module_filename, module_uuid_str) except Exception: - print '%2d: pc==0x%-*x fp==0x%-*x' % (frame_num, addr_width, addr_for_printing, addr_width, fp) + print('%2d: pc==0x%-*x fp==0x%-*x' % (frame_num, addr_width, addr_for_printing, addr_width, fp)) return sym_ctx = target.ResolveSymbolContextForAddress( @@ -47,9 +47,9 @@ if sym_ctx.IsValid() and sym_ctx.GetSymbol().IsValid(): function_start = sym_ctx.GetSymbol().GetStartAddress().GetLoadAddress(target) offset = addr - function_start - print '%2d: pc==0x%-*x fp==0x%-*x %s %s + %d' % (frame_num, addr_width, addr_for_printing, addr_width, fp, module_description, sym_ctx.GetSymbol().GetName(), offset) + print('%2d: pc==0x%-*x fp==0x%-*x %s %s + %d' % (frame_num, addr_width, addr_for_printing, addr_width, fp, module_description, sym_ctx.GetSymbol().GetName(), offset)) else: - print '%2d: pc==0x%-*x fp==0x%-*x %s' % (frame_num, addr_width, addr_for_printing, addr_width, fp, module_description) + print('%2d: pc==0x%-*x fp==0x%-*x %s' % (frame_num, addr_width, addr_for_printing, addr_width, fp, module_description)) return sbaddr.GetModule() # A simple stack walk algorithm that follows the frame chain. @@ -78,7 +78,7 @@ this_module = backtrace_print_frame( target, 0, cur_thread.GetFrameAtIndex(0).GetPC(), initial_fp) print_stack_frame(process, initial_fp) - print "" + print("") if this_module is not None: module_list.append(this_module) if cur_thread.GetNumFrames() < 2: @@ -94,7 +94,7 @@ address_list.append(cur_pc) this_module = backtrace_print_frame(target, frame_num, cur_pc, cur_fp) print_stack_frame(process, cur_fp) - print "" + print("") if this_module is not None: module_list.append(this_module) frame_num = frame_num + 1 @@ -119,7 +119,7 @@ cur_fp = next_fp this_module = backtrace_print_frame(target, frame_num, cur_pc, cur_fp) print_stack_frame(process, cur_fp) - print "" + print("") if this_module is not None: module_list.append(this_module) return [module_list, address_list] @@ -139,7 +139,7 @@ addr + (i * addr_size), error) outline += " 0x%x" % address i += 1 - print outline + print(outline) except Exception: return @@ -180,39 +180,39 @@ modules_seen = [] addresses_seen = [] - print 'LLDB version %s' % debugger.GetVersionString() - print 'Unwind diagnostics for thread %d' % thread.GetIndexID() - print "" - print "=============================================================================================" - print "" - print "OS plugin setting:" + print('LLDB version %s' % debugger.GetVersionString()) + print('Unwind diagnostics for thread %d' % thread.GetIndexID()) + print("") + print("=============================================================================================") + print("") + print("OS plugin setting:") debugger.HandleCommand( "settings show target.process.python-os-plugin-path") - print "" - print "Live register context:" + print("") + print("Live register context:") thread.SetSelectedFrame(0) debugger.HandleCommand("register read") - print "" - print "=============================================================================================" - print "" - print "lldb's unwind algorithm:" - print "" + print("") + print("=============================================================================================") + print("") + print("lldb's unwind algorithm:") + print("") frame_num = 0 for frame in thread.frames: if not frame.IsInlined(): this_module = backtrace_print_frame( target, frame_num, frame.GetPC(), frame.GetFP()) print_stack_frame(process, frame.GetFP()) - print "" + print("") if this_module is not None: modules_seen.append(this_module) addresses_seen.append(frame.GetPC()) frame_num = frame_num + 1 - print "" - print "=============================================================================================" - print "" - print "Simple stack walk algorithm:" - print "" + print("") + print("=============================================================================================") + print("") + print("Simple stack walk algorithm:") + print("") (module_list, address_list) = simple_backtrace(debugger) if module_list and module_list is not None: modules_seen += module_list @@ -220,11 +220,11 @@ addresses_seen = set(addresses_seen) addresses_seen.update(set(address_list)) - print "" - print "=============================================================================================" - print "" - print "Modules seen in stack walks:" - print "" + print("") + print("=============================================================================================") + print("") + print("Modules seen in stack walks:") + print("") modules_already_seen = set() for module in modules_seen: if module is not None and module.GetFileSpec().GetFilename() is not None: @@ -235,18 +235,18 @@ modules_already_seen.add( module.GetFileSpec().GetFilename()) - print "" - print "=============================================================================================" - print "" - print "Disassembly ofaddresses seen in stack walks:" - print "" + print("") + print("=============================================================================================") + print("") + print("Disassembly ofaddresses seen in stack walks:") + print("") additional_addresses_to_disassemble = addresses_seen for frame in thread.frames: if not frame.IsInlined(): - print "--------------------------------------------------------------------------------------" - print "" - print "Disassembly of %s, frame %d, address 0x%x" % (frame.GetFunctionName(), frame.GetFrameID(), frame.GetPC()) - print "" + print("--------------------------------------------------------------------------------------") + print("") + print("Disassembly of %s, frame %d, address 0x%x" % (frame.GetFunctionName(), frame.GetFrameID(), frame.GetPC())) + print("") if target.triple[ 0:6] == "x86_64" or target.triple[ 0:4] == "i386": @@ -261,10 +261,10 @@ frame.GetPC()) for address in list(additional_addresses_to_disassemble): - print "--------------------------------------------------------------------------------------" - print "" - print "Disassembly of 0x%x" % address - print "" + print("--------------------------------------------------------------------------------------") + print("") + print("Disassembly of 0x%x" % address) + print("") if target.triple[ 0:6] == "x86_64" or target.triple[ 0:4] == "i386": @@ -273,16 +273,16 @@ else: debugger.HandleCommand('disassemble -a 0x%x' % address) - print "" - print "=============================================================================================" - print "" + print("") + print("=============================================================================================") + print("") additional_addresses_to_show_unwind = addresses_seen for frame in thread.frames: if not frame.IsInlined(): - print "--------------------------------------------------------------------------------------" - print "" - print "Unwind instructions for %s, frame %d" % (frame.GetFunctionName(), frame.GetFrameID()) - print "" + print("--------------------------------------------------------------------------------------") + print("") + print("Unwind instructions for %s, frame %d" % (frame.GetFunctionName(), frame.GetFrameID())) + print("") debugger.HandleCommand( 'image show-unwind -a "0x%x"' % frame.GetPC()) if frame.GetPC() in additional_addresses_to_show_unwind: @@ -290,10 +290,10 @@ frame.GetPC()) for address in list(additional_addresses_to_show_unwind): - print "--------------------------------------------------------------------------------------" - print "" - print "Unwind instructions for 0x%x" % address - print "" + print("--------------------------------------------------------------------------------------") + print("") + print("Unwind instructions for 0x%x" % address) + print("") debugger.HandleCommand( 'image show-unwind -a "0x%x"' % address) @@ -310,4 +310,4 @@ lldb.debugger.HandleCommand( 'command script add -f %s.diagnose_unwind diagnose-unwind' % __name__) -print 'The "diagnose-unwind" command has been installed, type "help diagnose-unwind" for detailed help.' +print('The "diagnose-unwind" command has been installed, type "help diagnose-unwind" for detailed help.') diff -ru lldb-8.0.0.src.orig/examples/python/dict_utils.py lldb-8.0.0.src/examples/python/dict_utils.py --- lldb-8.0.0.src.orig/examples/python/dict_utils.py 2019-03-26 17:36:55.201323116 +0000 +++ lldb-8.0.0.src/examples/python/dict_utils.py 2019-03-26 18:04:36.288700388 +0000 @@ -10,14 +10,14 @@ def get_keys_for_value(self, value, fail_value=None): """find the key(s) as a list given a value""" - list_result = [item[0] for item in self.items() if item[1] == value] + list_result = [item[0] for item in list(self.items()) if item[1] == value] if len(list_result) > 0: return list_result return fail_value def get_first_key_for_value(self, value, fail_value=None): """return the first key of this dictionary given the value""" - list_result = [item[0] for item in self.items() if item[1] == value] + list_result = [item[0] for item in list(self.items()) if item[1] == value] if len(list_result) > 0: return list_result[0] return fail_value diff -ru lldb-8.0.0.src.orig/examples/python/disasm-stress-test.py lldb-8.0.0.src/examples/python/disasm-stress-test.py --- lldb-8.0.0.src.orig/examples/python/disasm-stress-test.py 2019-03-26 17:36:55.201323116 +0000 +++ lldb-8.0.0.src/examples/python/disasm-stress-test.py 2019-03-26 18:04:28.285586241 +0000 @@ -71,7 +71,7 @@ lldb_framework_path = GetLLDBFrameworkPath() if lldb_framework_path is None: - print "Couldn't find LLDB.framework" + print("Couldn't find LLDB.framework") sys.exit(-1) sys.path.append(lldb_framework_path + "/Resources/Python") @@ -86,13 +86,13 @@ debugger = lldb.SBDebugger.Create() if debugger.IsValid() == False: - print "Couldn't create an SBDebugger" + print("Couldn't create an SBDebugger") sys.exit(-1) target = debugger.CreateTargetWithFileAndArch(None, arg_ns.arch) if target.IsValid() == False: - print "Couldn't create an SBTarget for architecture " + arg_ns.arch + print("Couldn't create an SBTarget for architecture " + arg_ns.arch) sys.exit(-1) @@ -103,8 +103,8 @@ def PrintByteArray(log_file, byte_array): for byte in byte_array: - print >>log_file, hex(byte) + " ", - print >>log_file + print(hex(byte) + " ", end=' ', file=log_file) + print(file=log_file) class SequentialInstructionProvider: @@ -119,7 +119,7 @@ def PrintCurrentState(self, ret): ResetLogFile(self.m_log_file) - print >>self.m_log_file, self.m_value + print(self.m_value, file=self.m_log_file) PrintByteArray(self.m_log_file, ret) def GetNextInstruction(self): @@ -138,7 +138,7 @@ def __iter__(self): return self - def next(self): + def __next__(self): ret = self.GetNextInstruction() if ret is None: raise StopIteration @@ -166,7 +166,7 @@ def __iter__(self): return self - def next(self): + def __next__(self): ret = self.GetNextInstruction() if ret is None: raise StopIteration @@ -215,16 +215,16 @@ remaining_time = float( total_num_instructions - num_instructions_logged) * ( float(elapsed_time) / float(num_instructions_logged)) - print str(datetime.timedelta(seconds=remaining_time)) + print(str(datetime.timedelta(seconds=remaining_time))) num_instructions_logged = num_instructions_logged + 1 inst_list = target.GetInstructions(fake_address, inst_bytes) if not inst_list.IsValid(): - print >>log_file, "Invalid instruction list" + print("Invalid instruction list", file=log_file) continue inst = inst_list.GetInstructionAtIndex(0) if not inst.IsValid(): - print >>log_file, "Invalid instruction" + print("Invalid instruction", file=log_file) continue instr_output_stream = lldb.SBStream() inst.GetDescription(instr_output_stream) - print >>log_file, instr_output_stream.GetData() + print(instr_output_stream.GetData(), file=log_file) diff -ru lldb-8.0.0.src.orig/examples/python/disasm.py lldb-8.0.0.src/examples/python/disasm.py --- lldb-8.0.0.src.orig/examples/python/disasm.py 2019-03-26 17:36:55.201323116 +0000 +++ lldb-8.0.0.src/examples/python/disasm.py 2019-03-26 18:04:36.008696394 +0000 @@ -15,12 +15,12 @@ def disassemble_instructions(insts): for i in insts: - print i + print(i) def usage(): - print "Usage: disasm.py [-n name] executable-image" - print " By default, it breaks at and disassembles the 'main' function." + print("Usage: disasm.py [-n name] executable-image") + print(" By default, it breaks at and disassembles the 'main' function.") sys.exit(0) if len(sys.argv) == 2: @@ -43,7 +43,7 @@ debugger.SetAsync(False) # Create a target from a file and arch -print "Creating a target for '%s'" % exe +print("Creating a target for '%s'" % exe) target = debugger.CreateTargetWithFileAndArch(exe, lldb.LLDB_ARCH_DEFAULT) @@ -52,7 +52,7 @@ main_bp = target.BreakpointCreateByName( fname, target.GetExecutable().GetFilename()) - print main_bp + print(main_bp) # Launch the process. Since we specified synchronous mode, we won't return # from this function until we hit the breakpoint at main @@ -62,24 +62,24 @@ if process: # Print some simple process info state = process.GetState() - print process + print(process) if state == lldb.eStateStopped: # Get the first thread thread = process.GetThreadAtIndex(0) if thread: # Print some simple thread info - print thread + print(thread) # Get the first frame frame = thread.GetFrameAtIndex(0) if frame: # Print some simple frame info - print frame + print(frame) function = frame.GetFunction() # See if we have debug info (a function) if function: # We do have a function, print some info for the # function - print function + print(function) # Now get all instructions for this function and print # them insts = function.GetInstructions(target) @@ -91,35 +91,35 @@ if symbol: # We do have a symbol, print some info for the # symbol - print symbol + print(symbol) # Now get all instructions for this symbol and # print them insts = symbol.GetInstructions(target) disassemble_instructions(insts) registerList = frame.GetRegisters() - print "Frame registers (size of register set = %d):" % registerList.GetSize() + print("Frame registers (size of register set = %d):" % registerList.GetSize()) for value in registerList: # print value - print "%s (number of children = %d):" % (value.GetName(), value.GetNumChildren()) + print("%s (number of children = %d):" % (value.GetName(), value.GetNumChildren())) for child in value: - print "Name: ", child.GetName(), " Value: ", child.GetValue() + print("Name: ", child.GetName(), " Value: ", child.GetValue()) - print "Hit the breakpoint at main, enter to continue and wait for program to exit or 'Ctrl-D'/'quit' to terminate the program" + print("Hit the breakpoint at main, enter to continue and wait for program to exit or 'Ctrl-D'/'quit' to terminate the program") next = sys.stdin.readline() if not next or next.rstrip('\n') == 'quit': - print "Terminating the inferior process..." + print("Terminating the inferior process...") process.Kill() else: # Now continue to the program exit process.Continue() # When we return from the above function we will hopefully be at the # program exit. Print out some process info - print process + print(process) elif state == lldb.eStateExited: - print "Didn't hit the breakpoint at main, program has exited..." + print("Didn't hit the breakpoint at main, program has exited...") else: - print "Unexpected process state: %s, killing process..." % debugger.StateAsCString(state) + print("Unexpected process state: %s, killing process..." % debugger.StateAsCString(state)) process.Kill() diff -ru lldb-8.0.0.src.orig/examples/python/file_extract.py lldb-8.0.0.src/examples/python/file_extract.py --- lldb-8.0.0.src.orig/examples/python/file_extract.py 2019-03-26 17:36:55.201323116 +0000 +++ lldb-8.0.0.src/examples/python/file_extract.py 2019-03-26 18:04:26.709563763 +0000 @@ -29,7 +29,7 @@ elif b == '<' or b == '>' or b == '@' or b == '=': self.byte_order = b else: - print "error: invalid byte order specified: '%s'" % b + print("error: invalid byte order specified: '%s'" % b) def is_in_memory(self): return False diff -ru lldb-8.0.0.src.orig/examples/python/gdb_disassemble.py lldb-8.0.0.src/examples/python/gdb_disassemble.py --- lldb-8.0.0.src.orig/examples/python/gdb_disassemble.py 2019-03-26 17:36:55.201323116 +0000 +++ lldb-8.0.0.src/examples/python/gdb_disassemble.py 2019-03-26 18:04:29.914609476 +0000 @@ -16,11 +16,11 @@ inst_offset = inst_addr - start_addr comment = inst.comment if comment: - print "<%s + %-4u> 0x%x %8s %s ; %s" % (name, inst_offset, inst_addr, inst.mnemonic, inst.operands, comment) + print("<%s + %-4u> 0x%x %8s %s ; %s" % (name, inst_offset, inst_addr, inst.mnemonic, inst.operands, comment)) else: - print "<%s + %-4u> 0x%x %8s %s" % (name, inst_offset, inst_addr, inst.mnemonic, inst.operands) + print("<%s + %-4u> 0x%x %8s %s" % (name, inst_offset, inst_addr, inst.mnemonic, inst.operands)) # Install the command when the module gets imported lldb.debugger.HandleCommand( 'command script add -f gdb_disassemble.disassemble gdb-disassemble') -print 'Installed "gdb-disassemble" command for disassembly' +print('Installed "gdb-disassemble" command for disassembly') diff -ru lldb-8.0.0.src.orig/examples/python/gdbremote.py lldb-8.0.0.src/examples/python/gdbremote.py --- lldb-8.0.0.src.orig/examples/python/gdbremote.py 2019-03-26 17:36:55.200323102 +0000 +++ lldb-8.0.0.src/examples/python/gdbremote.py 2019-03-26 18:04:35.693691902 +0000 @@ -17,7 +17,7 @@ #---------------------------------------------------------------------- import binascii -import commands +import subprocess import json import math import optparse @@ -299,7 +299,7 @@ options.symbolicator = lldb.utils.symbolication.Symbolicator() options.symbolicator.target = lldb.target else: - print "error: can't symbolicate without a target" + print("error: can't symbolicate without a target") if not g_log_file: result.PutCString( @@ -314,7 +314,7 @@ else: result.PutCString(usage) else: - print 'error: the GDB packet log file "%s" does not exist' % g_log_file + print('error: the GDB packet log file "%s" does not exist' % g_log_file) def is_hex_byte(str): @@ -392,7 +392,7 @@ def __str__(self): '''Dump the register info key/value pairs''' s = '' - for key in self.info.keys(): + for key in list(self.info.keys()): if s: s += ', ' s += "%s=%s " % (key, self.info[key]) @@ -584,11 +584,11 @@ def cmd_qThreadStopInfo(options, cmd, args): packet = Packet(args) tid = packet.get_hex_uint('big') - print "get_thread_stop_info (tid = 0x%x)" % (tid) + print("get_thread_stop_info (tid = 0x%x)" % (tid)) def cmd_stop_reply(options, cmd, args): - print "get_last_stop_info()" + print("get_last_stop_info()") return False @@ -611,69 +611,69 @@ elif key == 'jthreads' or key == 'jstopinfo': key_value_pair[1] = binascii.unhexlify(key_value_pair[1]) key_value_pairs.insert(0, ['signal', signo]) - print 'stop_reply():' + print('stop_reply():') dump_key_value_pairs(key_value_pairs) elif stop_type == 'W': exit_status = packet.get_hex_uint8() - print 'stop_reply(): exit (status=%i)' % exit_status + print('stop_reply(): exit (status=%i)' % exit_status) elif stop_type == 'O': - print 'stop_reply(): stdout = "%s"' % packet.str + print('stop_reply(): stdout = "%s"' % packet.str) def cmd_unknown_packet(options, cmd, args): if args: - print "cmd: %s, args: %s", cmd, args + print("cmd: %s, args: %s", cmd, args) else: - print "cmd: %s", cmd + print("cmd: %s", cmd) return False def cmd_qSymbol(options, cmd, args): if args == ':': - print 'ready to serve symbols' + print('ready to serve symbols') else: packet = Packet(args) symbol_addr = packet.get_hex_uint('big') if symbol_addr is None: if packet.skip_exact_string(':'): symbol_name = packet.get_hex_ascii_str() - print 'lookup_symbol("%s") -> symbol not available yet' % (symbol_name) + print('lookup_symbol("%s") -> symbol not available yet' % (symbol_name)) else: - print 'error: bad command format' + print('error: bad command format') else: if packet.skip_exact_string(':'): symbol_name = packet.get_hex_ascii_str() - print 'lookup_symbol("%s") -> 0x%x' % (symbol_name, symbol_addr) + print('lookup_symbol("%s") -> 0x%x' % (symbol_name, symbol_addr)) else: - print 'error: bad command format' + print('error: bad command format') def cmd_QSetWithHexString(options, cmd, args): - print '%s("%s")' % (cmd[:-1], binascii.unhexlify(args)) + print('%s("%s")' % (cmd[:-1], binascii.unhexlify(args))) def cmd_QSetWithString(options, cmd, args): - print '%s("%s")' % (cmd[:-1], args) + print('%s("%s")' % (cmd[:-1], args)) def cmd_QSetWithUnsigned(options, cmd, args): - print '%s(%i)' % (cmd[:-1], int(args)) + print('%s(%i)' % (cmd[:-1], int(args))) def rsp_qSymbol(options, cmd, cmd_args, rsp): if len(rsp) == 0: - print "Unsupported" + print("Unsupported") else: if rsp == "OK": - print "No more symbols to lookup" + print("No more symbols to lookup") else: packet = Packet(rsp) if packet.skip_exact_string("qSymbol:"): symbol_name = packet.get_hex_ascii_str() - print 'lookup_symbol("%s")' % (symbol_name) + print('lookup_symbol("%s")' % (symbol_name)) else: - print 'error: response string should start with "qSymbol:": respnse is "%s"' % (rsp) + print('error: response string should start with "qSymbol:": respnse is "%s"' % (rsp)) def cmd_qXfer(options, cmd, args): # $qXfer:features:read:target.xml:0,1ffff#14 - print "read target special data %s" % (args) + print("read target special data %s" % (args)) return True @@ -710,12 +710,12 @@ reg_info.info[ 'bitsize'] = reg_element.attrib['bitsize'] g_register_infos.append(reg_info) - print 'XML for "%s":' % (data[2]) + print('XML for "%s":' % (data[2])) ET.dump(xml_root) def cmd_A(options, cmd, args): - print 'launch process:' + print('launch process:') packet = Packet(args) while True: arg_len = packet.get_number() @@ -729,50 +729,50 @@ if not packet.skip_exact_string(','): break arg_value = packet.get_hex_ascii_str(arg_len) - print 'argv[%u] = "%s"' % (arg_idx, arg_value) + print('argv[%u] = "%s"' % (arg_idx, arg_value)) def cmd_qC(options, cmd, args): - print "query_current_thread_id()" + print("query_current_thread_id()") def rsp_qC(options, cmd, cmd_args, rsp): packet = Packet(rsp) if packet.skip_exact_string("QC"): tid = packet.get_thread_id() - print "current_thread_id = %#x" % (tid) + print("current_thread_id = %#x" % (tid)) else: - print "current_thread_id = old thread ID" + print("current_thread_id = old thread ID") def cmd_query_packet(options, cmd, args): if args: - print "%s%s" % (cmd, args) + print("%s%s" % (cmd, args)) else: - print "%s" % (cmd) + print("%s" % (cmd)) return False def rsp_ok_error(rsp): - print "rsp: ", rsp + print("rsp: ", rsp) def rsp_ok_means_supported(options, cmd, cmd_args, rsp): if rsp == 'OK': - print "%s%s is supported" % (cmd, cmd_args) + print("%s%s is supported" % (cmd, cmd_args)) elif rsp == '': - print "%s%s is not supported" % (cmd, cmd_args) + print("%s%s is not supported" % (cmd, cmd_args)) else: - print "%s%s -> %s" % (cmd, cmd_args, rsp) + print("%s%s -> %s" % (cmd, cmd_args, rsp)) def rsp_ok_means_success(options, cmd, cmd_args, rsp): if rsp == 'OK': - print "success" + print("success") elif rsp == '': - print "%s%s is not supported" % (cmd, cmd_args) + print("%s%s is not supported" % (cmd, cmd_args)) else: - print "%s%s -> %s" % (cmd, cmd_args, rsp) + print("%s%s -> %s" % (cmd, cmd_args, rsp)) def dump_key_value_pairs(key_value_pairs): @@ -786,42 +786,42 @@ value = key_value_pair[1] unhex_value = get_hex_string_if_all_printable(value) if unhex_value: - print "%*s = %s (%s)" % (max_key_len, key, value, unhex_value) + print("%*s = %s (%s)" % (max_key_len, key, value, unhex_value)) else: - print "%*s = %s" % (max_key_len, key, value) + print("%*s = %s" % (max_key_len, key, value)) def rsp_dump_key_value_pairs(options, cmd, cmd_args, rsp): if rsp: - print '%s response:' % (cmd) + print('%s response:' % (cmd)) packet = Packet(rsp) key_value_pairs = packet.get_key_value_pairs() dump_key_value_pairs(key_value_pairs) else: - print "not supported" + print("not supported") def cmd_c(options, cmd, args): - print "continue()" + print("continue()") return False def cmd_s(options, cmd, args): - print "step()" + print("step()") return False def cmd_qSpeedTest(options, cmd, args): - print("qSpeedTest: cmd='%s', args='%s'" % (cmd, args)) + print(("qSpeedTest: cmd='%s', args='%s'" % (cmd, args))) def rsp_qSpeedTest(options, cmd, cmd_args, rsp): - print("qSpeedTest: rsp='%s' cmd='%s', args='%s'" % (rsp, cmd, args)) + print(("qSpeedTest: rsp='%s' cmd='%s', args='%s'" % (rsp, cmd, args))) def cmd_vCont(options, cmd, args): if args == '?': - print "%s: get supported extended continue modes" % (cmd) + print("%s: get supported extended continue modes" % (cmd)) else: got_other_threads = 0 s = '' @@ -846,9 +846,9 @@ else: s += 'thread 0x%4.4x: %s' % (tid, action) if got_other_threads: - print "extended_continue (%s)" % (s) + print("extended_continue (%s)" % (s)) else: - print "extended_continue (%s, other-threads: suspend)" % (s) + print("extended_continue (%s, other-threads: suspend)" % (s)) return False @@ -874,47 +874,47 @@ s += 'stop' # else: # s += 'unrecognized vCont mode: ', str(mode) - print s + print(s) elif rsp: if rsp[0] == 'T' or rsp[0] == 'S' or rsp[0] == 'W' or rsp[0] == 'X': rsp_stop_reply(options, cmd, cmd_args, rsp) return if rsp[0] == 'O': - print "stdout: %s" % (rsp) + print("stdout: %s" % (rsp)) return else: - print "not supported (cmd = '%s', args = '%s', rsp = '%s')" % (cmd, cmd_args, rsp) + print("not supported (cmd = '%s', args = '%s', rsp = '%s')" % (cmd, cmd_args, rsp)) def cmd_vAttach(options, cmd, args): (extra_command, args) = string.split(args, ';') if extra_command: - print "%s%s(%s)" % (cmd, extra_command, args) + print("%s%s(%s)" % (cmd, extra_command, args)) else: - print "attach(pid = %u)" % int(args, 16) + print("attach(pid = %u)" % int(args, 16)) return False def cmd_qRegisterInfo(options, cmd, args): - print 'query_register_info(reg_num=%i)' % (int(args, 16)) + print('query_register_info(reg_num=%i)' % (int(args, 16))) return False def rsp_qRegisterInfo(options, cmd, cmd_args, rsp): global g_max_register_info_name_len - print 'query_register_info(reg_num=%i):' % (int(cmd_args, 16)), + print('query_register_info(reg_num=%i):' % (int(cmd_args, 16)), end=' ') if len(rsp) == 3 and rsp[0] == 'E': g_max_register_info_name_len = 0 for reg_info in g_register_infos: name_len = len(reg_info.name()) if g_max_register_info_name_len < name_len: g_max_register_info_name_len = name_len - print' DONE' + print(' DONE') else: packet = Packet(rsp) reg_info = RegisterInfo(packet.get_key_value_pairs()) g_register_infos.append(reg_info) - print reg_info + print(reg_info) return False @@ -923,7 +923,7 @@ query_type = 'first' else: query_type = 'subsequent' - print 'get_current_thread_list(type=%s)' % (query_type) + print('get_current_thread_list(type=%s)' % (query_type)) return False @@ -934,20 +934,20 @@ tids = packet.split_hex(';', 'big') for i, tid in enumerate(tids): if i: - print ',', - print '0x%x' % (tid), - print + print(',', end=' ') + print('0x%x' % (tid), end=' ') + print() elif response_type == 'l': - print 'END' + print('END') def rsp_hex_big_endian(options, cmd, cmd_args, rsp): if rsp == '': - print "%s%s is not supported" % (cmd, cmd_args) + print("%s%s is not supported" % (cmd, cmd_args)) else: packet = Packet(rsp) uval = packet.get_hex_uint('big') - print '%s: 0x%x' % (cmd, uval) + print('%s: 0x%x' % (cmd, uval)) def cmd_read_mem_bin(options, cmd, args): @@ -956,7 +956,7 @@ addr = packet.get_hex_uint('big') comma = packet.get_char() size = packet.get_hex_uint('big') - print 'binary_read_memory (addr = 0x%16.16x, size = %u)' % (addr, size) + print('binary_read_memory (addr = 0x%16.16x, size = %u)' % (addr, size)) return False @@ -965,7 +965,7 @@ addr = packet.get_hex_uint('big') comma = packet.get_char() size = packet.get_hex_uint('big') - print 'memory:' + print('memory:') if size > 0: dump_hex_memory_buffer(addr, rsp) @@ -975,7 +975,7 @@ addr = packet.get_hex_uint('big') comma = packet.get_char() size = packet.get_hex_uint('big') - print 'read_memory (addr = 0x%16.16x, size = %u)' % (addr, size) + print('read_memory (addr = 0x%16.16x, size = %u)' % (addr, size)) return False @@ -987,10 +987,10 @@ while uval is not None: if ((idx % 16) == 0): if ascii: - print ' ', ascii + print(' ', ascii) ascii = '' - print '0x%x:' % (addr + idx), - print '%2.2x' % (uval), + print('0x%x:' % (addr + idx), end=' ') + print('%2.2x' % (uval), end=' ') if 0x20 <= uval and uval < 0x7f: ascii += '%c' % uval else: @@ -998,7 +998,7 @@ uval = packet.get_hex_uint8() idx = idx + 1 if ascii: - print ' ', ascii + print(' ', ascii) ascii = '' @@ -1006,13 +1006,13 @@ packet = Packet(args) addr = packet.get_hex_uint('big') if packet.get_char() != ',': - print 'error: invalid write memory command (missing comma after address)' + print('error: invalid write memory command (missing comma after address)') return size = packet.get_hex_uint('big') if packet.get_char() != ':': - print 'error: invalid write memory command (missing colon after size)' + print('error: invalid write memory command (missing colon after size)') return - print 'write_memory (addr = 0x%16.16x, size = %u, data:' % (addr, size) + print('write_memory (addr = 0x%16.16x, size = %u, data:' % (addr, size)) dump_hex_memory_buffer(addr, packet.str) return False @@ -1021,25 +1021,25 @@ packet = Packet(args) byte_size = packet.get_hex_uint('big') if packet.get_char() != ',': - print 'error: invalid allocate memory command (missing comma after address)' + print('error: invalid allocate memory command (missing comma after address)') return - print 'allocate_memory (byte-size = %u (0x%x), permissions = %s)' % (byte_size, byte_size, packet.str) + print('allocate_memory (byte-size = %u (0x%x), permissions = %s)' % (byte_size, byte_size, packet.str)) return False def rsp_alloc_memory(options, cmd, cmd_args, rsp): packet = Packet(rsp) addr = packet.get_hex_uint('big') - print 'addr = 0x%x' % addr + print('addr = 0x%x' % addr) def cmd_dealloc_memory(options, cmd, args): packet = Packet(args) addr = packet.get_hex_uint('big') if packet.get_char() != ',': - print 'error: invalid allocate memory command (missing comma after address)' + print('error: invalid allocate memory command (missing comma after address)') else: - print 'deallocate_memory (addr = 0x%x, permissions = %s)' % (addr, packet.str) + print('deallocate_memory (addr = 0x%x, permissions = %s)' % (addr, packet.str)) return False @@ -1085,21 +1085,21 @@ if tid is not None: s += ', tid = 0x%4.4x' % (tid) s += ')' - print s + print(s) return False def rsp_read_one_reg(options, cmd, cmd_args, rsp): packet = Packet(cmd_args) reg_num = packet.get_hex_uint('big') - print get_register_name_equal_value(options, reg_num, rsp) + print(get_register_name_equal_value(options, reg_num, rsp)) def cmd_write_one_reg(options, cmd, args): packet = Packet(args) reg_num = packet.get_hex_uint('big') if packet.get_char() != '=': - print 'error: invalid register write packet' + print('error: invalid register write packet') else: name = None hex_value_str = packet.get_hex_chars() @@ -1112,7 +1112,7 @@ if tid is not None: s += ', tid = 0x%4.4x' % (tid) s += ')' - print s + print(s) return False @@ -1122,7 +1122,7 @@ hex_value_str = packet.get_hex_chars(nibble_size) if hex_value_str is not None: value = reg_info.get_value_from_hex_string(hex_value_str) - print '%*s = %s' % (g_max_register_info_name_len, reg_info.name(), value) + print('%*s = %s' % (g_max_register_info_name_len, reg_info.name(), value)) else: return @@ -1132,9 +1132,9 @@ packet.get_char() # toss the 'g' command character tid = get_thread_from_thread_suffix(packet.str) if tid is not None: - print 'read_all_register(thread = 0x%4.4x)' % tid + print('read_all_register(thread = 0x%4.4x)' % tid) else: - print 'read_all_register()' + print('read_all_register()') return False @@ -1145,7 +1145,7 @@ def cmd_write_all_regs(options, cmd, args): packet = Packet(args) - print 'write_all_registers()' + print('write_all_registers()') dump_all_regs(packet) return False @@ -1165,7 +1165,7 @@ bp_size = packet.get_hex_uint('big') s += g_bp_types[bp_type] s += " (addr = 0x%x, size = %u)" % (bp_addr, bp_size) - print s + print(s) return False @@ -1173,22 +1173,22 @@ packet = Packet(args) packet.get_char() # skip ':' character addr = packet.get_hex_uint('big') - print 'get_memory_region_info (addr=0x%x)' % (addr) + print('get_memory_region_info (addr=0x%x)' % (addr)) return False def cmd_kill(options, cmd, args): - print 'kill_process()' + print('kill_process()') return False def cmd_jThreadsInfo(options, cmd, args): - print 'jThreadsInfo()' + print('jThreadsInfo()') return False def cmd_jGetLoadedDynamicLibrariesInfos(options, cmd, args): - print 'jGetLoadedDynamicLibrariesInfos()' + print('jGetLoadedDynamicLibrariesInfos()') return False @@ -1210,9 +1210,9 @@ def rsp_json(options, cmd, cmd_args, rsp): - print '%s() reply:' % (cmd) + print('%s() reply:' % (cmd)) json_tree = json.loads(rsp) - print json.dumps(json_tree, indent=4, separators=(',', ': ')) + print(json.dumps(json_tree, indent=4, separators=(',', ': '))) def rsp_jGetLoadedDynamicLibrariesInfos(options, cmd, cmd_args, rsp): @@ -1356,7 +1356,7 @@ packet_contents_name_regex = re.compile('\$([^#]*)#[0-9a-fA-F]{2}') packet_checksum_regex = re.compile('.*#[0-9a-fA-F]{2}$') packet_names_regex_str = '(' + \ - '|'.join(gdb_remote_commands.keys()) + ')(.*)' + '|'.join(list(gdb_remote_commands.keys())) + ')(.*)' packet_names_regex = re.compile(packet_names_regex_str) base_time = 0.0 @@ -1387,26 +1387,26 @@ packet = m.group('packet') sys.stdout.write(options.colors.green()) if not options.quiet and not hide_next_response: - print '# ', line + print('# ', line) sys.stdout.write(options.colors.reset()) # print 'direction = "%s", packet = "%s"' % (direction, packet) if packet[0] == '+': if is_command: - print '-->', + print('-->', end=' ') else: - print '<--', + print('<--', end=' ') if not options.quiet: - print 'ACK' + print('ACK') continue elif packet[0] == '-': if is_command: - print '-->', + print('-->', end=' ') else: - print '<--', + print('<--', end=' ') if not options.quiet: - print 'NACK' + print('NACK') continue elif packet[0] == '$': m = packet_contents_name_regex.match(packet) @@ -1415,7 +1415,7 @@ idx = line_index + 1 while idx < num_lines: if not options.quiet and not hide_next_response: - print '# ', lines[idx] + print('# ', lines[idx]) multiline_packet += lines[idx] m = packet_contents_name_regex.match(multiline_packet) if m: @@ -1426,9 +1426,9 @@ idx += 1 if m: if is_command: - print '-->', + print('-->', end=' ') else: - print '<--', + print('<--', end=' ') contents = decode_packet(m.group(1)) if is_command: hide_next_response = False @@ -1458,11 +1458,11 @@ gdb_remote_commands[last_command]['rsp']( options, last_command, last_command_args, contents) else: - print 'error: invalid packet: "', packet, '"' + print('error: invalid packet: "', packet, '"') else: - print '???' + print('???') else: - print '## ', line + print('## ', line) match = timestamp_regex.match(line) if match: curr_time = float(match.group(2)) @@ -1491,35 +1491,35 @@ min_time = delta if not options or not options.quiet: - print '%s%.6f %+.6f%s' % (match.group(1), + print('%s%.6f %+.6f%s' % (match.group(1), curr_time - base_time, delta, - match.group(3)) + match.group(3))) last_time = curr_time # else: # print line (average, std_dev) = calculate_mean_and_standard_deviation(all_packet_times) if average and std_dev: - print '%u packets with average packet time of %f and standard deviation of %f' % (len(all_packet_times), average, std_dev) + print('%u packets with average packet time of %f and standard deviation of %f' % (len(all_packet_times), average, std_dev)) if packet_total_times: total_packet_time = 0.0 total_packet_count = 0 - for key, vvv in packet_total_times.items(): + for key, vvv in list(packet_total_times.items()): # print ' key = (%s) "%s"' % (type(key), key) # print 'value = (%s) %s' % (type(vvv), vvv) # if type(vvv) == 'float': total_packet_time += vvv - for key, vvv in packet_counts.items(): + for key, vvv in list(packet_counts.items()): total_packet_count += vvv - print '#------------------------------------------------------------' - print '# Packet timing summary:' - print '# Totals: time = %6f, count = %6d' % (total_packet_time, - total_packet_count) - print '# Min packet time: time = %6f' % (min_time) - print '#------------------------------------------------------------' - print '# Packet Time (sec) Percent Count Latency' - print '#------------------------- ----------- ------- ------ -------' + print('#------------------------------------------------------------') + print('# Packet timing summary:') + print('# Totals: time = %6f, count = %6d' % (total_packet_time, + total_packet_count)) + print('# Min packet time: time = %6f' % (min_time)) + print('#------------------------------------------------------------') + print('# Packet Time (sec) Percent Count Latency') + print('#------------------------- ----------- ------- ------ -------') if options and options.sort_count: res = sorted( packet_counts, @@ -1537,9 +1537,9 @@ packet_percent = ( packet_total_time / total_packet_time) * 100.0 packet_count = packet_counts[item] - print " %24s %11.6f %5.2f%% %6d %9.6f" % ( + print(" %24s %11.6f %5.2f%% %6d %9.6f" % ( item, packet_total_time, packet_percent, packet_count, - float(packet_total_time) / float(packet_count)) + float(packet_total_time) / float(packet_count))) if options.plot: plot_latencies(packet_times) @@ -1593,7 +1593,7 @@ try: (options, args) = parser.parse_args(sys.argv[1:]) except: - print 'error: argument error' + print('error: argument error') sys.exit(1) options.colors = TerminalColors(options.color) @@ -1603,18 +1603,18 @@ lldb.debugger = lldb.SBDebugger.Create() import lldb.macosx.crashlog options.symbolicator = lldb.macosx.crashlog.CrashLog(options.crashlog) - print '%s' % (options.symbolicator) + print('%s' % (options.symbolicator)) # This script is being run from the command line, create a debugger in case we are # going to use any debugger functions in our function. if len(args): for file in args: - print '#----------------------------------------------------------------------' - print "# GDB remote log file: '%s'" % file - print '#----------------------------------------------------------------------' + print('#----------------------------------------------------------------------') + print("# GDB remote log file: '%s'" % file) + print('#----------------------------------------------------------------------') parse_gdb_log_file(file, options) if options.symbolicator: - print '%s' % (options.symbolicator) + print('%s' % (options.symbolicator)) else: parse_gdb_log(sys.stdin, options) @@ -1627,4 +1627,4 @@ 'command script add -f gdbremote.start_gdb_log start_gdb_log') lldb.debugger.HandleCommand( 'command script add -f gdbremote.stop_gdb_log stop_gdb_log') - print 'The "start_gdb_log" and "stop_gdb_log" commands are now installed and ready for use, type "start_gdb_log --help" or "stop_gdb_log --help" for more information' + print('The "start_gdb_log" and "stop_gdb_log" commands are now installed and ready for use, type "start_gdb_log --help" or "stop_gdb_log --help" for more information') diff -ru lldb-8.0.0.src.orig/examples/python/globals.py lldb-8.0.0.src/examples/python/globals.py --- lldb-8.0.0.src.orig/examples/python/globals.py 2019-03-26 17:36:55.201323116 +0000 +++ lldb-8.0.0.src/examples/python/globals.py 2019-03-26 18:04:37.948724065 +0000 @@ -9,7 +9,7 @@ #---------------------------------------------------------------------- import lldb -import commands +import subprocess import optparse import os import shlex @@ -46,22 +46,22 @@ # Print results for anything that matched for global_variable in global_variable_list: # returns the global variable name as a string - print 'name = %s' % global_variable.name + 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('value = %s' % global_variable.value) + print('type = %s' % global_variable.type) # Returns an lldb.SBType object # Returns an lldb.SBAddress (section offset # address) for this global - print 'addr = %s' % global_variable.addr + print('addr = %s' % global_variable.addr) # Returns the file virtual address for this # global - print 'file_addr = 0x%x' % global_variable.addr.file_addr + print('file_addr = 0x%x' % global_variable.addr.file_addr) # returns the global variable value as a string - print 'location = %s' % global_variable.location + print('location = %s' % global_variable.location) # Returns the size in bytes of this global # variable - print 'size = %s' % global_variable.size - print + print('size = %s' % global_variable.size) + print() def globals(command_args): diff -ru lldb-8.0.0.src.orig/examples/python/jump.py lldb-8.0.0.src/examples/python/jump.py --- lldb-8.0.0.src.orig/examples/python/jump.py 2019-03-26 17:36:55.200323102 +0000 +++ lldb-8.0.0.src/examples/python/jump.py 2019-03-26 18:04:33.531661065 +0000 @@ -78,7 +78,7 @@ if (mo is not None): matched = True # print "Matched " - address = long(mo.group(1), base=0) + address = int(mo.group(1), base=0) breakpoint = target.BreakpointCreateByAddress(address) if (not matched): @@ -193,4 +193,4 @@ # Module is being run inside the LLDB interpreter jump.__doc__ = usage_string() lldb.debugger.HandleCommand('command script add -f jump.jump jump') - print 'The "jump" command has been installed, type "help jump" or "jump " for detailed help.' + print('The "jump" command has been installed, type "help jump" or "jump " for detailed help.') diff -ru lldb-8.0.0.src.orig/examples/python/lldb_module_utils.py lldb-8.0.0.src/examples/python/lldb_module_utils.py --- lldb-8.0.0.src.orig/examples/python/lldb_module_utils.py 2019-03-26 17:36:55.201323116 +0000 +++ lldb-8.0.0.src/examples/python/lldb_module_utils.py 2019-03-26 18:04:27.583576229 +0000 @@ -61,14 +61,14 @@ result.SetError('no module found that matches "%s".' % (module_path)) return num_cus = module.GetNumCompileUnits() - print >>result, 'Module: "%s"' % (module.file.fullpath), + print('Module: "%s"' % (module.file.fullpath), end=' ', file=result) if num_cus == 0: - print >>result, 'no debug info.' + print('no debug info.', file=result) continue - print >>result, 'has %u compile units:' % (num_cus) + print('has %u compile units:' % (num_cus), file=result) for cu_idx in range(num_cus): cu = module.GetCompileUnitAtIndex(cu_idx) - print >>result, ' Compile Unit: %s' % (cu.file.fullpath) + print(' Compile Unit: %s' % (cu.file.fullpath), file=result) for line_idx in range(cu.GetNumLineEntries()): line_entry = cu.GetLineEntryAtIndex(line_idx) start_file_addr = line_entry.addr.file_addr @@ -163,19 +163,19 @@ result.SetError('no module found that matches "%s".' % (module_path)) return num_cus = module.GetNumCompileUnits() - print >>result, 'Module: "%s"' % (module.file.fullpath), + print('Module: "%s"' % (module.file.fullpath), end=' ', file=result) if num_cus == 0: - print >>result, 'no debug info.' + print('no debug info.', file=result) continue - print >>result, 'has %u compile units:' % (num_cus) + print('has %u compile units:' % (num_cus), file=result) for i in range(num_cus): cu = module.GetCompileUnitAtIndex(i) - print >>result, ' Compile Unit: %s' % (cu.file.fullpath) + print(' Compile Unit: %s' % (cu.file.fullpath), file=result) if options.support_files: num_support_files = cu.GetNumSupportFiles() for j in range(num_support_files): path = cu.GetSupportFileAtIndex(j).fullpath - print >>result, ' file[%u]: %s' % (j, path) + print(' file[%u]: %s' % (j, path), file=result) def __lldb_init_module(debugger, dict): @@ -187,5 +187,5 @@ DumpLineTables.command_name)) debugger.HandleCommand( 'command script add -c %s.DumpFiles %s' % (__name__, DumpFiles.command_name)) - print 'The "%s" and "%s" commands have been installed.' % (DumpLineTables.command_name, - DumpFiles.command_name) + print('The "%s" and "%s" commands have been installed.' % (DumpLineTables.command_name, + DumpFiles.command_name)) diff -ru lldb-8.0.0.src.orig/examples/python/lldbtk.py lldb-8.0.0.src/examples/python/lldbtk.py --- lldb-8.0.0.src.orig/examples/python/lldbtk.py 2019-03-26 17:36:55.201323116 +0000 +++ lldb-8.0.0.src/examples/python/lldbtk.py 2019-03-26 18:04:34.933681062 +0000 @@ -3,8 +3,8 @@ import lldb import shlex import sys -from Tkinter import * -import ttk +from tkinter import * +import tkinter.ttk class ValueTreeItemDelegate(object): @@ -441,10 +441,10 @@ return item_dicts -class DelegateTree(ttk.Frame): +class DelegateTree(tkinter.ttk.Frame): def __init__(self, column_dicts, delegate, title, name): - ttk.Frame.__init__(self, name=name) + tkinter.ttk.Frame.__init__(self, name=name) self.pack(expand=Y, fill=BOTH) self.master.title(title) self.delegate = delegate @@ -456,17 +456,17 @@ self._populate_root() def _create_treeview(self, parent): - frame = ttk.Frame(parent) + frame = tkinter.ttk.Frame(parent) frame.pack(side=TOP, fill=BOTH, expand=Y) column_ids = list() for i in range(1, len(self.columns_dicts)): column_ids.append(self.columns_dicts[i]['id']) # create the tree and scrollbars - self.tree = ttk.Treeview(columns=column_ids) + self.tree = tkinter.ttk.Treeview(columns=column_ids) - scroll_bar_v = ttk.Scrollbar(orient=VERTICAL, command=self.tree.yview) - scroll_bar_h = ttk.Scrollbar( + scroll_bar_v = tkinter.ttk.Scrollbar(orient=VERTICAL, command=self.tree.yview) + scroll_bar_h = tkinter.ttk.Scrollbar( orient=HORIZONTAL, command=self.tree.xview) self.tree['yscroll'] = scroll_bar_v.set self.tree['xscroll'] = scroll_bar_h.set @@ -539,19 +539,19 @@ sys.argv = ['tk-variables'] target = debugger.GetSelectedTarget() if not target: - print >>result, "invalid target" + print("invalid target", file=result) return process = target.GetProcess() if not process: - print >>result, "invalid process" + print("invalid process", file=result) return thread = process.GetSelectedThread() if not thread: - print >>result, "invalid thread" + print("invalid thread", file=result) return frame = thread.GetSelectedFrame() if not frame: - print >>result, "invalid frame" + print("invalid frame", file=result) return # Parse command line args command_args = shlex.split(command) @@ -573,11 +573,11 @@ sys.argv = ['tk-process'] target = debugger.GetSelectedTarget() if not target: - print >>result, "invalid target" + print("invalid target", file=result) return process = target.GetProcess() if not process: - print >>result, "invalid process" + print("invalid process", file=result) return # Parse command line args columnd_dicts = [{'id': '#0', 'text': 'Name', 'anchor': W, 'stretch': 0}, @@ -598,7 +598,7 @@ sys.argv = ['tk-target'] target = debugger.GetSelectedTarget() if not target: - print >>result, "invalid target" + print("invalid target", file=result) return # Parse command line args columnd_dicts = [{'id': '#0', 'text': 'Name', 'anchor': W, 'stretch': 0}, diff -ru lldb-8.0.0.src.orig/examples/python/mach_o.py lldb-8.0.0.src/examples/python/mach_o.py --- lldb-8.0.0.src.orig/examples/python/mach_o.py 2019-03-26 17:36:55.201323116 +0000 +++ lldb-8.0.0.src/examples/python/mach_o.py 2019-03-26 18:04:32.789650482 +0000 @@ -7,7 +7,7 @@ import re import struct import string -import StringIO +import io import sys import uuid @@ -187,11 +187,11 @@ while i < hex_bytes_len: if ((i / 2) % num_per_line) == 0: if i > 0: - print ' %s' % (ascii_str) + print(' %s' % (ascii_str)) ascii_str = '' - print '0x%8.8x:' % (addr + i), + print('0x%8.8x:' % (addr + i), end=' ') hex_byte = hex_bytes[i:i + 2] - print hex_byte, + print(hex_byte, end=' ') int_byte = int(hex_byte, 16) ascii_char = '%c' % (int_byte) if int_byte >= 32 and int_byte < 127: @@ -204,8 +204,8 @@ padding = num_per_line - ((i / 2) % num_per_line) else: padding = 0 - print '%*s%s' % (padding * 3 + 1, '', ascii_str) - print + print('%*s%s' % (padding * 3 + 1, '', ascii_str)) + print() class TerminalColors: @@ -371,11 +371,11 @@ for ch in s: if (i % bytes_per_line) == 0: if line: - print line + print(line) line = '%#8.8x: ' % (addr + i) line += "%02X " % ord(ch) i += 1 - print line + print(line) def dump_hex_byte_string_diff(addr, a, b, bytes_per_line=16): @@ -404,7 +404,7 @@ mismatch = ch_a != ch_b if (i % bytes_per_line) == 0: if line: - print line + print(line) line = '%#8.8x: ' % (addr + i) if mismatch: line += tty_colors.red() @@ -413,7 +413,7 @@ line += tty_colors.default() i += 1 - print line + print(line) class Mach: @@ -533,11 +533,11 @@ # f.close() except IOError as xxx_todo_changeme: (errno, strerror) = xxx_todo_changeme.args - print "I/O error({0}): {1}".format(errno, strerror) + print("I/O error({0}): {1}".format(errno, strerror)) except ValueError: - print "Could not convert data to an integer." + print("Could not convert data to an integer.") except: - print "Unexpected error:", sys.exc_info()[0] + print("Unexpected error:", sys.exc_info()[0]) raise def compare(self, rhs): @@ -625,56 +625,56 @@ self.archs[i].mach.unpack(data, skinny_magic) def compare(self, rhs): - print 'error: comparing two universal files is not supported yet' + print('error: comparing two universal files is not supported yet') return False def dump(self, options): if options.dump_header: - print - print "Universal Mach File: magic = %s, nfat_arch = %u" % (self.magic, self.nfat_arch) - print + print() + print("Universal Mach File: magic = %s, nfat_arch = %u" % (self.magic, self.nfat_arch)) + print() if self.nfat_arch > 0: if options.dump_header: self.archs[0].dump_header(True, options) for i in range(self.nfat_arch): self.archs[i].dump_flat(options) if options.dump_header: - print + print() for i in range(self.nfat_arch): self.archs[i].mach.dump(options) def dump_header(self, dump_description=True, options=None): if dump_description: - print self.description() + print(self.description()) for i in range(self.nfat_arch): self.archs[i].mach.dump_header(True, options) - print + print() def dump_load_commands(self, dump_description=True, options=None): if dump_description: - print self.description() + print(self.description()) for i in range(self.nfat_arch): self.archs[i].mach.dump_load_commands(True, options) - print + print() def dump_sections(self, dump_description=True, options=None): if dump_description: - print self.description() + print(self.description()) for i in range(self.nfat_arch): self.archs[i].mach.dump_sections(True, options) - print + print() def dump_section_contents(self, options): for i in range(self.nfat_arch): self.archs[i].mach.dump_section_contents(options) - print + print() def dump_symtab(self, dump_description=True, options=None): if dump_description: - print self.description() + print(self.description()) for i in range(self.nfat_arch): self.archs[i].mach.dump_symtab(True, options) - print + print() def dump_symbol_names_matching_regex(self, regex, file=None): for i in range(self.nfat_arch): @@ -698,24 +698,24 @@ def dump_header(self, dump_description=True, options=None): if options.verbose: - print "CPU SUBTYPE OFFSET SIZE ALIGN" - print "---------- ---------- ---------- ---------- ----------" + print("CPU SUBTYPE OFFSET SIZE ALIGN") + print("---------- ---------- ---------- ---------- ----------") else: - print "ARCH FILEOFFSET FILESIZE ALIGN" - print "---------- ---------- ---------- ----------" + print("ARCH FILEOFFSET FILESIZE ALIGN") + print("---------- ---------- ---------- ----------") def dump_flat(self, options): if options.verbose: - print "%#8.8x %#8.8x %#8.8x %#8.8x %#8.8x" % (self.arch.cpu, self.arch.sub, self.offset, self.size, self.align) + print("%#8.8x %#8.8x %#8.8x %#8.8x %#8.8x" % (self.arch.cpu, self.arch.sub, self.offset, self.size, self.align)) else: - print "%-10s %#8.8x %#8.8x %#8.8x" % (self.arch, self.offset, self.size, self.align) + print("%-10s %#8.8x %#8.8x %#8.8x" % (self.arch, self.offset, self.size, self.align)) def dump(self): - print " cputype: %#8.8x" % self.arch.cpu - print "cpusubtype: %#8.8x" % self.arch.sub - print " offset: %#8.8x" % self.offset - print " size: %#8.8x" % self.size - print " align: %#8.8x" % self.align + print(" cputype: %#8.8x" % self.arch.cpu) + print("cpusubtype: %#8.8x" % self.arch.sub) + print(" offset: %#8.8x" % self.offset) + print(" size: %#8.8x" % self.size) + print(" align: %#8.8x" % self.align) def __str__(self): return "Mach.Universal.ArchInfo: %#8.8x %#8.8x %#8.8x %#8.8x %#8.8x" % ( @@ -906,21 +906,21 @@ return lc def compare(self, rhs): - print "\nComparing:" - print "a) %s %s" % (self.arch, self.path) - print "b) %s %s" % (rhs.arch, rhs.path) + print("\nComparing:") + print("a) %s %s" % (self.arch, self.path)) + print("b) %s %s" % (rhs.arch, rhs.path)) result = True if self.type == rhs.type: for lhs_section in self.sections[1:]: rhs_section = rhs.get_section_by_section(lhs_section) if rhs_section: - print 'comparing %s.%s...' % (lhs_section.segname, lhs_section.sectname), + print('comparing %s.%s...' % (lhs_section.segname, lhs_section.sectname), end=' ') sys.stdout.flush() lhs_data = lhs_section.get_contents(self) rhs_data = rhs_section.get_contents(rhs) if lhs_data and rhs_data: if lhs_data == rhs_data: - print 'ok' + print('ok') else: lhs_data_len = len(lhs_data) rhs_data_len = len(rhs_data) @@ -938,51 +938,51 @@ # result = False # else: result = False - print 'error: sections differ' + print('error: sections differ') # print 'a) %s' % (lhs_section) # dump_hex_byte_string_diff(0, lhs_data, rhs_data) # print 'b) %s' % (rhs_section) # dump_hex_byte_string_diff(0, rhs_data, lhs_data) elif lhs_data and not rhs_data: - print 'error: section data missing from b:' - print 'a) %s' % (lhs_section) - print 'b) %s' % (rhs_section) + print('error: section data missing from b:') + print('a) %s' % (lhs_section)) + print('b) %s' % (rhs_section)) result = False elif not lhs_data and rhs_data: - print 'error: section data missing from a:' - print 'a) %s' % (lhs_section) - print 'b) %s' % (rhs_section) + print('error: section data missing from a:') + print('a) %s' % (lhs_section)) + print('b) %s' % (rhs_section)) result = False elif lhs_section.offset or rhs_section.offset: - print 'error: section data missing for both a and b:' - print 'a) %s' % (lhs_section) - print 'b) %s' % (rhs_section) + print('error: section data missing for both a and b:') + print('a) %s' % (lhs_section)) + print('b) %s' % (rhs_section)) result = False else: - print 'ok' + print('ok') else: result = False - print 'error: section %s is missing in %s' % (lhs_section.sectname, rhs.path) + print('error: section %s is missing in %s' % (lhs_section.sectname, rhs.path)) else: - print 'error: comaparing a %s mach-o file with a %s mach-o file is not supported' % (self.type, rhs.type) + print('error: comaparing a %s mach-o file with a %s mach-o file is not supported' % (self.type, rhs.type)) result = False if not result: - print 'error: mach files differ' + print('error: mach files differ') return result def dump_header(self, dump_description=True, options=None): if options.verbose: - print "MAGIC CPU SUBTYPE FILETYPE NUM CMDS SIZE CMDS FLAGS" - print "---------- ---------- ---------- ---------- -------- ---------- ----------" + print("MAGIC CPU SUBTYPE FILETYPE NUM CMDS SIZE CMDS FLAGS") + print("---------- ---------- ---------- ---------- -------- ---------- ----------") else: - print "MAGIC ARCH FILETYPE NUM CMDS SIZE CMDS FLAGS" - print "------------ ---------- -------------- -------- ---------- ----------" + print("MAGIC ARCH FILETYPE NUM CMDS SIZE CMDS FLAGS") + print("------------ ---------- -------------- -------- ---------- ----------") def dump_flat(self, options): if options.verbose: - print "%#8.8x %#8.8x %#8.8x %#8.8x %#8u %#8.8x %#8.8x" % (self.magic, self.arch.cpu, self.arch.sub, self.filetype.value, self.ncmds, self.sizeofcmds, self.flags.bits) + print("%#8.8x %#8.8x %#8.8x %#8.8x %#8u %#8.8x %#8.8x" % (self.magic, self.arch.cpu, self.arch.sub, self.filetype.value, self.ncmds, self.sizeofcmds, self.flags.bits)) else: - print "%-12s %-10s %-14s %#8u %#8.8x %s" % (self.magic, self.arch, self.filetype, self.ncmds, self.sizeofcmds, self.flags) + print("%-12s %-10s %-14s %#8u %#8.8x %s" % (self.magic, self.arch, self.filetype, self.ncmds, self.sizeofcmds, self.flags)) def dump(self, options): if options.dump_header: @@ -998,27 +998,27 @@ if len(self.symbols): self.dump_sections(False, options) else: - print "No symbols" + print("No symbols") if options.find_mangled: self.dump_symbol_names_matching_regex(re.compile('^_?_Z')) def dump_header(self, dump_description=True, options=None): if dump_description: - print self.description() - print "Mach Header" - print " magic: %#8.8x %s" % (self.magic.value, self.magic) - print " cputype: %#8.8x %s" % (self.arch.cpu, self.arch) - print " cpusubtype: %#8.8x" % self.arch.sub - print " filetype: %#8.8x %s" % (self.filetype.get_enum_value(), self.filetype.get_enum_name()) - print " ncmds: %#8.8x %u" % (self.ncmds, self.ncmds) - print " sizeofcmds: %#8.8x" % self.sizeofcmds - print " flags: %#8.8x %s" % (self.flags.bits, self.flags) + print(self.description()) + print("Mach Header") + print(" magic: %#8.8x %s" % (self.magic.value, self.magic)) + print(" cputype: %#8.8x %s" % (self.arch.cpu, self.arch)) + print(" cpusubtype: %#8.8x" % self.arch.sub) + print(" filetype: %#8.8x %s" % (self.filetype.get_enum_value(), self.filetype.get_enum_name())) + print(" ncmds: %#8.8x %u" % (self.ncmds, self.ncmds)) + print(" sizeofcmds: %#8.8x" % self.sizeofcmds) + print(" flags: %#8.8x %s" % (self.flags.bits, self.flags)) def dump_load_commands(self, dump_description=True, options=None): if dump_description: - print self.description() + print(self.description()) for lc in self.commands: - print lc + print(lc) def get_section_by_name(self, name): for section in self.sections: @@ -1034,12 +1034,12 @@ def dump_sections(self, dump_description=True, options=None): if dump_description: - print self.description() + print(self.description()) num_sections = len(self.sections) if num_sections > 1: self.sections[1].dump_header() for sect_idx in range(1, num_sections): - print "%s" % self.sections[sect_idx] + print("%s" % self.sections[sect_idx]) def dump_section_contents(self, options): saved_section_to_disk = False @@ -1053,7 +1053,7 @@ if options.extract_modules: # print "Extracting modules from mach file..." data = file_extract.FileExtract( - StringIO.StringIO(sect_bytes), self.data.byte_order) + io.StringIO(sect_bytes), self.data.byte_order) version = data.get_uint32() num_modules = data.get_uint32() # print "version = %u, num_modules = %u" % @@ -1075,19 +1075,19 @@ data.seek(data_offset) outfile.write(data.read_size(data_size)) else: - print "Saving section %s to '%s'" % (sectname, options.outfile) + print("Saving section %s to '%s'" % (sectname, options.outfile)) outfile.write(sect_bytes) outfile.close() saved_section_to_disk = True else: - print "error: you can only save a single section to disk at a time, skipping section '%s'" % (sectname) + print("error: you can only save a single section to disk at a time, skipping section '%s'" % (sectname)) else: - print 'section %s:\n' % (sectname) + print('section %s:\n' % (sectname)) section.dump_header() - print '%s\n' % (section) + print('%s\n' % (section)) dump_memory(0, sect_bytes, options.max_count, 16) else: - print 'error: no section named "%s" was found' % (sectname) + print('error: no section named "%s" was found' % (sectname)) def get_segment(self, segname): if len(self.segments) == 1 and self.segments[0].segname == '': @@ -1125,20 +1125,20 @@ nlist.unpack(self, self.data, lc_symtab) self.symbols.append(nlist) else: - print "no LC_SYMTAB" + print("no LC_SYMTAB") def dump_symtab(self, dump_description=True, options=None): self.get_symtab() if dump_description: - print self.description() + print(self.description()) for i, symbol in enumerate(self.symbols): - print '[%5u] %s' % (i, symbol) + print('[%5u] %s' % (i, symbol)) def dump_symbol_names_matching_regex(self, regex, file=None): self.get_symtab() for symbol in self.symbols: if symbol.name and regex.search(symbol.name): - print symbol.name + print(symbol.name) if file: file.write('%s\n' % (symbol.name)) @@ -1247,11 +1247,11 @@ def dump_header(self): if self.is_64: - print "INDEX ADDRESS SIZE OFFSET ALIGN RELOFF NRELOC FLAGS RESERVED1 RESERVED2 RESERVED3 NAME" - print "===== ------------------ ------------------ ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------------------" + print("INDEX ADDRESS SIZE OFFSET ALIGN RELOFF NRELOC FLAGS RESERVED1 RESERVED2 RESERVED3 NAME") + print("===== ------------------ ------------------ ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------------------") else: - print "INDEX ADDRESS SIZE OFFSET ALIGN RELOFF NRELOC FLAGS RESERVED1 RESERVED2 NAME" - print "===== ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------------------" + print("INDEX ADDRESS SIZE OFFSET ALIGN RELOFF NRELOC FLAGS RESERVED1 RESERVED2 NAME") + print("===== ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------------------") def __str__(self): if self.is_64: @@ -1682,7 +1682,7 @@ def default(self, line): '''Catch all for unknown command, which will exit the interpreter.''' - print "uknown command: %s" % line + print("uknown command: %s" % line) return True def do_q(self, line): @@ -1813,10 +1813,10 @@ (options, mach_files) = parser.parse_args() if options.extract_modules: if options.section_names: - print "error: can't use --section option with the --extract-modules option" + print("error: can't use --section option with the --extract-modules option") exit(1) if not options.outfile: - print "error: the --output=FILE option must be specified with the --extract-modules option" + print("error: the --output=FILE option must be specified with the --extract-modules option") exit(1) options.section_names.append("__apple_ast") if options.compare: @@ -1827,14 +1827,14 @@ mach_b.parse(mach_files[1]) mach_a.compare(mach_b) else: - print 'error: --compare takes two mach files as arguments' + print('error: --compare takes two mach files as arguments') else: if not (options.dump_header or options.dump_load_commands or options.dump_symtab or options.dump_sections or options.find_mangled or options.section_names): options.dump_header = True options.dump_load_commands = True if options.verbose: - print 'options', options - print 'mach_files', mach_files + print('options', options) + print('mach_files', mach_files) for path in mach_files: mach = Mach() mach.parse(path) diff -ru lldb-8.0.0.src.orig/examples/python/memory.py lldb-8.0.0.src/examples/python/memory.py --- lldb-8.0.0.src.orig/examples/python/memory.py 2019-03-26 17:36:55.201323116 +0000 +++ lldb-8.0.0.src/examples/python/memory.py 2019-03-26 18:04:31.872637403 +0000 @@ -9,7 +9,7 @@ # (lldb) command script import /path/to/cmdtemplate.py #---------------------------------------------------------------------- -import commands +import subprocess import platform import os import re @@ -24,7 +24,7 @@ platform_system = platform.system() if platform_system == 'Darwin': # On Darwin, try the currently selected Xcode directory - xcode_dir = commands.getoutput("xcode-select --print-path") + xcode_dir = subprocess.getoutput("xcode-select --print-path") if xcode_dir: lldb_python_dirs.append( os.path.realpath( @@ -44,14 +44,14 @@ except ImportError: pass else: - print 'imported lldb from: "%s"' % (lldb_python_dir) + print('imported lldb from: "%s"' % (lldb_python_dir)) success = True break if not success: - print "error: couldn't locate the 'lldb' module, please set PYTHONPATH correctly" + print("error: couldn't locate the 'lldb' module, please set PYTHONPATH correctly") sys.exit(1) -import commands +import subprocess import optparse import shlex import string @@ -197,9 +197,9 @@ def print_error(str, show_usage, result): - print >>result, str + print(str, file=result) if show_usage: - print >>result, create_memfind_options().format_help() + print(create_memfind_options().format_help(), file=result) def memfind(target, options, args, result): @@ -233,44 +233,44 @@ return if not options.data: - print >>result, 'error: no data specified to search for' + print('error: no data specified to search for', file=result) return if not target: - print >>result, 'error: invalid target' + print('error: invalid target', file=result) return process = target.process if not process: - print >>result, 'error: invalid process' + print('error: invalid process', file=result) return error = lldb.SBError() bytes = process.ReadMemory(start_addr, options.size, error) if error.Success(): num_matches = 0 - print >>result, "Searching memory range [%#x - %#x) for" % ( - start_addr, end_addr), + print("Searching memory range [%#x - %#x) for" % ( + start_addr, end_addr), end=' ', file=result) for byte in options.data: - print >>result, '%2.2x' % ord(byte), - print >>result + print('%2.2x' % ord(byte), end=' ', file=result) + print(file=result) match_index = string.find(bytes, options.data) while match_index != -1: num_matches = num_matches + 1 - print >>result, '%#x: %#x + %u' % (start_addr + - match_index, start_addr, match_index) + print('%#x: %#x + %u' % (start_addr + + match_index, start_addr, match_index), file=result) match_index = string.find(bytes, options.data, match_index + 1) if num_matches == 0: - print >>result, "error: no matches found" + print("error: no matches found", file=result) else: - print >>result, 'error: %s' % (error.GetCString()) + print('error: %s' % (error.GetCString()), file=result) if __name__ == '__main__': - print 'error: this script is designed to be used within the embedded script interpreter in LLDB' + print('error: this script is designed to be used within the embedded script interpreter in LLDB') elif getattr(lldb, 'debugger', None): memfind_command.__doc__ = create_memfind_options().format_help() lldb.debugger.HandleCommand( 'command script add -f memory.memfind_command memfind') - print '"memfind" command installed, use the "--help" option for detailed help' + print('"memfind" command installed, use the "--help" option for detailed help') diff -ru lldb-8.0.0.src.orig/examples/python/performance.py lldb-8.0.0.src/examples/python/performance.py --- lldb-8.0.0.src.orig/examples/python/performance.py 2019-03-26 17:36:55.201323116 +0000 +++ lldb-8.0.0.src/examples/python/performance.py 2019-03-26 18:04:27.960581606 +0000 @@ -8,7 +8,7 @@ # export PYTHONPATH=/Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework/Resources/Python #---------------------------------------------------------------------- -import commands +import subprocess import optparse import os import platform @@ -30,7 +30,7 @@ platform_system = platform.system() if platform_system == 'Darwin': # On Darwin, try the currently selected Xcode directory - xcode_dir = commands.getoutput("xcode-select --print-path") + xcode_dir = subprocess.getoutput("xcode-select --print-path") if xcode_dir: lldb_python_dirs.append( os.path.realpath( @@ -50,11 +50,11 @@ except ImportError: pass else: - print 'imported lldb from: "%s"' % (lldb_python_dir) + print('imported lldb from: "%s"' % (lldb_python_dir)) success = True break if not success: - print "error: couldn't locate the 'lldb' module, please set PYTHONPATH correctly" + print("error: couldn't locate the 'lldb' module, please set PYTHONPATH correctly") sys.exit(1) @@ -116,20 +116,20 @@ self.breakpoints.append(breakpoint) else: if module: - if isinstance(module, types.ListType): + if isinstance(module, list): for module_path in module: self.modules.Append( lldb.SBFileSpec(module_path, False)) - elif isinstance(module, types.StringTypes): + elif isinstance(module, (str,)): self.modules.Append(lldb.SBFileSpec(module, False)) if name: # "file" can be a list or a string if file: - if isinstance(file, types.ListType): + if isinstance(file, list): self.files = lldb.SBFileSpecList() for f in file: self.files.Append(lldb.SBFileSpec(f, False)) - elif isinstance(file, types.StringTypes): + elif isinstance(file, (str,)): self.files.Append(lldb.SBFileSpec(file, False)) self.breakpoints.append( self.target.BreakpointCreateByName( @@ -179,7 +179,7 @@ error = lldb.SBError() self.process = self.target.Launch(self.launch_info, error) if not error.Success(): - print "error: %s" % error.GetCString() + print("error: %s" % error.GetCString()) if self.process: self.process.GetBroadcaster().AddListener(self.listener, lldb.SBProcess.eBroadcastBitStateChanged | lldb.SBProcess.eBroadcastBitInterrupt) @@ -194,7 +194,7 @@ if self.listener.WaitForEvent(lldb.UINT32_MAX, process_event): state = lldb.SBProcess.GetStateFromEvent(process_event) if self.verbose: - print "event = %s" % (lldb.SBDebugger.StateAsCString(state)) + print("event = %s" % (lldb.SBDebugger.StateAsCString(state))) if lldb.SBProcess.GetRestartedFromEvent(process_event): continue if state == lldb.eStateInvalid or state == lldb.eStateDetached or state == lldb.eStateCrashed or state == lldb.eStateUnloaded or state == lldb.eStateExited: @@ -213,46 +213,46 @@ stop_reason = thread.GetStopReason() if self.verbose: - print "tid = %#x pc = %#x " % (thread.GetThreadID(), frame.GetPC()), + print("tid = %#x pc = %#x " % (thread.GetThreadID(), frame.GetPC()), end=' ') if stop_reason == lldb.eStopReasonNone: if self.verbose: - print "none" + print("none") elif stop_reason == lldb.eStopReasonTrace: select_thread = True if self.verbose: - print "trace" + print("trace") elif stop_reason == lldb.eStopReasonPlanComplete: select_thread = True if self.verbose: - print "plan complete" + print("plan complete") elif stop_reason == lldb.eStopReasonThreadExiting: if self.verbose: - print "thread exiting" + print("thread exiting") elif stop_reason == lldb.eStopReasonExec: if self.verbose: - print "exec" + print("exec") elif stop_reason == lldb.eStopReasonInvalid: if self.verbose: - print "invalid" + print("invalid") elif stop_reason == lldb.eStopReasonException: select_thread = True if self.verbose: - print "exception" + print("exception") fatal = True elif stop_reason == lldb.eStopReasonBreakpoint: select_thread = True bp_id = thread.GetStopReasonDataAtIndex(0) bp_loc_id = thread.GetStopReasonDataAtIndex(1) if self.verbose: - print "breakpoint id = %d.%d" % (bp_id, bp_loc_id) + print("breakpoint id = %d.%d" % (bp_id, bp_loc_id)) elif stop_reason == lldb.eStopReasonWatchpoint: select_thread = True if self.verbose: - print "watchpoint id = %d" % (thread.GetStopReasonDataAtIndex(0)) + print("watchpoint id = %d" % (thread.GetStopReasonDataAtIndex(0))) elif stop_reason == lldb.eStopReasonSignal: select_thread = True if self.verbose: - print "signal %d" % (thread.GetStopReasonDataAtIndex(0)) + print("signal %d" % (thread.GetStopReasonDataAtIndex(0))) if select_thread and not selected_thread: self.thread = thread @@ -301,7 +301,7 @@ self.value = dict() def Measure(self): - output = commands.getoutput(self.command).split("\n")[-1] + output = subprocess.getoutput(self.command).split("\n")[-1] values = re.split('[-+\s]+', output) for (idx, stat) in enumerate(values): multiplier = 1 @@ -322,7 +322,7 @@ def __str__(self): '''Dump the MemoryMeasurement current value''' s = '' - for key in self.value.keys(): + for key in list(self.value.keys()): if s: s += "\n" s += "%8s = %s" % (key, self.value[key]) @@ -339,7 +339,7 @@ def BreakpointHit(self, thread): bp_id = thread.GetStopReasonDataAtIndex(0) loc_id = thread.GetStopReasonDataAtIndex(1) - print "Breakpoint %i.%i hit: %s" % (bp_id, loc_id, thread.process.target.FindBreakpointByID(bp_id)) + print("Breakpoint %i.%i hit: %s" % (bp_id, loc_id, thread.process.target.FindBreakpointByID(bp_id))) thread.StepOver() def PlanComplete(self, thread): @@ -356,9 +356,9 @@ if self.target: with Timer() as breakpoint_timer: bp = self.target.BreakpointCreateByName("main") - print( + print(( 'Breakpoint time = %.03f sec.' % - breakpoint_timer.interval) + breakpoint_timer.interval)) self.user_actions.append( BreakpointAction( @@ -374,10 +374,10 @@ while not self.done: self.WaitForNextProcessEvent() else: - print "error: failed to launch process" + print("error: failed to launch process") else: - print "error: failed to create target with '%s'" % (args[0]) - print('Total time = %.03f sec.' % total_time.interval) + print("error: failed to create target with '%s'" % (args[0])) + print(('Total time = %.03f sec.' % total_time.interval)) if __name__ == '__main__': @@ -386,7 +386,7 @@ test.Run(sys.argv[1:]) mem = MemoryMeasurement(os.getpid()) mem.Measure() - print str(mem) + print(str(mem)) lldb.SBDebugger.Terminate() # print "sleeeping for 100 seconds" # time.sleep(100) diff -ru lldb-8.0.0.src.orig/examples/python/process_events.py lldb-8.0.0.src/examples/python/process_events.py --- lldb-8.0.0.src.orig/examples/python/process_events.py 2019-03-26 17:36:55.201323116 +0000 +++ lldb-8.0.0.src/examples/python/process_events.py 2019-03-26 18:04:26.360558785 +0000 @@ -8,7 +8,7 @@ # export PYTHONPATH=/Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework/Resources/Python #---------------------------------------------------------------------- -import commands +import subprocess import optparse import os import platform @@ -26,7 +26,7 @@ platform_system = platform.system() if platform_system == 'Darwin': # On Darwin, try the currently selected Xcode directory - xcode_dir = commands.getoutput("xcode-select --print-path") + xcode_dir = subprocess.getoutput("xcode-select --print-path") if xcode_dir: lldb_python_dirs.append( os.path.realpath( @@ -46,18 +46,18 @@ except ImportError: pass else: - print 'imported lldb from: "%s"' % (lldb_python_dir) + print('imported lldb from: "%s"' % (lldb_python_dir)) success = True break if not success: - print "error: couldn't locate the 'lldb' module, please set PYTHONPATH correctly" + print("error: couldn't locate the 'lldb' module, please set PYTHONPATH correctly") sys.exit(1) def print_threads(process, options): if options.show_threads: for thread in process: - print '%s %s' % (thread, thread.GetFrameAtIndex(0)) + print('%s %s' % (thread, thread.GetFrameAtIndex(0))) def run_commands(command_interpreter, commands): @@ -65,9 +65,9 @@ for command in commands: command_interpreter.HandleCommand(command, return_obj) if return_obj.Succeeded(): - print return_obj.GetOutput() + print(return_obj.GetOutput()) else: - print return_obj + print(return_obj) if options.stop_on_error: break @@ -241,17 +241,17 @@ if options.run_count == 1: attach_info = lldb.SBAttachInfo(options.attach_pid) else: - print "error: --run-count can't be used with the --attach-pid option" + print("error: --run-count can't be used with the --attach-pid option") sys.exit(1) elif not options.attach_name is None: if options.run_count == 1: attach_info = lldb.SBAttachInfo( options.attach_name, options.attach_wait) else: - print "error: --run-count can't be used with the --attach-name option" + print("error: --run-count can't be used with the --attach-name option") sys.exit(1) else: - print 'error: a program path for a program to debug and its arguments are required' + print('error: a program path for a program to debug and its arguments are required') sys.exit(1) # Create a new debugger instance @@ -261,7 +261,7 @@ # Create a target from a file and arch if exe: - print "Creating a target for '%s'" % exe + print("Creating a target for '%s'" % exe) error = lldb.SBError() target = debugger.CreateTarget( exe, options.arch, options.platform, True, error) @@ -283,26 +283,26 @@ if launch_info: if options.run_count == 1: - print 'Launching "%s"...' % (exe) + print('Launching "%s"...' % (exe)) else: - print 'Launching "%s"... (launch %u of %u)' % (exe, run_idx + 1, options.run_count) + print('Launching "%s"... (launch %u of %u)' % (exe, run_idx + 1, options.run_count)) process = target.Launch(launch_info, error) else: if options.attach_pid != -1: - print 'Attaching to process %i...' % (options.attach_pid) + print('Attaching to process %i...' % (options.attach_pid)) else: if options.attach_wait: - print 'Waiting for next to process named "%s" to launch...' % (options.attach_name) + print('Waiting for next to process named "%s" to launch...' % (options.attach_name)) else: - print 'Attaching to existing process named "%s"...' % (options.attach_name) + print('Attaching to existing process named "%s"...' % (options.attach_name)) process = target.Attach(attach_info, error) # Make sure the launch went ok if process and process.GetProcessID() != lldb.LLDB_INVALID_PROCESS_ID: pid = process.GetProcessID() - print 'Process is %i' % (pid) + print('Process is %i' % (pid)) if attach_info: # continue process if we attached as we won't get an # initial event @@ -319,19 +319,19 @@ state = lldb.SBProcess.GetStateFromEvent(event) if state == lldb.eStateInvalid: # Not a state event - print 'process event = %s' % (event) + print('process event = %s' % (event)) else: - print "process state changed event: %s" % (lldb.SBDebugger.StateAsCString(state)) + print("process state changed event: %s" % (lldb.SBDebugger.StateAsCString(state))) if state == lldb.eStateStopped: if stop_idx == 0: if launch_info: - print "process %u launched" % (pid) + print("process %u launched" % (pid)) run_commands( command_interpreter, ['breakpoint list']) else: - print "attached to process %u" % (pid) + print("attached to process %u" % (pid)) for m in target.modules: - print m + print(m) if options.breakpoints: for bp in options.breakpoints: debugger.HandleCommand( @@ -342,74 +342,74 @@ command_interpreter, options.launch_commands) else: if options.verbose: - print "process %u stopped" % (pid) + print("process %u stopped" % (pid)) run_commands( command_interpreter, options.stop_commands) stop_idx += 1 print_threads(process, options) - print "continuing process %u" % (pid) + print("continuing process %u" % (pid)) process.Continue() elif state == lldb.eStateExited: exit_desc = process.GetExitDescription() if exit_desc: - print "process %u exited with status %u: %s" % (pid, process.GetExitStatus(), exit_desc) + print("process %u exited with status %u: %s" % (pid, process.GetExitStatus(), exit_desc)) else: - print "process %u exited with status %u" % (pid, process.GetExitStatus()) + print("process %u exited with status %u" % (pid, process.GetExitStatus())) run_commands( command_interpreter, options.exit_commands) done = True elif state == lldb.eStateCrashed: - print "process %u crashed" % (pid) + print("process %u crashed" % (pid)) print_threads(process, options) run_commands( command_interpreter, options.crash_commands) done = True elif state == lldb.eStateDetached: - print "process %u detached" % (pid) + print("process %u detached" % (pid)) done = True elif state == lldb.eStateRunning: # process is running, don't say anything, # we will always get one of these after # resuming if options.verbose: - print "process %u resumed" % (pid) + print("process %u resumed" % (pid)) elif state == lldb.eStateUnloaded: - print "process %u unloaded, this shouldn't happen" % (pid) + print("process %u unloaded, this shouldn't happen" % (pid)) done = True elif state == lldb.eStateConnected: - print "process connected" + print("process connected") elif state == lldb.eStateAttaching: - print "process attaching" + print("process attaching") elif state == lldb.eStateLaunching: - print "process launching" + print("process launching") else: - print 'event = %s' % (event) + print('event = %s' % (event)) else: # timeout waiting for an event - print "no process event for %u seconds, killing the process..." % (options.event_timeout) + print("no process event for %u seconds, killing the process..." % (options.event_timeout)) done = True # Now that we are done dump the stdout and stderr process_stdout = process.GetSTDOUT(1024) if process_stdout: - print "Process STDOUT:\n%s" % (process_stdout) + print("Process STDOUT:\n%s" % (process_stdout)) while process_stdout: process_stdout = process.GetSTDOUT(1024) - print process_stdout + print(process_stdout) process_stderr = process.GetSTDERR(1024) if process_stderr: - print "Process STDERR:\n%s" % (process_stderr) + print("Process STDERR:\n%s" % (process_stderr)) while process_stderr: process_stderr = process.GetSTDERR(1024) - print process_stderr + print(process_stderr) process.Kill() # kill the process else: if error: - print error + print(error) else: if launch_info: - print 'error: launch failed' + print('error: launch failed') else: - print 'error: attach failed' + print('error: attach failed') lldb.SBDebugger.Terminate() diff -ru lldb-8.0.0.src.orig/examples/python/pytracer.py lldb-8.0.0.src/examples/python/pytracer.py --- lldb-8.0.0.src.orig/examples/python/pytracer.py 2019-03-26 17:36:55.201323116 +0000 +++ lldb-8.0.0.src/examples/python/pytracer.py 2019-03-26 18:04:37.659719943 +0000 @@ -40,7 +40,7 @@ def getTraceback(self): return TracebackFancy(self.etraceback) - def __nonzero__(self): + def __bool__(self): return self.etraceback is not None or self.etype is not None or self.evalue is not None def getType(self): @@ -229,17 +229,17 @@ class LoggingTracer: def callEvent(self, frame): - print "call " + frame.getName() + " from " + frame.getCaller().getName() + " @ " + str(frame.getCaller().getLineNumber()) + " args are " + str(frame.getArgumentInfo()) + print("call " + frame.getName() + " from " + frame.getCaller().getName() + " @ " + str(frame.getCaller().getLineNumber()) + " args are " + str(frame.getArgumentInfo())) def lineEvent(self, frame): - print "running " + frame.getName() + " @ " + str(frame.getLineNumber()) + " locals are " + str(frame.getLocals()) + " in " + frame.getFileName() + print("running " + frame.getName() + " @ " + str(frame.getLineNumber()) + " locals are " + str(frame.getLocals()) + " in " + frame.getFileName()) def returnEvent(self, frame, retval): - print "return from " + frame.getName() + " value is " + str(retval) + " locals are " + str(frame.getLocals()) + print("return from " + frame.getName() + " value is " + str(retval) + " locals are " + str(frame.getLocals())) def exceptionEvent(self, frame, exception): - print "exception %s %s raised from %s @ %s" % (exception.getType(), str(exception.getValue()), frame.getName(), frame.getLineNumber()) - print "tb: " + str(exception.getTraceback()) + print("exception %s %s raised from %s @ %s" % (exception.getType(), str(exception.getValue()), frame.getName(), frame.getLineNumber())) + print("tb: " + str(exception.getTraceback())) # the same functionality as LoggingTracer, but with a little more # lldb-specific smarts @@ -251,10 +251,10 @@ if frame.getName() == "": return if frame.getName() == "run_one_line": - print "call run_one_line(%s)" % (frame.getArgumentInfo().getArgs()["input_string"]) + print("call run_one_line(%s)" % (frame.getArgumentInfo().getArgs()["input_string"])) return if "Python.framework" in frame.getFileName(): - print "call into Python at " + frame.getName() + print("call into Python at " + frame.getName()) return if frame.getName() == "__init__" and frame.getCaller().getName( ) == "run_one_line" and frame.getCaller().getLineNumber() == 101: @@ -270,16 +270,16 @@ else: strout += " from " + frame.getCaller().getName() + " @ " + \ str(frame.getCaller().getLineNumber()) + " args are " + str(frame.getArgumentInfo()) - print strout + print(strout) def lineEvent(self, frame): if frame.getName() == "": return if frame.getName() == "run_one_line": - print "running run_one_line(%s) @ %s" % (frame.getArgumentInfo().getArgs()["input_string"], frame.getLineNumber()) + print("running run_one_line(%s) @ %s" % (frame.getArgumentInfo().getArgs()["input_string"], frame.getLineNumber())) return if "Python.framework" in frame.getFileName(): - print "running into Python at " + frame.getName() + " @ " + str(frame.getLineNumber()) + print("running into Python at " + frame.getName() + " @ " + str(frame.getLineNumber())) return strout = "running " + frame.getName() + " @ " + str(frame.getLineNumber()) + \ " locals are " @@ -292,16 +292,16 @@ else: strout = strout + str(frame.getLocals()) strout = strout + " in " + frame.getFileName() - print strout + print(strout) def returnEvent(self, frame, retval): if frame.getName() == "": return if frame.getName() == "run_one_line": - print "return from run_one_line(%s) return value is %s" % (frame.getArgumentInfo().getArgs()["input_string"], retval) + print("return from run_one_line(%s) return value is %s" % (frame.getArgumentInfo().getArgs()["input_string"], retval)) return if "Python.framework" in frame.getFileName(): - print "return from Python at " + frame.getName() + " return value is " + str(retval) + print("return from Python at " + frame.getName() + " return value is " + str(retval)) return strout = "return from " + frame.getName() + " return value is " + \ str(retval) + " locals are " @@ -314,13 +314,13 @@ else: strout = strout + str(frame.getLocals()) strout = strout + " in " + frame.getFileName() - print strout + print(strout) def exceptionEvent(self, frame, exception): if frame.getName() == "": return - print "exception %s %s raised from %s @ %s" % (exception.getType(), str(exception.getValue()), frame.getName(), frame.getLineNumber()) - print "tb: " + str(exception.getTraceback()) + print("exception %s %s raised from %s @ %s" % (exception.getType(), str(exception.getValue()), frame.getName(), frame.getLineNumber())) + print("tb: " + str(exception.getTraceback())) def f(x, y=None): @@ -335,8 +335,8 @@ def print_keyword_args(**kwargs): # kwargs is a dict of the keyword args passed to the function - for key, value in kwargs.iteritems(): - print "%s = %s" % (key, value) + for key, value in kwargs.items(): + print("%s = %s" % (key, value)) def total(initial=5, *numbers, **keywords): diff -ru lldb-8.0.0.src.orig/examples/python/sbvalue.py lldb-8.0.0.src/examples/python/sbvalue.py --- lldb-8.0.0.src.orig/examples/python/sbvalue.py 2019-03-26 17:36:55.201323116 +0000 +++ lldb-8.0.0.src/examples/python/sbvalue.py 2019-03-26 18:04:26.003553693 +0000 @@ -29,7 +29,7 @@ def __init__(self, sbvalue): self.sbvalue = sbvalue - def __nonzero__(self): + def __bool__(self): return self.sbvalue.__nonzero__() def __repr__(self): @@ -101,7 +101,7 @@ def __init__(self, sbvalue): self.sbvalue = sbvalue - def __nonzero__(self): + def __bool__(self): return self.sbvalue.__nonzero__() def __repr__(self): diff -ru lldb-8.0.0.src.orig/examples/python/scripted_step.py lldb-8.0.0.src/examples/python/scripted_step.py --- lldb-8.0.0.src.orig/examples/python/scripted_step.py 2019-03-26 17:36:55.201323116 +0000 +++ lldb-8.0.0.src/examples/python/scripted_step.py 2019-03-26 18:04:30.444617035 +0000 @@ -186,13 +186,13 @@ a_var = frame.FindVariable("a") if not a_var.IsValid(): - print "A was not valid." + print("A was not valid.") return True error = lldb.SBError() a_value = a_var.GetValueAsSigned(error) if not error.Success(): - print "A value was not good." + print("A value was not good.") return True if a_value == 20: @@ -239,6 +239,6 @@ frame_0 = self.thread.frames[0] rax_value = frame_0.FindRegister("rax") if rax_value.GetError().Success(): - print "RAX on exit: ", rax_value.GetValue() + print("RAX on exit: ", rax_value.GetValue()) else: - print "Couldn't get rax value:", rax_value.GetError().GetCString() + print("Couldn't get rax value:", rax_value.GetError().GetCString()) diff -ru lldb-8.0.0.src.orig/examples/python/shadow.py lldb-8.0.0.src/examples/python/shadow.py --- lldb-8.0.0.src.orig/examples/python/shadow.py 2019-03-26 17:36:55.200323102 +0000 +++ lldb-8.0.0.src/examples/python/shadow.py 2019-03-26 18:04:36.831708133 +0000 @@ -10,12 +10,12 @@ process = exe_ctx.GetProcess() state = process.GetState() if state != lldb.eStateStopped: - print >>result, "process must be stopped, state is %s" % lldb.SBDebugger.StateAsCString( - state) + print("process must be stopped, state is %s" % lldb.SBDebugger.StateAsCString( + state), file=result) return frame = exe_ctx.GetFrame() if not frame: - print >>result, "invalid frame" + print("invalid frame", file=result) return # Parse command line args command_args = shlex.split(command) @@ -47,12 +47,12 @@ num_shadowed_variables = 0 if shadow_dict: - for name in shadow_dict.keys(): + for name in list(shadow_dict.keys()): shadow_vars = shadow_dict[name] if len(shadow_vars) > 1: - print '"%s" is shadowed by the following declarations:' % (name) + print('"%s" is shadowed by the following declarations:' % (name)) num_shadowed_variables += 1 for shadow_var in shadow_vars: - print >>result, str(shadow_var.GetDeclaration()) + print(str(shadow_var.GetDeclaration()), file=result) if num_shadowed_variables == 0: - print >>result, 'no variables are shadowed' + print('no variables are shadowed', file=result) diff -ru lldb-8.0.0.src.orig/examples/python/sources.py lldb-8.0.0.src/examples/python/sources.py --- lldb-8.0.0.src.orig/examples/python/sources.py 2019-03-26 17:36:55.200323102 +0000 +++ lldb-8.0.0.src/examples/python/sources.py 2019-03-26 18:04:30.166613070 +0000 @@ -6,10 +6,10 @@ def dump_module_sources(module, result): if module: - print >> result, "Module: %s" % (module.file) + print("Module: %s" % (module.file), file=result) for compile_unit in module.compile_units: if compile_unit.file: - print >> result, " %s" % (compile_unit.file) + print(" %s" % (compile_unit.file), file=result) def info_sources(debugger, command, result, dict): @@ -28,4 +28,4 @@ # Add any commands contained in this module to LLDB debugger.HandleCommand( 'command script add -f sources.info_sources info_sources') - print 'The "info_sources" command has been installed, type "help info_sources" or "info_sources --help" for detailed help.' + print('The "info_sources" command has been installed, type "help info_sources" or "info_sources --help" for detailed help.') diff -ru lldb-8.0.0.src.orig/examples/python/stacks.py lldb-8.0.0.src/examples/python/stacks.py --- lldb-8.0.0.src.orig/examples/python/stacks.py 2019-03-26 17:36:55.201323116 +0000 +++ lldb-8.0.0.src/examples/python/stacks.py 2019-03-26 18:04:38.223727987 +0000 @@ -1,7 +1,7 @@ #!/usr/bin/python import lldb -import commands +import subprocess import optparse import shlex @@ -30,7 +30,7 @@ frame_info = {} for thread in process: last_frame = None - print "thread %u" % (thread.id) + print("thread %u" % (thread.id)) for frame in thread.frames: if last_frame: frame_size = 0 @@ -43,7 +43,7 @@ else: # First frame that has a valid size first_frame_size = last_frame.fp - last_frame.sp - print "<%#7x> %s" % (first_frame_size, last_frame) + print("<%#7x> %s" % (first_frame_size, last_frame)) if first_frame_size: name = last_frame.name if name not in frame_info: @@ -53,7 +53,7 @@ else: # Second or higher frame frame_size = frame.fp - last_frame.fp - print "<%#7x> %s" % (frame_size, frame) + print("<%#7x> %s" % (frame_size, frame)) if frame_size > 0: name = frame.name if name not in frame_info: @@ -61,9 +61,9 @@ else: frame_info[name] += frame_size last_frame = frame - print frame_info + print(frame_info) lldb.debugger.HandleCommand( "command script add -f stacks.stack_frames stack_frames") -print "A new command called 'stack_frames' was added, type 'stack_frames --help' for more information." +print("A new command called 'stack_frames' was added, type 'stack_frames --help' for more information.") diff -ru lldb-8.0.0.src.orig/examples/python/symbolication.py lldb-8.0.0.src/examples/python/symbolication.py --- lldb-8.0.0.src.orig/examples/python/symbolication.py 2019-03-26 17:36:55.200323102 +0000 +++ lldb-8.0.0.src/examples/python/symbolication.py 2019-03-26 18:04:29.373601759 +0000 @@ -27,7 +27,7 @@ #---------------------------------------------------------------------- import lldb -import commands +import subprocess import optparse import os import plistlib @@ -203,13 +203,13 @@ if op == '+': self.end_addr += self.start_addr return True - print 'error: invalid section info string "%s"' % s - print 'Valid section info formats are:' - print 'Format Example Description' - print '--------------------- -----------------------------------------------' - print '= __TEXT=0x123000 Section from base address only' - print '=- __TEXT=0x123000-0x124000 Section from base address and end address' - print '=+ __TEXT=0x123000+0x1000 Section from base address and size' + print('error: invalid section info string "%s"' % s) + print('Valid section info formats are:') + print('Format Example Description') + print('--------------------- -----------------------------------------------') + print('= __TEXT=0x123000 Section from base address only') + print('=- __TEXT=0x123000-0x124000 Section from base address and end address') + print('=+ __TEXT=0x123000+0x1000 Section from base address and size') return False def __str__(self): @@ -261,21 +261,21 @@ return obj def dump(self, prefix): - print "%s%s" % (prefix, self) + print("%s%s" % (prefix, self)) def debug_dump(self): - print 'path = "%s"' % (self.path) - print 'resolved_path = "%s"' % (self.resolved_path) - print 'resolved = %i' % (self.resolved) - print 'unavailable = %i' % (self.unavailable) - print 'uuid = %s' % (self.uuid) - print 'section_infos = %s' % (self.section_infos) - print 'identifier = "%s"' % (self.identifier) - print 'version = %s' % (self.version) - print 'arch = %s' % (self.arch) - print 'module = %s' % (self.module) - print 'symfile = "%s"' % (self.symfile) - print 'slide = %i (0x%x)' % (self.slide, self.slide) + print('path = "%s"' % (self.path)) + print('resolved_path = "%s"' % (self.resolved_path)) + print('resolved = %i' % (self.resolved)) + print('unavailable = %i' % (self.unavailable)) + print('uuid = %s' % (self.uuid)) + print('section_infos = %s' % (self.section_infos)) + print('identifier = "%s"' % (self.identifier)) + print('version = %s' % (self.version)) + print('arch = %s' % (self.arch)) + print('module = %s' % (self.module)) + print('symfile = "%s"' % (self.symfile)) + print('slide = %i (0x%x)' % (self.slide, self.slide)) def __str__(self): s = '' @@ -428,12 +428,12 @@ if self.has_section_load_info(): err = self.load_module(target) if err: - print 'ERROR: ', err + print('ERROR: ', err) return target else: - print 'error: unable to create a valid target for (%s) "%s"' % (self.arch, self.path) + print('error: unable to create a valid target for (%s) "%s"' % (self.arch, self.path)) else: - print 'error: unable to locate main executable (%s) "%s"' % (self.arch, self.path) + print('error: unable to locate main executable (%s) "%s"' % (self.arch, self.path)) return None @@ -554,7 +554,7 @@ if symbolicated_addresses: return symbolicated_addresses else: - print 'error: no target in Symbolicator' + print('error: no target in Symbolicator') return None @@ -602,22 +602,22 @@ end_idx = inst_idx for i in range(start_idx, end_idx + 1): if i == pc_index: - print ' -> ', lines[i] + print(' -> ', lines[i]) else: - print ' ', lines[i] + print(' ', lines[i]) def print_module_section_data(section): - print section + print(section) section_data = section.GetSectionData() if section_data: ostream = lldb.SBStream() section_data.GetDescription(ostream, section.GetFileAddress()) - print ostream.GetData() + print(ostream.GetData()) def print_module_section(section, depth): - print section + print(section) if depth > 0: num_sub_sections = section.GetNumSubSections() for sect_idx in range(num_sub_sections): @@ -632,7 +632,7 @@ def print_module_symbols(module): for sym in module: - print sym + print(sym) def Symbolicate(command_args): @@ -709,17 +709,17 @@ target = symbolicator.create_target() if options.verbose: - print symbolicator + print(symbolicator) if target: for addr_str in args: addr = int(addr_str, 0) symbolicated_addrs = symbolicator.symbolicate( addr, options.verbose) for symbolicated_addr in symbolicated_addrs: - print symbolicated_addr - print + print(symbolicated_addr) + print() else: - print 'error: no target for %s' % (symbolicator) + print('error: no target for %s' % (symbolicator)) if __name__ == '__main__': # Create a new debugger instance diff -ru lldb-8.0.0.src.orig/examples/python/types.py lldb-8.0.0.src/examples/python/types.py --- lldb-8.0.0.src.orig/examples/python/types.py 2019-03-26 17:36:55.201323116 +0000 +++ lldb-8.0.0.src/examples/python/types.py 2019-03-26 18:04:31.529632511 +0000 @@ -9,7 +9,7 @@ # (lldb) command script import /path/to/cmdtemplate.py #---------------------------------------------------------------------- -import commands +import subprocess import platform import os import re @@ -25,7 +25,7 @@ platform_system = platform.system() if platform_system == 'Darwin': # On Darwin, try the currently selected Xcode directory - xcode_dir = commands.getoutput("xcode-select --print-path") + xcode_dir = subprocess.getoutput("xcode-select --print-path") if xcode_dir: lldb_python_dirs.append( os.path.realpath( @@ -45,14 +45,14 @@ except ImportError: pass else: - print 'imported lldb from: "%s"' % (lldb_python_dir) + print('imported lldb from: "%s"' % (lldb_python_dir)) success = True break if not success: - print "error: couldn't locate the 'lldb' module, please set PYTHONPATH correctly" + print("error: couldn't locate the 'lldb' module, please set PYTHONPATH correctly") sys.exit(1) -import commands +import subprocess import optparse import shlex import time @@ -157,7 +157,7 @@ def verify_type(target, options, type): - print type + print(type) typename = type.GetName() # print 'type: %s' % (typename) (end_offset, padding) = verify_type_recursive( @@ -167,11 +167,11 @@ # last_member_padding = byte_size - end_offset # print '%+4u <%u> padding' % (end_offset, last_member_padding) # padding += last_member_padding - print 'Total byte size: %u' % (byte_size) - print 'Total pad bytes: %u' % (padding) + print('Total byte size: %u' % (byte_size)) + print('Total pad bytes: %u' % (padding)) if padding > 0: - print 'Padding percentage: %2.2f %%' % ((float(padding) / float(byte_size)) * 100.0) - print + print('Padding percentage: %2.2f %%' % ((float(padding) / float(byte_size)) * 100.0)) + print() def verify_type_recursive( @@ -186,9 +186,9 @@ typename = type.GetName() byte_size = type.GetByteSize() if member_name and member_name != typename: - print '%+4u <%3u> %s%s %s;' % (base_offset, byte_size, ' ' * depth, typename, member_name) + print('%+4u <%3u> %s%s %s;' % (base_offset, byte_size, ' ' * depth, typename, member_name)) else: - print '%+4u {%3u} %s%s' % (base_offset, byte_size, ' ' * depth, typename) + print('%+4u {%3u} %s%s' % (base_offset, byte_size, ' ' * depth, typename)) for type_regex in options.skip_type_regexes: match = type_regex.match(typename) @@ -211,13 +211,13 @@ if member_idx == 0 and member_offset == target.GetAddressByteSize( ) and type.IsPolymorphicClass(): ptr_size = target.GetAddressByteSize() - print '%+4u <%3u> %s__vtbl_ptr_type * _vptr;' % (prev_end_offset, ptr_size, ' ' * (depth + 1)) + print('%+4u <%3u> %s__vtbl_ptr_type * _vptr;' % (prev_end_offset, ptr_size, ' ' * (depth + 1))) prev_end_offset = ptr_size else: if prev_end_offset < member_total_offset: member_padding = member_total_offset - prev_end_offset padding = padding + member_padding - print '%+4u <%3u> %s' % (prev_end_offset, member_padding, ' ' * (depth + 1)) + print('%+4u <%3u> %s' % (prev_end_offset, member_padding, ' ' * (depth + 1))) if member_is_class_or_struct: (prev_end_offset, @@ -232,18 +232,18 @@ prev_end_offset = member_total_offset + member_byte_size member_typename = member_type.GetName() if member.IsBitfield(): - print '%+4u <%3u> %s%s:%u %s;' % (member_total_offset, member_byte_size, ' ' * (depth + 1), member_typename, member.GetBitfieldSizeInBits(), member_name) + print('%+4u <%3u> %s%s:%u %s;' % (member_total_offset, member_byte_size, ' ' * (depth + 1), member_typename, member.GetBitfieldSizeInBits(), member_name)) else: - print '%+4u <%3u> %s%s %s;' % (member_total_offset, member_byte_size, ' ' * (depth + 1), member_typename, member_name) + print('%+4u <%3u> %s%s %s;' % (member_total_offset, member_byte_size, ' ' * (depth + 1), member_typename, member_name)) if prev_end_offset < byte_size: last_member_padding = byte_size - prev_end_offset - print '%+4u <%3u> %s' % (prev_end_offset, last_member_padding, ' ' * (depth + 1)) + print('%+4u <%3u> %s' % (prev_end_offset, last_member_padding, ' ' * (depth + 1))) padding += last_member_padding else: if type.IsPolymorphicClass(): ptr_size = target.GetAddressByteSize() - print '%+4u <%3u> %s__vtbl_ptr_type * _vptr;' % (prev_end_offset, ptr_size, ' ' * (depth + 1)) + print('%+4u <%3u> %s__vtbl_ptr_type * _vptr;' % (prev_end_offset, ptr_size, ' ' * (depth + 1))) prev_end_offset = ptr_size prev_end_offset = base_offset + byte_size @@ -274,17 +274,17 @@ error = lldb.SBError() target = debugger.CreateTarget(f, None, None, False, error) module = target.GetModuleAtIndex(0) - print "Parsing all types in '%s'" % (module) + print("Parsing all types in '%s'" % (module)) types = module.GetTypes(lldb.eTypeClassClass | lldb.eTypeClassStruct) for t in types: - print t - print "" + print(t) + print("") def verify_types(target, options): if not target: - print 'error: invalid target' + print('error: invalid target') return modules = list() @@ -301,24 +301,24 @@ if modules: for module in modules: - print 'module: %s' % (module.file) + print('module: %s' % (module.file)) if options.typenames: for typename in options.typenames: types = module.FindTypes(typename) if types.GetSize(): - print 'Found %u types matching "%s" in "%s"' % (len(types), typename, module.file) + print('Found %u types matching "%s" in "%s"' % (len(types), typename, module.file)) for type in types: verify_type(target, options, type) else: - print 'error: no type matches "%s" in "%s"' % (typename, module.file) + print('error: no type matches "%s" in "%s"' % (typename, module.file)) else: types = module.GetTypes( lldb.eTypeClassClass | lldb.eTypeClassStruct) - print 'Found %u types in "%s"' % (len(types), module.file) + print('Found %u types in "%s"' % (len(types), module.file)) for type in types: verify_type(target, options, type) else: - print 'error: no modules' + print('error: no modules') if __name__ == '__main__': debugger = lldb.SBDebugger.Create() @@ -331,7 +331,7 @@ # sys.exit(1) if options.debug: - print "Waiting for debugger to attach to process %d" % os.getpid() + print("Waiting for debugger to attach to process %d" % os.getpid()) os.kill(os.getpid(), signal.SIGSTOP) for path in args: @@ -346,11 +346,11 @@ True, error) if error.Fail(): - print error.GetCString() + print(error.GetCString()) continue verify_types(target, options) elif getattr(lldb, 'debugger', None): lldb.debugger.HandleCommand( 'command script add -f types.check_padding_command check_padding') - print '"check_padding" command installed, use the "--help" option for detailed help' + print('"check_padding" command installed, use the "--help" option for detailed help')