Put a try/catch block around the SBAddress setting; don't want to

terminate the command early if we happen to have an invalid load
address.

llvm-svn: 180826
This commit is contained in:
Jason Molenda 2013-04-30 23:03:56 +00:00
parent 699808ceb2
commit 14c84cdb9c
1 changed files with 16 additions and 13 deletions

View File

@ -17,19 +17,22 @@ def backtrace_print_frame (target, frame_num, addr, fp):
addr = addr - 1
sbaddr = lldb.SBAddress()
sbaddr.SetLoadAddress(addr, target)
module_description = ""
if sbaddr.GetModule():
module_filename = ""
module_uuid_str = sbaddr.GetModule().GetUUIDString()
if module_uuid_str == None:
module_uuid_str = ""
if sbaddr.GetModule().GetFileSpec():
module_filename = sbaddr.GetModule().GetFileSpec().GetFilename()
if module_filename == None:
module_filename = ""
if module_uuid_str != "" or module_filename != "":
module_description = '%s %s' % (module_filename, module_uuid_str)
try:
sbaddr.SetLoadAddress(addr, target)
module_description = ""
if sbaddr.GetModule():
module_filename = ""
module_uuid_str = sbaddr.GetModule().GetUUIDString()
if module_uuid_str == None:
module_uuid_str = ""
if sbaddr.GetModule().GetFileSpec():
module_filename = sbaddr.GetModule().GetFileSpec().GetFilename()
if module_filename == None:
module_filename = ""
if module_uuid_str != "" or module_filename != "":
module_description = '%s %s' % (module_filename, module_uuid_str)
except Exception:
return
addr_width = process.GetAddressByteSize() * 2
sym_ctx = target.ResolveSymbolContextForAddress(sbaddr, lldb.eSymbolContextEverything)