Debug: Separate GdbSyms target as it contains invalid addresses

This commit is contained in:
vit9696 2020-03-22 20:36:25 +03:00
parent da840e97be
commit 3e5f3f3f9a
2 changed files with 24 additions and 2 deletions

View File

@ -449,12 +449,34 @@ class ReloadUefi:
if opt == "-o":
self.offset_by_headers = True
self.typetarget = None
self.activetarget = None
# FIXME: Use ReadCStringFromMemory.
# FIXME: Support executing code.
if len(args) >= 1 and args[0] != '':
gdb.execute ("symbol-file")
gdb.execute ("symbol-file %s" % args[0])
else:
self.typetarget = self.debugger.GetSelectedTarget()
for i in range(0, self.debugger.GetNumTargets()):
target = self.debugger.GetTargetAtIndex(i)
target_name = str(target)
print('Target {} is "{}"'.format(i, target_name))
if target_name.find('GdbSyms') >= 0:
self.typetarget = target
elif target_name.find('No executable module.') >= 0:
self.activetarget = target
if not self.typetarget:
print('Cannot find GdbSyms target!')
return
if not self.activetarget:
print('Cannot find target with full memory access!')
return
# Force into full memory target.
self.debugger.SetSelectedTarget(self.activetarget)
est = self.search_est ()
if est == self.EINVAL:

View File

@ -26,7 +26,7 @@ fi
"$LLDB" -o "settings set plugin.process.gdb-remote.target-definition-file Scripts/x86_64_target_definition.py" \
-o "gdb-remote $LLDB_PORT" \
-o "target modules add GdbSyms/Bin/X64_CLANGDWARF/GdbSyms.debug" \
-o "target create GdbSyms/Bin/X64_CLANGDWARF/GdbSyms.debug" \
-o "command script import Scripts/lldb_uefi.py" \
-o "command script add -c lldb_uefi.ReloadUefi reload-uefi" \
-o "reload-uefi" \