aboutsummaryrefslogtreecommitdiff
path: root/lldb/examples/python/disasm.py
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/examples/python/disasm.py')
-rwxr-xr-xlldb/examples/python/disasm.py49
1 files changed, 28 insertions, 21 deletions
diff --git a/lldb/examples/python/disasm.py b/lldb/examples/python/disasm.py
index 732cf10..af024a6 100755
--- a/lldb/examples/python/disasm.py
+++ b/lldb/examples/python/disasm.py
@@ -12,10 +12,12 @@ import lldb
import os
import sys
-def disassemble_instructions (insts):
+
+def disassemble_instructions(insts):
for i in insts:
print i
+
def usage():
print "Usage: disasm.py [-n name] executable-image"
print " By default, it breaks at and disassembles the 'main' function."
@@ -36,63 +38,69 @@ else:
# Create a new debugger instance
debugger = lldb.SBDebugger.Create()
-# When we step or continue, don't return from the function until the process
+# When we step or continue, don't return from the function until the process
# stops. We do this by setting the async mode to false.
-debugger.SetAsync (False)
+debugger.SetAsync(False)
# Create a target from a file and arch
print "Creating a target for '%s'" % exe
-target = debugger.CreateTargetWithFileAndArch (exe, lldb.LLDB_ARCH_DEFAULT)
+target = debugger.CreateTargetWithFileAndArch(exe, lldb.LLDB_ARCH_DEFAULT)
if target:
# If the target is valid set a breakpoint at main
- main_bp = target.BreakpointCreateByName (fname, target.GetExecutable().GetFilename());
+ main_bp = target.BreakpointCreateByName(
+ fname, target.GetExecutable().GetFilename())
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
- process = target.LaunchSimple (None, None, os.getcwd())
-
+ process = target.LaunchSimple(None, None, os.getcwd())
+
# Make sure the launch went ok
if process:
# Print some simple process info
- state = process.GetState ()
+ state = process.GetState()
print process
if state == lldb.eStateStopped:
# Get the first thread
- thread = process.GetThreadAtIndex (0)
+ thread = process.GetThreadAtIndex(0)
if thread:
# Print some simple thread info
print thread
# Get the first frame
- frame = thread.GetFrameAtIndex (0)
+ frame = thread.GetFrameAtIndex(0)
if frame:
# Print some simple frame info
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
+ # We do have a function, print some info for the
+ # function
print function
- # Now get all instructions for this function and print them
+ # Now get all instructions for this function and print
+ # them
insts = function.GetInstructions(target)
- disassemble_instructions (insts)
+ disassemble_instructions(insts)
else:
- # See if we have a symbol in the symbol table for where we stopped
- symbol = frame.GetSymbol();
+ # See if we have a symbol in the symbol table for where
+ # we stopped
+ symbol = frame.GetSymbol()
if symbol:
- # We do have a symbol, print some info for the symbol
+ # We do have a symbol, print some info for the
+ # symbol
print symbol
- # Now get all instructions for this symbol and print them
+ # Now get all instructions for this symbol and
+ # print them
insts = symbol.GetInstructions(target)
- disassemble_instructions (insts)
+ disassemble_instructions(insts)
registerList = frame.GetRegisters()
print "Frame registers (size of register set = %d):" % registerList.GetSize()
for value in registerList:
- #print value
+ # print value
print "%s (number of children = %d):" % (value.GetName(), value.GetNumChildren())
for child in value:
print "Name: ", child.GetName(), " Value: ", child.GetValue()
@@ -111,9 +119,8 @@ if target:
elif state == lldb.eStateExited:
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()
-
lldb.SBDebugger.Terminate()