winIDEA SDK
Loading...
Searching...
No Matches
trace_coverage_profiler.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
"""
This script demonstrates coverage and profiler analysis on the same
analyzer recording.
"""
import time
import isystem.connect as ic
def initTarget(cmgr):
debugCtrl = ic.CDebugFacade(cmgr)
debugCtrl.download()
debugCtrl.runUntilFunction("main")
debugCtrl.waitUntilStopped()
return debugCtrl
if __name__ == '__main__':
print('isystem.connect version: ' + ic.getModuleVersion())
winidea_id = ''
cmgr = ic.ConnectionMgr()
cmgr.connect(ic.CConnectionConfig().instanceId(winidea_id))
debugCtrl = initTarget(cmgr)
docName = "test.trd"
traceDoc = ic.CTraceController(cmgr, docName, "w")
# The default trigger records trace so that it is suitable also for
# coverage and profiler analysis
triggerIdx = traceDoc.getActiveTriggerIndex()
# decrease the default buffer size. 1 Mb is enough for demo.
#trace_doc.setTriggerOption(triggerIdx, 'HW.Recorder.BufferSize', '1 MB')
print('Target is running, trace_doc is recording data...')
traceDoc.start()
debugCtrl.run()
time.sleep(3)
debugCtrl.stop()
print('Target stopped, loading trace data...')
traceDoc.waitUntilLoaded()
# perform coverage analysis
coverageDoc = ic.CCoverageController2(cmgr, docName, 'u')
cvrgTriggerName = 'cvrgTrigger'
cvrgTriggerIdx = coverageDoc.getTriggerIndex(cvrgTriggerName, False)
if cvrgTriggerIdx == -1:
cvrgTriggerIdx = coverageDoc.createTrigger(cvrgTriggerName)
coverageDoc.select(cvrgTriggerIdx)
coverageDoc.start1() # performs coverage analysis
coverageDoc.waitUntilLoaded()
# perform profiler analysis
profilerDoc = ic.CProfilerController2(cmgr, docName, 'u')
profTriggerName = 'profTrigger'
profTriggerIdx = profilerDoc.getTriggerIndex(profTriggerName, False)
if profTriggerIdx == -1:
profTriggerIdx = profilerDoc.createTrigger(profTriggerName)
profilerDoc.select(profTriggerIdx)
profilerDoc.start1() # performs profiler analysis
profilerDoc.waitUntilLoaded()
print('Done. Results are visible in winIDEA, file: ', docName)
# Now results are visible in winIDEA, but could also be exported to
# file. See examples trace2Example.py, coverage2Example.py, and
# profiler2Example.py