winIDEA SDK
Loading...
Searching...
No Matches
test_get_disassembly.py
# This script is licensed under BSD License, see file LICENSE.txt, or search for `License` in the SDK online help.
#
# (c) TASKING Germany GmbH, 2023
import isystem.connect as ic
winidea_id = ''
def test_getDisassembly():
connMgr = ic.ConnectionMgr()
connMgr.connect(ic.CConnectionConfig().instanceId(winidea_id))
dataCtrl2 = ic.CDataController2(connMgr)
# For example purpose, we will show dissassebly data of
# main.c file, 10 lines for line 10 and above
da = dataCtrl2.getDisassembly(ic.IConnectEclipse.dfSymSymbolsAndValues, "src/main.cpp", 10, 10)
try:
lines = da.Lines()
for index in range(lines.size()):
lineData = lines.at(index)
lineData: ic.IDisassemblyLine
print(' address: ', hex(lineData.Address()))
print(' opCode: ', lineData.OpCode())
print(' opCodeArgs: ', lineData.OpCodeArgs())
print(' fileName: ', lineData.FileName())
print(' lineNumber: ', lineData.LineNumber())
print(' functionName: ', lineData.FunctionName())
print(' isBranch: ', lineData.IsBranch())
print(' isCall: ', lineData.IsCall())
print(' isIndirect: ', lineData.IsIndirect())
print(' isConditional: ', lineData.IsConditional())
print(' length: ', lineData.Length())
print(' branchTarget: ', hex(lineData.BranchTarget()))
# NOTE: there are other functions available, explore `ic.IDisassemblyLine` docs
finally:
dataCtrl2.release(da)
if __name__ == "__main__":
test_getDisassembly()