in commands/FBInvocationCommands.py [0:0]
def prettyPrintInvocation(frame, invocation):
object = fb.evaluateExpression("(id)[(id)" + invocation + " target]")
description = fb.evaluateExpressionValue("(id)" + invocation).GetObjectDescription()
argDescriptions = description.splitlines(True)[4:]
print("NSInvocation: " + invocation)
print("self: " + fb.evaluateExpression("(id)" + object))
if len(argDescriptions) > 0:
print(
"\n" + str(len(argDescriptions)) + " Arguments:"
if len(argDescriptions) > 1
else "\nArgument:"
)
index = 2
for argDescription in argDescriptions:
s = re.sub(r"argument [0-9]+: ", "", argDescription)
address = findArgAdressAtIndexFromStackFrame(frame, index)
encoding = s.split(" ")[0]
description = " ".join(s.split(" ")[1:])
readableString = argumentAsString(frame, address, encoding)
if readableString:
print(readableString)
else:
if encoding[0] == "{":
encoding = encoding[1:]
print(
(
hex(address) + ", address of " + encoding + " " + description
).strip()
)
index += 1