mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-11-28 16:11:29 +00:00
[lldb] Refactor the Symbolicator initializer
We found out that we have clients relying on the old signature of the Symbolicator initializer. Make the signature compatible again and provide a factory method to initialize the class correctly based on whether you have a target or want the symbolicator to create one for you. Differential revision: D92601
This commit is contained in:
parent
86fa896363
commit
99ea2c461d
@ -437,18 +437,22 @@ class Image:
|
||||
|
||||
class Symbolicator:
|
||||
|
||||
def __init__(self, debugger):
|
||||
"""A class the represents the information needed to symbolicate addresses in a program"""
|
||||
def __init__(self, debugger=None, target=None, images=list()):
|
||||
"""A class the represents the information needed to symbolicate
|
||||
addresses in a program.
|
||||
|
||||
Do not call this initializer directly, but rather use the factory
|
||||
methods.
|
||||
"""
|
||||
self.debugger = debugger
|
||||
self.target = None
|
||||
self.images = list() # a list of images to be used when symbolicating
|
||||
self.target = target
|
||||
self.images = images # a list of images to be used when symbolicating
|
||||
self.addr_mask = 0xffffffffffffffff
|
||||
|
||||
@classmethod
|
||||
def InitWithSBTarget(cls, target):
|
||||
obj = cls()
|
||||
obj.target = target
|
||||
obj.images = list()
|
||||
"""Initialize a new Symbolicator with an existing SBTarget."""
|
||||
obj = cls(target=target)
|
||||
triple = target.triple
|
||||
if triple:
|
||||
arch = triple.split('-')[0]
|
||||
@ -460,6 +464,13 @@ class Symbolicator:
|
||||
obj.images.append(image)
|
||||
return obj
|
||||
|
||||
@classmethod
|
||||
def InitWithSBDebugger(cls, debugger, images):
|
||||
"""Initialize a new Symbolicator with an existing debugger and list of
|
||||
images. The Symbolicator will create the target."""
|
||||
obj = cls(debugger=debugger, images=images)
|
||||
return obj
|
||||
|
||||
def __str__(self):
|
||||
s = "Symbolicator:\n"
|
||||
if self.target:
|
||||
|
Loading…
Reference in New Issue
Block a user