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); |

