MCPcopy
hub / github.com/DerekSelander/LLDB / getObjCClassData

Function getObjCClassData

lldb_commands/ds.py:443–466  ·  view source on GitHub ↗
(section, outputCount=0)

Source from the content-addressed store, hash-verified

441
442
443def getObjCClassData(section, outputCount=0):
444
445 target = getTarget()
446 indeces = []
447 stringList = []
448
449 ptrsize = getType("void*").GetByteSize()
450 sz = section.GetByteSize() / ptrsize
451 addr = section.GetLoadAddress(target)
452 script = "int dssize = {};\nchar *classNames[{}];\nClass *clsPointer = (Class*){};".format(sz, sz, addr)
453 script += r'''
454memset(&classNames, 0, sizeof(classNames))
455for (int i = 0; i < dssize; i++) {
456 classNames[i] = (char*)class_getName(clsPointer[i]);
457}
458classNames''&#x27;
459 val = target.EvaluateExpression(script, genExpressionOptions(False, True, True))
460
461 for i in range(val.GetNumChildren()):
462 x = val.GetChildAtIndex(i)
463 indeces.append(i * ptrsize)
464 stringList.append(x.summary.replace("\"", ""))
465
466 return (indeces, stringList)
467
468def getSectionData(section, outputCount=0):
469 # loadAddr = section.addr.GetLoadAddress(getTarget())

Callers 1

formatFromDataFunction · 0.85

Calls 3

getTargetFunction · 0.85
getTypeFunction · 0.85
genExpressionOptionsFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…