diff options
| -rw-r--r-- | lldb/examples/darwin/heap_find/heap.py | 9 | ||||
| -rwxr-xr-x | lldb/examples/python/crashlog.py | 26 | ||||
| -rwxr-xr-x | lldb/scripts/Python/finish-swig-Python-LLDB.sh | 22 | ||||
| -rw-r--r-- | lldb/source/Interpreter/ScriptInterpreterPython.cpp | 2 | 
4 files changed, 36 insertions, 23 deletions
diff --git a/lldb/examples/darwin/heap_find/heap.py b/lldb/examples/darwin/heap_find/heap.py index da36495c2ac..812bf604ce8 100644 --- a/lldb/examples/darwin/heap_find/heap.py +++ b/lldb/examples/darwin/heap_find/heap.py @@ -20,14 +20,15 @@ import commands  import optparse  import os  import shlex -import symbolication # from lldb/examples/python/symbolication.py +import lldb.utils.symbolication  def load_dylib():      if lldb.target:          python_module_directory = os.path.dirname(__file__) -        libheap_dylib_path = python_module_directory + '/libheap.dylib' +        heap_code_directory = python_module_directory + '/heap' +        libheap_dylib_path = heap_code_directory + '/heap/libheap.dylib'          if not os.path.exists(libheap_dylib_path): -            make_command = '(cd "%s" ; make)' % python_module_directory +            make_command = '(cd "%s" ; make)' % heap_code_directory              print make_command              print commands.getoutput(make_command)          if os.path.exists(libheap_dylib_path): @@ -172,7 +173,7 @@ def heap_search(options, arg_str):                      lldb.debugger.GetCommandInterpreter().HandleCommand(memory_command, cmd_result)                      print cmd_result.GetOutput()                  if options.stack: -                    symbolicator = symbolication.Symbolicator() +                    symbolicator = lldb.utils.symbolication.Symbolicator()                      symbolicator.target = lldb.target                      expr_str = "g_stack_frames_count = sizeof(g_stack_frames)/sizeof(uint64_t); (int)__mach_stack_logging_get_frames((unsigned)mach_task_self(), 0x%xull, g_stack_frames, g_stack_frames_count, &g_stack_frames_count)" % (malloc_addr)                      #print expr_str diff --git a/lldb/examples/python/crashlog.py b/lldb/examples/python/crashlog.py index 49be635e756..d81e968ff2c 100755 --- a/lldb/examples/python/crashlog.py +++ b/lldb/examples/python/crashlog.py @@ -37,7 +37,7 @@ import shlex  import sys  import time  import uuid -import symbolication +import lldb.utils.symbolication   PARSE_MODE_NORMAL = 0  PARSE_MODE_THREAD = 1 @@ -45,7 +45,7 @@ PARSE_MODE_IMAGES = 2  PARSE_MODE_THREGS = 3  PARSE_MODE_SYSTEM = 4 -class CrashLog(symbolication.Symbolicator): +class CrashLog(lldb.utils.symbolication.Symbolicator):      """Class that does parses darwin crash logs"""      thread_state_regex = re.compile('^Thread ([0-9]+) crashed with')      thread_regex = re.compile('^Thread ([0-9]+)([^:]*):(.*)') @@ -97,7 +97,7 @@ class CrashLog(symbolication.Symbolicator):              else:                  return "[%3u] 0x%16.16x" % (self.index, self.pc)         -    class DarwinImage(symbolication.Image): +    class DarwinImage(lldb.utils.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): @@ -106,8 +106,8 @@ class CrashLog(symbolication.Symbolicator):          dwarfdump_uuid_regex = re.compile('UUID: ([-0-9a-fA-F]+) \(([^\(]+)\) .*')          def __init__(self, text_addr_lo, text_addr_hi, identifier, version, uuid, path): -            symbolication.Image.__init__(self, path, uuid); -            self.add_section (symbolication.Section(text_addr_lo, text_addr_hi, "__TEXT")) +            lldb.utils.symbolication.Image.__init__(self, path, uuid); +            self.add_section (lldb.utils.symbolication.Section(text_addr_lo, text_addr_hi, "__TEXT"))              self.identifier = identifier              self.version = version @@ -158,7 +158,7 @@ class CrashLog(symbolication.Symbolicator):      def __init__(self, path):          """CrashLog constructor that take a path to a darwin crash log file""" -        symbolication.Symbolicator.__init__(self); +        lldb.utils.symbolication.Symbolicator.__init__(self);          self.path = os.path.expanduser(path);          self.info_lines = list()          self.system_profile = list() @@ -313,7 +313,7 @@ class CrashLog(symbolication.Symbolicator):      def create_target(self):          #print 'crashlog.create_target()...' -        target = symbolication.Symbolicator.create_target(self) +        target = lldb.utils.symbolication.Symbolicator.create_target(self)          if target:              return target          # We weren't able to open the main executable as, but we can still symbolicate @@ -446,11 +446,11 @@ be disassembled and lookups can be performed using the addresses found in the cr                                      instructions = symbolicated_frame_address.get_instructions()                                      if instructions:                                          print -                                        symbolication.disassemble_instructions (target,  -                                                                                instructions,  -                                                                                frame.pc,  -                                                                                options.disassemble_before,  -                                                                                options.disassemble_after, frame.index > 0) +                                        lldb.utils.symbolication.disassemble_instructions (target,  +                                                                                           instructions,  +                                                                                           frame.pc,  +                                                                                           options.disassemble_before,  +                                                                                           options.disassemble_after, frame.index > 0)                                          print                              symbolicated_frame_address_idx += 1                      else: @@ -467,6 +467,6 @@ if __name__ == '__main__':      lldb.debugger = lldb.SBDebugger.Create()      SymbolicateCrashLog (sys.argv[1:])  elif lldb.debugger: -    lldb.debugger.HandleCommand('command script add -f crashlog.Symbolicate crashlog') +    lldb.debugger.HandleCommand('command script add -f lldb.macosx.crashlog.Symbolicate crashlog')      print '"crashlog" command installed, type "crashlog --help" for detailed help' diff --git a/lldb/scripts/Python/finish-swig-Python-LLDB.sh b/lldb/scripts/Python/finish-swig-Python-LLDB.sh index c6a46510058..3f024950db6 100755 --- a/lldb/scripts/Python/finish-swig-Python-LLDB.sh +++ b/lldb/scripts/Python/finish-swig-Python-LLDB.sh @@ -240,12 +240,24 @@ create_python_package "/formatters" "${package_files}"  package_files="${SRC_ROOT}/examples/python/symbolication.py"  create_python_package "/utils" "${package_files}" -# lldb/macosx -package_files="${SRC_ROOT}/examples/python/crashlog.py -${SRC_ROOT}/examples/darwin/heap_find/heap.py" -create_python_package "/macosx" "${package_files}" - +if [ ${OS_NAME} == "Darwin" ] +then +    # lldb/macosx +    package_files="${SRC_ROOT}/examples/python/crashlog.py +    ${SRC_ROOT}/examples/darwin/heap_find/heap.py" +    create_python_package "/macosx" "${package_files}" + +    # Copy files needed by lldb/macosx/heap.py to build libheap.dylib +    heap_dir="${framework_python_dir}/macosx/heap" +    if [ ! -d "${heap_dir}" ] +    then +        mkdir -p "${heap_dir}" +        cp "${SRC_ROOT}/examples/darwin/heap_find/heap/heap_find.cpp" "${heap_dir}" +        cp "${SRC_ROOT}/examples/darwin/heap_find/heap/Makefile" "${heap_dir}" +    fi +fi  fi +  exit 0 diff --git a/lldb/source/Interpreter/ScriptInterpreterPython.cpp b/lldb/source/Interpreter/ScriptInterpreterPython.cpp index 29d818dfa5f..1865a3d3cc6 100644 --- a/lldb/source/Interpreter/ScriptInterpreterPython.cpp +++ b/lldb/source/Interpreter/ScriptInterpreterPython.cpp @@ -534,7 +534,7 @@ ScriptInterpreterPython::ExecuteOneLine (const char *command, CommandReturnObjec          if (script_interpreter_dict != NULL)          {              PyObject *pfunc = (PyObject*)m_run_one_line; -            PyObject *pmod = PyImport_AddModule ("embedded_interpreter"); +            PyObject *pmod = PyImport_AddModule ("lldb.embedded_interpreter");              if (pmod != NULL)              {                  PyObject *pmod_dict = PyModule_GetDict (pmod);  | 

