QP/C++ 8.1.2
Real-Time Event Framework
Loading...
Searching...
No Matches
Software Metrics Report

About this Document

Generating HIS Metrics with PCLP

The PC-Lint-Plus v2025 ([PCLP-2025]) static analysis tool can generate a very comprehensive set of code metrics, far exceeding the HIS Standard. This section outlines how the HIS Metrics are interpreted and generated from the PCLP metrics data (see [PCLP-2025] Section 10.6 'Bult-in Metrics' and 10.6.5 'Function').

HIS Metric PCLP Metrics Description (from PCLP Manual)
v(G) cyclomatic_complexity The McCabe cyclomatic complexity of a function.
PATH cyclomatic_complexity * log2(halstead_vocabulary) Where: cyclomatic_complexity is the cyclomatic complexity (v(G)) and halstead_vocabulary is the Halstead vocabulary (N), both measured by PCLP.
STMT num_stmts The number of statements within a function. Every statement within the body of any compound statement is counted.
LEVEL avg_scope_nesting_depth The average nesting depth of compound statements enclosing each statement in a function. That is, the sum for each integral nesting level of the product of that nesting level and the number of statements with that nesting level, divided by the number of statements.
CALLS num_called_functions The number of distinct functions defined within the analyzed project called by this function. Each function called at least once is only counted once, regardless of how many different calls to it appear within the body of this function. This metric does not count called functions that exist only as declarations that are never defined anywhere within the analyzed project.
PARAM num_parameters The number of parameters for a function. In C, the explicit me instance parameter is counted, but in C++ the implicit this instance parameter is not counted. Also, in C++, parameters with default arguments are counted.
RETURN num_return_stmts The number of return statements within a function. The implicit return at the end of main or a function defined as returning void (or a catch clause of a function-try-block thereof) is not included.
GOTO num_backward_goto_stmts + num_forward_goto_stmts Calculated sum of: The number of backward goto statements plus the number of forward goto statements within a function.
COMF num_comment_lines /
num_code_lines
Calculated ratio of: The number of comment lines to the number of code lines in a lexical function definition.
NOMV see misra-qp The number of HIS subset violations after applying the provided Deviaition Permits and Deviation Records.
NOMVPR see misra-qp The number of MISRA violations per rule after applying the provided Deviaition Permits and Deviation Records.

Function Metrics

This section contains the function metrics measured by the PC-Lint-Plus (v2025) static analysis tool. The metrics were collected under the conditions typically applied for the Release build configuration. Specifically, the QP Functional Safety (FuSa) Subsystem is enabled, but the QP/Spy software tracing is disabled (except for analysis of QS target-resident QP/Spy component).

v(G) PATH STMT LEVEL CALLS PARAM RETURN GOTO COMF Function @ <file>
(<=16) (<99) (<=55) (<=4) (<=7) (<=7) (<=1) (==0) (>=0.2)
-------------------------------------------------------------------------------
1 4 1 1 1 1 1 0 0.2 QP::QF::getQueueMin @ include/qp.hpp:775:34
1 3 1 1 0 1 1 0 0.7 QP::dis_update @ include/qp_pkg.hpp:59:11
1 4 1 1 0 2 1 0 0.7 QP::dis_verify @ include/qp_pkg.hpp:66:13
1 4 2 1 0 1 0 0 0.5 QP::QEvt_refCtr_dec_ @ src/qf/qf_act.cpp:68:6
2 8 3 1 1 1 0 0 0.8 QP::QEvt_refCtr_inc_ @ src/qf/qf_act.cpp:57:6
2 11 6 1 4 1 0 0 0.3 QP::QF::deleteRef_ @ src/qf/qf_dyn.cpp:378:6
4 21 8 1 4 1 1 0 0.2 QP::QF::getPoolMin @ src/qf/qf_dyn.cpp:174:15
5 27 12 1 4 1 1 0 0.3 QP::QF::getPoolUse @ src/qf/qf_dyn.cpp:115:15
4 21 8 1 4 1 1 0 0.2 QP::QF::getPoolFree @ src/qf/qf_dyn.cpp:150:15
1 4 2 1 1 1 0 0 0.2 QP::QF::q_delete_ref @ include/qp.hpp:867:13
3 15 7 1 4 0 1 0 0.2 QP::QF::poolGetMaxBlockSize @ src/qf/qf_dyn.cpp:95:15
8 47 22 3 5 1 0 0 0.3 QP::QF::gc @ src/qf/qf_dyn.cpp:276:6
1 4 1 1 1 2 0 0 0.2 QP::QF::tick @ include/qp.hpp:784:13
10 61 31 2 5 3 1 0 0.5 QP::QF::newX_ @ src/qf/qf_dyn.cpp:197:8
1 4 1 1 1 1 1 0 0.5 QP::QF::q_new @ include/qp.hpp:817:20
1 4 1 1 1 2 0 0 0.2 QP::QF::psInit @ include/qp.hpp:759:13
6 34 15 1 4 2 1 0 0.4 QP::QF::newRef_ @ src/qf/qf_dyn.cpp:336:14
1 4 1 1 1 2 1 0 0.4 QP::QF::q_new_x @ include/qp.hpp:824:20
4 24 9 1 5 3 0 0 0.4 QP::QF::poolInit @ src/qf/qf_dyn.cpp:51:6
1 4 1 1 1 3 0 0 0.2 QP::QF::publish_ @ include/qp.hpp:767:13
1 4 1 1 1 2 0 0 0.2 QP::QF::q_new_ref @ include/qp.hpp:858:13
1 3 1 1 0 0 1 0 0.5 QP::QAsm::QM_HANDLED @ include/qp.hpp:199:29
1 3 1 1 0 0 1 0 0.5 QP::QAsm::Q_UNHANDLED @ include/qp.hpp:197:29
1 3 1 1 0 0 1 0 0.5 QP::QAsm::QM_UNHANDLED @ include/qp.hpp:201:29
1 5 3 1 0 2 1 0 0.2 QP::QAsm::qm_tran_hist @ include/qp.hpp:260:12
1 4 2 1 0 1 1 0 0.2 QP::QAsm::qm_tran_init @ include/qp.hpp:255:12
1 4 3 1 0 2 1 0 0.2 QP::QAsm::top @ src/qf/qf_act.cpp:80:14
2 7 1 1 1 1 0 0 0.3 QP::QAsm::init @ src/qf/qf_act.cpp:86:12
1 4 2 1 0 1 1 0 0.2 QP::QAsm::tran @ include/qp.hpp:235:12
1 4 2 1 0 1 1 0 0.2 QP::QAsm::super @ include/qp.hpp:245:12
1 4 2 1 0 1 1 0 0.2 QP::QAsm::qm_tran @ include/qp.hpp:250:12
1 3 1 1 0 0 1 0 0.5 QP::QAsm::QM_SUPER @ include/qp.hpp:203:29
1 3 1 1 0 0 1 0 0.5 QP::QAsm::Q_HANDLED @ include/qp.hpp:195:29
1 4 2 1 0 1 1 0 0.2 QP::QAsm::tran_hist @ include/qp.hpp:240:12
1 3 0 0 0 0 0 0 0.2 QP::QAsm::QAsm @ src/qf/qf_act.cpp:75:7
1 4 0 0 0 1 0 0 0.8 QP::QEvt::QEvt @ include/qp.hpp:110:24
1 2 0 0 0 0 0 0 0.5 QP::QEvt::QEvt @ include/qp.hpp:118:5
4 21 15 2 2 1 1 0 0.5 QP::QHsm::childState @ src/qf/qep_hsm.cpp:579:21
10 58 28 3 2 2 1 0 0.5 QP::QHsm::tran_simple_ @ src/qf/qep_hsm.cpp:328:19
11 66 35 3 2 3 0 0 0.5 QP::QHsm::enter_target_ @ src/qf/qep_hsm.cpp:484:12
12 71 43 3 2 2 1 0 0.6 QP::QHsm::tran_complex_ @ src/qf/qep_hsm.cpp:395:19
8 51 38 2 4 2 0 0 0.6 QP::QHsm::init @ src/qf/qep_hsm.cpp:150:12
4 22 15 2 4 1 1 0 0.5 QP::QHsm::isIn @ src/qf/qep_hsm.cpp:549:12
15 98 55 2 7 2 0 0 0.6 QP::QHsm::dispatch @ src/qf/qep_hsm.cpp:225:12
1 4 2 1 0 1 0 0 0.3 QP::QHsm::QHsm @ src/qf/qep_hsm.cpp:142:7
6 35 19 2 2 2 1 0 0.3 QP::QMsm::execTatbl_ @ src/qf/qep_msm.cpp:278:14
1 3 1 1 0 0 1 0 0.3 QP::QMsm::topQMState @ src/qf/qep_msm.cpp:388:23
6 35 23 2 2 2 1 0 0.3 QP::QMsm::enterHistory_ @ src/qf/qep_msm.cpp:344:14
3 16 7 2 0 3 0 0 0.4 QP::QMsm::exitToTranSource_ @ src/qf/qep_msm.cpp:318:12
6 35 24 2 4 2 0 0 0.3 QP::QMsm::init @ src/qf/qep_msm.cpp:136:12
3 15 8 2 0 1 1 0 0.2 QP::QMsm::isIn @ src/qf/qep_msm.cpp:393:12
11 71 38 2 7 2 0 0 0.3 QP::QMsm::dispatch @ src/qf/qep_msm.cpp:180:12
1 4 2 1 0 1 0 0 0.3 QP::QMsm::QMsm @ src/qf/qep_msm.cpp:128:7
1 5 1 1 0 1 0 0 0.2 QP::QPSet::insert @ src/qf/qf_qact.cpp:245:13
1 5 1 1 0 1 0 0 0.2 QP::QPSet::remove @ src/qf/qf_qact.cpp:259:13
1 4 1 1 0 0 0 0 0.3 QP::QPSet::setEmpty @ src/qf/qf_qact.cpp:207:13
11 66 34 2 3 2 1 0 0.6 QP::QMPool::get @ src/qf/qf_mem.cpp:121:16
7 41 20 1 3 2 0 0 0.5 QP::QMPool::put @ src/qf/qf_mem.cpp:200:14
6 36 26 1 3 3 0 0 0.4 QP::QMPool::init @ src/qf/qf_mem.cpp:58:14
1 4 0 0 0 0 0 0 0.8 QP::QMPool::QMPool @ src/qf/qf_mem.cpp:48:9
1 4 1 1 1 1 1 0 0.3 QP::QActive::childState @ src/qf/qf_qact.cpp:155:24
6 34 20 2 7 3 0 0 0.5 QP::QActive::multicast_ @ src/qf/qf_ps.cpp:127:15
4 21 8 1 3 1 1 0 0.3 QP::QActive::getQueueMin @ src/qf/qf_actq.cpp:368:24
6 32 14 2 4 1 1 0 0.3 QP::QActive::getQueueUse @ src/qf/qf_actq.cpp:316:24
4 20 8 1 3 0 0 0 0.5 QP::QActive::unregister_ @ src/qf/qf_qact.cpp:116:15
1 4 1 1 0 1 1 0 0.3 QP::QActive::fromRegistry @ src/qf/qf_qact.cpp:160:19
4 21 8 1 3 1 1 0 0.2 QP::QActive::getQueueFree @ src/qf/qf_actq.cpp:349:24
8 47 32 2 3 0 1 0 0.6 QP::QActive::get_ @ src/qf/qf_actq.cpp:197:23
1 4 1 1 1 2 0 0 0.2 QP::QActive::init @ src/qf/qf_qact.cpp:134:15
1 4 1 1 1 1 1 0 0.3 QP::QActive::isIn @ src/qf/qf_qact.cpp:150:15
1 4 1 1 1 2 0 0 0.2 QP::QActive::post_ @ include/qp.hpp:537:10
7 43 24 2 6 3 1 0 0.4 QP::QActive::postx_ @ src/qf/qf_actq.cpp:49:15
4 20 6 1 2 2 0 0 0.2 QP::QActive::psInit @ src/qf/qf_ps.cpp:51:15
6 34 24 2 6 1 1 0 0.6 QP::QActive::recall @ src/qf/qf_defer.cpp:81:15
1 4 1 1 1 2 0 0 0.2 QP::QActive::dispatch @ src/qf/qf_qact.cpp:142:15
8 49 29 2 5 1 0 0 0.5 QP::QActive::postLIFO @ src/qf/qf_actq.cpp:126:15
6 35 19 1 7 3 0 0 0.6 QP::QActive::publish_ @ src/qf/qf_ps.cpp:71:15
5 29 23 2 1 2 0 0 0.6 QP::QActive::postFIFO_ @ src/qf/qf_actq.cpp:261:15
12 67 20 2 3 0 0 0 0.3 QP::QActive::register_ @ src/qf/qf_qact.cpp:68:15
1 3 1 1 0 1 0 0 0.3 QP::QActive::setThread @ include/qp.hpp:585:10
1 4 2 1 0 1 0 0 0.4 QP::QActive::QActive @ src/qf/qf_qact.cpp:55:10
8 48 32 3 3 1 1 0 0.5 QP::QEQueue::get @ src/qf/qf_qeq.cpp:223:23
3 16 12 1 3 2 0 0 0.5 QP::QEQueue::init @ src/qf/qf_qeq.cpp:58:15
9 55 26 2 4 3 1 0 0.5 QP::QEQueue::post @ src/qf/qf_qeq.cpp:84:15
8 47 29 2 4 2 0 0 0.5 QP::QEQueue::postLIFO @ src/qf/qf_qeq.cpp:168:15
1 4 0 0 0 0 0 0 0.8 QP::QEQueue::QEQueue @ src/qf/qf_qeq.cpp:48:10
1 4 6 1 2 2 0 0 0.4 QP::QTicker::init @ src/qf/qf_actq.cpp:399:15
6 34 23 2 4 1 0 0 0.6 QP::QTicker::trig_ @ src/qf/qf_actq.cpp:447:15
3 15 11 1 4 2 0 0 0.3 QP::QTicker::dispatch @ src/qf/qf_actq.cpp:418:15
1 4 1 1 0 1 0 0 0.2 QP::QTicker::QTicker @ src/qf/qf_actq.cpp:391:10
1 3 1 1 0 0 1 0 0.3 QP::version @ src/qf/qf_act.cpp:52:13
1 4 1 1 1 2 0 0 0.2 QP::QMActive::init @ src/qf/qf_qmact.cpp:58:16
1 4 1 1 1 1 1 0 0.3 QP::QMActive::isIn @ src/qf/qf_qmact.cpp:74:16
1 4 1 1 1 2 0 0 0.2 QP::QMActive::dispatch @ src/qf/qf_qmact.cpp:66:16
1 4 2 1 1 1 0 0 0.5 QP::QMActive::QMActive @ src/qf/qf_qmact.cpp:48:11
1 4 6 1 2 0 1 0 0.2 QP::QTimeEvt::wasDisarmed @ src/qf/qf_time.cpp:261:16
7 43 22 1 4 2 0 0 0.6 QP::QTimeEvt::armX @ src/qf/qf_time.cpp:80:16
7 43 28 2 7 2 0 0 0.4 QP::QTimeEvt::tick @ src/qf/qf_time.cpp:276:16
7 44 24 2 4 1 1 0 0.6 QP::QTimeEvt::rearm @ src/qf/qf_time.cpp:191:16
4 23 23 2 2 0 1 0 0.4 QP::QTimeEvt::disarm @ src/qf/qf_time.cpp:148:16
4 22 20 2 0 3 1 0 0.5 QP::QTimeEvt::expire_ @ src/qf/qf_time.cpp:384:21
3 14 4 1 1 1 1 0 0.1 QP::QTimeEvt::noActive @ src/qf/qf_time.cpp:360:16
1 3 1 1 0 0 1 0 0.3 QP::QTimeEvt::toActive @ include/qp.hpp:717:15
1 3 1 1 0 0 1 0 0.7 QP::QTimeEvt::toTimeEvt @ include/qp.hpp:721:16
3 16 6 1 3 3 0 0 0.5 QP::QTimeEvt::QTimeEvt @ src/qf/qf_time.cpp:54:11
1 4 0 0 0 0 0 0 0.8 QP::QTimeEvt::QTimeEvt @ src/qf/qf_time.cpp:373:11
1 3 1 1 0 0 1 0 0.3 QP::QAsm::state @ include/qp.hpp:223:19
1 4 2 1 0 1 1 0 0.5 QP::QAsm::qm_exit @ include/qp.hpp:290:12
1 4 2 1 0 1 1 0 0.5 QP::QAsm::qm_entry @ include/qp.hpp:276:12
1 3 1 1 0 0 1 0 0.3 QP::QAsm::stateObj @ include/qp.hpp:226:21
1 3 1 1 0 1 0 0 0.3 QP::QEvt::init @ include/qp.hpp:123:10
1 2 0 0 0 0 0 0 0.5 QP::QEvt::init @ include/qp.hpp:120:10
1 3 1 1 0 0 1 0 1.0 QP::QHsm::getStateHandler @ src/qf/qep_hsm.cpp:610:21
4 21 14 2 2 1 1 0 0.2 QP::QMsm::childStateObj @ src/qf/qep_msm.cpp:408:23
1 4 1 1 0 0 1 0 0.3 QP::QMsm::getStateHandler @ src/qf/qep_msm.cpp:432:21
1 5 1 1 0 1 1 0 0.2 QP::QPSet::hasElement @ src/qf/qf_qact.cpp:234:13
1 5 1 1 1 0 1 0 0.4 QP::QPSet::findMax @ src/qf/qf_qact.cpp:273:26
1 4 1 1 0 0 1 0 0.4 QP::QPSet::isEmpty @ src/qf/qf_qact.cpp:214:13
1 4 1 1 0 0 1 0 0.4 QP::QPSet::notEmpty @ src/qf/qf_qact.cpp:224:13
1 3 1 1 0 0 1 0 0.7 QP::QMPool::getBlockSize @ src/qf/qf_mem.cpp:269:20
1 4 1 1 0 0 1 0 0.7 QP::QMPool::getMin @ src/qf/qf_mem.cpp:263:23
1 4 1 1 0 0 1 0 0.7 QP::QMPool::getUse @ src/qf/qf_mem.cpp:251:23
1 4 1 1 0 0 1 0 0.7 QP::QMPool::getFree @ src/qf/qf_mem.cpp:257:23
7 39 13 1 4 1 0 0 0.4 QP::QActive::unsubscribe @ src/qf/qf_ps.cpp:216:15
3 15 8 2 2 2 1 0 0.4 QP::QActive::flushDeferred @ src/qf/qf_defer.cpp:135:24
8 45 18 2 5 0 0 0 0.3 QP::QActive::unsubscribeAll @ src/qf/qf_ps.cpp:245:15
1 4 1 1 1 0 1 0 0.3 QP::QActive::getStateHandler @ src/qf/qf_qact.cpp:165:24
4 21 17 2 1 2 1 0 0.4 QP::QActive::defer @ src/qf/qf_defer.cpp:48:15
1 3 1 1 0 0 1 0 0.3 QP::QActive::getPrio @ include/qp.hpp:571:18
7 39 13 1 4 1 0 0 0.5 QP::QActive::subscribe @ src/qf/qf_ps.cpp:185:15
1 3 1 1 0 0 1 0 0.7 QP::QEQueue::getMin @ src/qf/qf_qeq.cpp:303:24
2 9 4 1 0 0 1 0 0.3 QP::QEQueue::getUse @ src/qf/qf_qeq.cpp:285:24
1 3 1 1 0 0 1 0 0.7 QP::QEQueue::getFree @ src/qf/qf_qeq.cpp:297:24
1 3 1 1 0 0 1 0 0.7 QP::QEQueue::isEmpty @ src/qf/qf_qeq.cpp:309:15
1 4 1 1 1 1 1 0 0.2 QP::QMActive::childStateObj @ src/qf/qf_qmact.cpp:79:27
1 4 1 1 1 0 1 0 0.3 QP::QMActive::getStateHandler @ src/qf/qf_qmact.cpp:85:25
1 3 1 1 0 0 1 0 0.3 QP::QTimeEvt::getInterval @ include/qp.hpp:694:17
1 3 1 1 0 0 1 0 0.3 QP::QTimeEvt::getTickRate @ include/qp.hpp:697:18
1 3 1 1 0 0 1 0 0.3 QP::QTimeEvt::getCtr @ include/qp.hpp:691:17
1 3 0 0 0 0 0 0 0.5 QP::QActive::getThread @ include/qp.hpp:582:33
1 3 0 0 0 0 0 0 0.5 QP::QTimeEvt::getAct @ include/qp.hpp:688:18
1 3 1 1 0 0 1 0 0.3 QP::QActive::getThread @ include/qp.hpp:578:33
1 3 1 1 0 0 1 0 0.7 QP::QEQueue::peekFront @ src/qf/qf_qeq.cpp:315:22
1 3 1 1 0 0 1 0 0.3 QP::QTimeEvt::getAct @ include/qp.hpp:684:18
1 3 0 0 0 0 0 0 0.5 QP::QEQueue::peekFront @ include/qequeue.hpp:72:17
6 37 17 2 11 0 0 0 0.5 QP::QF::run @ src/qv/qv.cpp:109:7
1 3 1 1 1 0 0 0 0.2 QP::QF::init @ src/qv/qv.cpp:96:6
1 2 1 1 1 0 0 0 0.7 QP::QF::stop @ src/qv/qv.cpp:103:6
3 13 8 2 2 0 0 0 0.2 QP::QV::schedEnable @ src/qv/qv.cpp:75:10
3 14 8 2 2 1 0 0 0.2 QP::QV::schedDisable @ src/qv/qv.cpp:56:10
3 16 12 1 6 6 0 0 0.4 QP::QActive::start @ src/qv/qv.cpp:212:15
3 16 8 1 6 0 0 0 0.4 QP::QF::run @ src/qk/qk.cpp:301:7
1 4 2 1 1 0 0 0 0.5 QP::QF::init @ src/qk/qk.cpp:287:6
1 2 1 1 1 0 0 0 0.7 QP::QF::stop @ src/qk/qk.cpp:296:6
5 25 11 2 4 2 1 0 0.4 QP::QK::sched_act_ @ src/qk/qk.cpp:142:23
6 31 12 2 6 1 0 0 0.5 QP::QK::schedUnlock @ src/qk/qk.cpp:83:10
4 19 9 2 2 0 1 0 0.5 QP::QK::sched_ @ src/qk/qk.cpp:115:23
9 55 24 2 7 0 0 0 0.5 QP::QK::activate_ @ src/qk/qk.cpp:177:10
4 20 12 2 4 1 1 0 0.5 QP::QK::schedLock @ src/qk/qk.cpp:56:18
4 23 16 1 8 6 0 0 0.4 QP::QActive::start @ src/qk/qk.cpp:337:15
1 5 1 1 0 1 0 0 0.3 QP::QXK_contextSw_ @ src/qxk/qxk.cpp:145:6
4 20 8 1 4 2 0 0 0.2 QP::QXSemaphore::init @ src/qxk/qxk_sema.cpp:52:19
13 81 37 2 10 1 1 0 0.6 QP::QXSemaphore::wait @ src/qxk/qxk_sema.cpp:73:19
10 61 27 2 11 0 1 0 0.4 QP::QXSemaphore::signal @ src/qxk/qxk_sema.cpp:186:19
5 27 16 2 3 0 1 0 0.3 QP::QXSemaphore::tryWait @ src/qxk/qxk_sema.cpp:152:19
3 16 12 1 7 0 0 0 0.4 QP::QF::run @ src/qxk/qxk.cpp:376:7
1 5 5 1 1 0 0 0 0.7 QP::QF::init @ src/qxk/qxk.cpp:356:6
1 2 1 1 1 0 0 0 0.7 QP::QF::stop @ src/qxk/qxk.cpp:370:6
6 32 14 2 6 1 0 0 0.5 QP::QXK::schedUnlock @ src/qxk/qxk.cpp:87:11
4 21 11 1 6 0 0 0 0.3 QP::QXK::threadExit_ @ src/qxk/qxk.cpp:327:11
1 3 1 1 0 1 1 0 0.3 QP::QXK::qmstate_cast_ @ include/qxk.hpp:66:28
9 49 23 2 5 0 1 0 0.4 QP::QXK::sched_ @ src/qxk/qxk.cpp:174:24
3 14 8 1 3 0 1 0 0.2 QP::QXK::current @ src/qxk/qxk.cpp:121:16
13 80 36 3 12 0 0 0 0.5 QP::QXK::activate_ @ src/qxk/qxk.cpp:222:11
5 27 14 2 5 1 1 0 0.3 QP::QXK::schedLock @ src/qxk/qxk.cpp:53:19
7 41 18 1 8 6 0 0 0.5 QP::QActive::start @ src/qxk/qxk.cpp:414:15
8 47 19 1 6 0 0 0 0.7 QP::QXMutex::relOneThr_ @ src/qxk/qxk_mutex.cpp:338:15
2 10 8 1 4 1 0 0 0.4 QP::QXMutex::init @ src/qxk/qxk_mutex.cpp:57:15
11 69 31 2 11 1 1 0 0.5 QP::QXMutex::lock @ src/qxk/qxk_mutex.cpp:158:15
12 73 32 2 9 0 0 0 0.5 QP::QXMutex::unlock @ src/qxk/qxk_mutex.cpp:260:15
14 86 29 2 3 1 1 0 0.7 QP::QXMutex::tryAcq_ @ src/qxk/qxk_mutex.cpp:75:15
6 34 13 2 4 0 1 0 0.4 QP::QXMutex::tryLock @ src/qxk/qxk_mutex.cpp:228:15
1 2 0 0 0 0 0 0 0.3 QP::QXMutex::QXMutex @ src/qxk/qxk_mutex.cpp:52:10
2 9 8 1 5 0 1 0 0.4 QP::QXThread::delayCancel @ src/qxk/qxk_xthr.cpp:125:16
1 4 3 1 1 2 0 0 0.2 QP::QXThread::init @ src/qxk/qxk_xthr.cpp:63:16
2 7 1 1 1 1 0 0 0.3 QP::QXThread::init @ include/qxk.hpp:89:10
7 40 18 1 7 1 1 0 0.5 QP::QXThread::delay @ src/qxk/qxk_xthr.cpp:79:16
6 35 19 1 8 6 0 0 0.4 QP::QXThread::start @ src/qxk/qxk_xthr.cpp:326:16
5 27 11 2 1 2 0 0 0.7 QP::QXThread::teArm_ @ src/qxk/qxk_xthr.cpp:272:16
1 4 3 1 1 2 0 0 0.2 QP::QXThread::dispatch @ src/qxk/qxk_xthr.cpp:71:16
13 83 42 2 8 1 1 0 0.5 QP::QXThread::queueGet @ src/qxk/qxk_xthr.cpp:142:24
1 4 2 1 1 1 0 0 1.0 QP::QXThread::timeout_ @ src/qxk/qxk_xthr.cpp:260:16
2 8 5 1 0 0 1 0 0.5 QP::QXThread::teDisarm_ @ src/qxk/qxk_xthr.cpp:313:16
1 5 1 1 0 2 0 0 0.3 QP::QXThread::QXThread @ src/qxk/qxk_xthr.cpp:54:11
2 9 3 1 3 0 0 0 0.5 QP::QXThread::block_ @ src/qxk/qxk_xthr.cpp:236:16
2 9 3 1 3 0 0 0 0.5 QP::QXThread::unblock_ @ src/qxk/qxk_xthr.cpp:249:16
1 3 0 0 0 0 0 0 0.5 QP::QActive::getOsObject @ include/qp.hpp:595:33
1 3 0 0 0 0 0 0 0.5 QP::QXThread::getTimeEvt @ include/qxk.hpp:106:22
1 3 1 1 0 0 1 0 0.3 QP::QActive::getOsObject @ include/qp.hpp:591:33
1 3 1 1 0 0 1 0 0.3 QP::QXThread::getTimeEvt @ include/qxk.hpp:102:22
13 75 29 2 1 0 1 0 0.3 QP::monthNum @ src/qs/qs.cpp:841:21
5 29 21 3 1 1 1 0 0.2 (anonymous namespace)::rxParseCmd_ @ src/qs/qs_rx.cpp:572:13
12 74 46 4 5 1 1 0 0.3 (anonymous namespace)::rxParseEvt_ @ src/qs/qs_rx.cpp:759:13
5 27 19 2 1 1 1 0 0.2 (anonymous namespace)::rxParseObj_ @ src/qs/qs_rx.cpp:645:13
15 89 41 3 3 1 1 0 0.2 (anonymous namespace)::rxParsePPF_ @ src/qs/qs_rx.cpp:676:13
15 95 31 2 2 1 0 0 0.2 (anonymous namespace)::rxParseRec_ @ src/qs/qs_rx.cpp:443:13
3 16 9 1 4 1 1 0 0.4 (anonymous namespace)::queryCurrAO_ @ src/qs/qs_rx.cpp:1522:13
3 16 9 2 5 1 1 0 0.3 (anonymous namespace)::queryCurrEP_ @ src/qs/qs_rx.cpp:1541:13
7 33 3 2 8 1 0 0 0.6 (anonymous namespace)::rxParseData_ @ src/qs/qs_rx.cpp:409:13
11 61 25 3 3 1 1 0 0.2 (anonymous namespace)::rxParseMisc_ @ src/qs/qs_rx.cpp:531:13
1 4 7 1 5 1 0 0 0.2 (anonymous namespace)::rxReportAck_ @ src/qs/qs_rx.cpp:1560:13
15 95 40 2 16 1 0 0 0.2 (anonymous namespace)::queryCurrObj_ @ src/qs/qs_rx.cpp:1362:13
1 5 8 1 7 1 0 0 0.3 (anonymous namespace)::rxReportDone_ @ src/qs/qs_rx.cpp:1580:13
6 33 20 3 2 1 1 0 0.2 (anonymous namespace)::rxParseFilter_ @ src/qs/qs_rx.cpp:606:13
1 5 7 1 5 1 0 0 0.2 (anonymous namespace)::rxReportError_ @ src/qs/qs_rx.cpp:1570:13
9 51 42 2 9 2 0 0 0.6 (anonymous namespace)::queryCurrObjOut_ @ src/qs/qs_rx.cpp:1465:13
1 5 3 1 3 0 0 0 0.2 (anonymous namespace)::rxHandleGoodCmd_ @ src/qs/qs_rx.cpp:1037:13
15 90 28 2 8 0 0 0 0.4 (anonymous namespace)::rxHandleGoodEvt_ @ src/qs/qs_rx.cpp:1221:13
8 44 15 2 6 0 0 0 0.2 (anonymous namespace)::rxHandleGoodObj_ @ src/qs/qs_rx.cpp:1179:13
12 71 36 3 10 0 0 0 0.3 (anonymous namespace)::rxHandleGoodPPF_ @ src/qs/qs_rx.cpp:1051:13
3 16 11 2 5 1 0 0 0.2 (anonymous namespace)::rxHandleBadFrame_ @ src/qs/qs_rx.cpp:1340:13
1 4 4 1 3 0 0 0 0.3 (anonymous namespace)::rxHandleGoodInfo_ @ src/qs/qs_rx.cpp:1007:13
1 5 3 1 3 0 0 0 0.2 (anonymous namespace)::rxHandleGoodTick_ @ src/qs/qs_rx.cpp:1016:13
13 78 35 3 10 1 0 0 0.2 (anonymous namespace)::rxHandleGoodFrame_ @ src/qs/qs_rx.cpp:927:13
5 29 14 2 2 0 0 0 0.3 (anonymous namespace)::rxHandleGoodFilter_ @ src/qs/qs_rx.cpp:1130:13
1 4 1 1 0 1 0 0 0.3 (anonymous namespace)::tran_ @ src/qs/qs_rx.cpp:403:13
4 21 14 2 1 0 0 0 0.3 (anonymous namespace)::rxPoke_ @ src/qs/qs_rx.cpp:850:13
1 4 2 1 0 1 1 0 0.3 QP::QS::force_cast @ include/qs.hpp:567:18
8 39 8 2 0 1 1 0 0.4 QP::QS::getCurrObj @ src/qs/qs_rx.cpp:346:11
6 39 27 2 3 1 0 0 0.4 QP::QS::glbFilter_ @ src/qs/qs.cpp:151:10
7 42 28 2 3 1 0 0 0.2 QP::QS::locFilter_ @ src/qs/qs.cpp:220:10
1 4 3 1 1 1 0 0 0.6 QP::QS::rxParseBuf @ src/qs/qs_rx.cpp:282:10
8 42 11 2 0 2 1 0 0.3 QP::QS::setCurrObj @ src/qs/qs_rx.cpp:325:10
2 10 8 1 7 2 0 0 0.4 QP::QS::fun_dict_pre_ @ src/qs/qs.cpp:703:10
1 4 5 1 5 2 0 0 0.2 QP::QS::isr_exit_pre_ @ src/qs/qs.cpp:827:10
2 10 8 1 7 2 0 0 0.4 QP::QS::obj_dict_pre_ @ src/qs/qs.cpp:601:10
2 10 9 1 8 3 0 0 0.3 QP::QS::sig_dict_pre_ @ src/qs/qs.cpp:578:10
1 5 8 1 7 2 0 0 0.5 QP::QS::usr_dict_pre_ @ src/qs/qs.cpp:723:10
3 16 10 1 8 3 0 0 0.2 QP::QS::assertion_pre_ @ src/qs/qs.cpp:770:10
1 4 5 1 5 0 0 0 0.3 QP::QS::crit_exit_pre_ @ src/qs/qs.cpp:803:10
1 5 8 1 7 3 0 0 0.3 QP::QS::enum_dict_pre_ @ src/qs/qs.cpp:742:10
1 4 5 1 5 2 0 0 0.2 QP::QS::isr_entry_pre_ @ src/qs/qs.cpp:814:10
1 4 5 1 5 0 0 0 0.3 QP::QS::crit_entry_pre_ @ src/qs/qs.cpp:793:10
5 31 26 1 5 1 0 0 0.3 QP::QS::target_info_pre_ @ src/qs/qs.cpp:870:10
11 65 40 2 8 3 0 0 0.3 QP::QS::obj_arr_dict_pre_ @ src/qs/qs.cpp:622:10
3 15 9 1 0 1 1 0 0.6 QP::QS::rxPut @ src/qs/qs_rx.cpp:288:10
8 43 28 2 0 0 0 0 0.4 QP::QS::endRec_ @ src/qs/qs.cpp:299:10
3 15 11 2 0 0 1 0 0.7 QP::QS::getByte @ src/qs/qs.cpp:65:19
1 5 7 1 5 2 0 0 0.4 QP::QS::initBuf @ src/qs/qs.cpp:44:10
7 38 24 3 5 0 0 0 0.5 QP::QS::rxParse @ src/qs/qs_rx.cpp:237:10
7 34 27 2 0 2 0 0 0.8 QP::QS::u8_fmt_ @ src/qs/qs.cpp:437:10
6 27 22 2 0 1 0 0 0.7 QP::QS::u8_raw_ @ src/qs/qs.cpp:331:10
8 44 31 2 0 2 0 0 0.7 QP::QS::f32_fmt_ @ src/qs/qs_fp.cpp:38:10
15 86 52 2 0 2 0 0 0.4 QP::QS::f64_fmt_ @ src/qs/qs_fp.cpp:72:10
5 25 20 2 0 1 1 0 0.4 QP::QS::getBlock @ src/qs/qs.cpp:85:26
13 67 45 2 0 2 0 0 0.6 QP::QS::mem_fmt_ @ src/qs/qs.cpp:548:10
1 5 2 1 1 1 0 0 0.4 QP::QS::obj_raw_ @ src/qs/qs.cpp:399:10
5 25 27 1 0 1 0 0 0.7 QP::QS::str_fmt_ @ src/qs/qs.cpp:518:10
4 20 22 1 0 1 0 0 0.6 QP::QS::str_raw_ @ src/qs/qs.cpp:414:10
12 61 44 2 0 2 0 0 0.7 QP::QS::u16_fmt_ @ src/qs/qs.cpp:461:10
11 53 39 2 0 1 0 0 0.5 QP::QS::u16_raw_ @ src/qs/qs.cpp:363:10
8 42 30 2 0 2 0 0 0.7 QP::QS::u32_fmt_ @ src/qs/qs.cpp:488:10
7 36 25 2 0 1 0 0 0.5 QP::QS::u32_raw_ @ src/qs/qs.cpp:381:10
12 63 41 2 0 2 0 0 0.3 QP::QS::u64_fmt_ @ src/qs/qs_64bit.cpp:56:10
7 36 26 2 0 1 0 0 0.2 QP::QS::u64_raw_ @ src/qs/qs_64bit.cpp:38:10
7 35 29 2 0 1 0 0 0.6 QP::QS::beginRec_ @ src/qs/qs.cpp:279:10
2 10 1 1 0 3 1 0 0.2 QP::QS::fltCheck_ @ src/qs/qs.cpp:127:10
3 14 8 2 0 1 1 0 0.3 QP::QS::getCurrId @ src/qs/qs_rx.cpp:382:18
1 4 1 1 0 2 1 0 0.2 QP::QS::glbCheck_ @ src/qs/qs.cpp:138:10
1 5 1 1 0 1 1 0 0.2 QP::QS::locCheck_ @ src/qs/qs.cpp:145:10
3 14 8 2 0 0 1 0 0.3 QP::QS::rxGetFree @ src/qs/qs_rx.cpp:305:19
1 5 7 1 5 2 0 0 0.3 QP::QS::rxInitBuf @ src/qs/qs_rx.cpp:215:10
3 15 10 2 0 2 1 0 0.2 QP::QS::setCurrId @ src/qs/qs_rx.cpp:362:10
11 51 37 2 0 2 0 0 0.5 QP::QS::u8u8_raw_ @ src/qs/qs.cpp:345:10
1 4 2 1 0 1 1 0 0.2 QP::QAsm::qm_exit @ include/qp.hpp:284:12
1 4 2 1 0 1 1 0 0.2 QP::QAsm::qm_entry @ include/qp.hpp:270:12
1 3 1 1 0 0 1 0 0.3 QP::QSpyId::getPrio @ include/qs.hpp:224:23

File Metrics

This section contains the file metrics measured by the PC-Lint-Plus (v2025) static analysis tool. The metrics were collected for most source and header files in the QP/C++ distribution, including the QP/Spy software tracing component (typically inactive in the Release build configuration).

HIS Metric PCLP Metrics Description (from PCLP Manual)
LINES num_lines The number of lines in a file prior to preprocessing.
CODE num_code_lines The number of code lines in a file prior to preprocessing.
COMMENT num_comment_lines The number of comment lines in a file prior to preprocessing.
INCL num_include_directives The number of lines with the grammatical form of an include directive written within a file prior to preprocessing. This includes directives within conditionally disabled regions.
LINES CODE COMMENT INCL File
----------------------------------------
99 56 36 0 qpcpp/include/qequeue.hpp
113 59 41 0 qpcpp/include/qk.hpp
110 68 35 0 qpcpp/include/qmpool.hpp
947 692 183 0 qpcpp/include/qp.hpp
95 39 46 0 qpcpp/include/qp_pkg.hpp
771 554 204 0 qpcpp/include/qs.hpp
115 72 33 0 qpcpp/include/qs_dummy.hpp
184 130 55 0 qpcpp/include/qs_pkg.hpp
37 7 30 0 qpcpp/include/qstamp.hpp
83 32 41 0 qpcpp/include/qv.hpp
240 154 57 0 qpcpp/include/qxk.hpp
616 391 238 6 qpcpp/src/qf/qep_hsm.cpp
437 302 132 6 qpcpp/src/qf/qep_msm.cpp
91 40 58 6 qpcpp/src/qf/qf_act.cpp
495 324 197 6 qpcpp/src/qf/qf_actq.cpp
156 95 81 6 qpcpp/src/qf/qf_defer.cpp
408 246 132 6 qpcpp/src/qf/qf_dyn.cpp
284 164 137 6 qpcpp/src/qf/qf_mem.cpp
287 150 107 6 qpcpp/src/qf/qf_ps.cpp
284 188 111 6 qpcpp/src/qf/qf_qact.cpp
321 217 154 6 qpcpp/src/qf/qf_qeq.cpp
90 42 55 6 qpcpp/src/qf/qf_qmact.cpp
428 266 173 6 qpcpp/src/qf/qf_time.cpp
374 220 148 6 qpcpp/src/qk/qk.cpp
938 654 342 4 qpcpp/src/qs/qs.cpp
84 39 44 2 qpcpp/src/qs/qs_64bit.cpp
119 60 64 2 qpcpp/src/qs/qs_fp.cpp
1593 1347 440 5 qpcpp/src/qs/qs_rx.cpp
33 5 28 1 qpcpp/src/qs/qstamp.cpp
590 391 198 5 qpcpp/src/qs/qutest.cpp
241 143 99 6 qpcpp/src/qv/qv.cpp
458 284 165 6 qpcpp/src/qxk/qxk.cpp
387 214 156 6 qpcpp/src/qxk/qxk_mutex.cpp
245 143 101 6 qpcpp/src/qxk/qxk_sema.cpp
374 195 143 6 qpcpp/src/qxk/qxk_xthr.cpp
130 65 52 7 qpcpp/static-analysis/pclp/qk/qp_port.hpp
196 14 157 0 qpcpp/static-analysis/pclp/qp_config.hpp
106 45 50 7 qpcpp/static-analysis/pclp/qv/qp_port.hpp
49 9 38 2 qpcpp/static-analysis/pclp/qv/qs_port.hpp
134 66 53 7 qpcpp/static-analysis/pclp/qxk/qp_port.hpp

About this Document