import isystem.connect as ic
winidea_id = ''
def printDisassembly(disassemblyLine):
print(' address: ', hex(disassemblyLine.Address()))
print(' opCode: ', disassemblyLine.OpCode())
print(' opCodeArgs: ', disassemblyLine.OpCodeArgs())
print(' fileName: ', disassemblyLine.FileName())
print(' lineNumber: ', disassemblyLine.LineNumber())
print(' functionName: ', disassemblyLine.FunctionName())
print(' isBranch: ', disassemblyLine.IsBranch())
print(' isCall: ', disassemblyLine.IsCall())
print(' isIndirect: ', disassemblyLine.IsIndirect())
print(' isConditional: ', disassemblyLine.IsConditional())
print(' length: ', disassemblyLine.Length())
print(' branchTarget: ', hex(disassemblyLine.BranchTarget()))
def main():
print('isystem.connect version: ' + ic.getModuleVersion())
cmgr = ic.ConnectionMgr()
cmgr.connect(ic.CConnectionConfig().instanceId(winidea_id))
debugCtrl = ic.CDebugFacade(cmgr)
debugCtrl.download()
debugCtrl.waitUntilStopped()
dataCtrl2 = ic.CDataController2(cmgr)
disassembly = dataCtrl2.getDisassembly(0, 'src/main.cpp', 36, 5)
daLines = disassembly.Lines()
numLines = daLines.size()
print('numDisassemblyLines: ', numLines, '\n')
for idx in range(numLines):
disassemblyLine = daLines.at(idx)
print('\nline: ', idx, '/', numLines - 1)
printDisassembly(disassemblyLine)
dataCtrl2.release(disassembly)
if __name__ == "__main__":
main()