6This script demonstrates usage of API for getting call hierarchy
7from symbol information. Analyzer is not required for this
8information to be available.
12import isystem.connect
as ic
18def printFunctions(addrCtrl, addresses):
20 names = ic.StrVector()
21 types = ic.IntVector()
22 addrCtrl.getFunctionNames(addresses, names, types)
25 for addr
in addresses:
26 print(hex(addr), names[idx])
30cmgr = ic.ConnectionMgr()
31cmgr.connect(ic.CConnectionConfig().instanceId(winidea_id))
33debugCtrl = ic.CDebugFacade(cmgr)
38functionName =
'fibonacci'
41 functionName = sys.argv[1]
44dataCtrl = ic.CDataController(cmgr)
45addrCtrl = ic.CAddressController(cmgr)
47functions = ic.FunctionVector()
48dataCtrl.getFunctions(partition, functions)
50major, minor, build, _ = ic.getModuleVersion().split(
'.')
53 if func.getName() == functionName:
54 print(
'Function info found!')
56 addrs = ic.AddressVector()
58 func.getCallsFromFunction(addrs)
59 print(
"Functions called from '" + functionName +
"':")
60 printFunctions(addrCtrl, addrs)
62 func.getCallsToFunction(addrs)
63 print(
"\nFunctions which call '" + functionName +
"':")
64 printFunctions(addrCtrl, addrs)