📄 qspy.cpp
字号:
} break; } case QS_SIG_T: { u = getUint(l_sigSize); uint32_t o = getUint(l_objPtrSize); sprintf(l_line, "%s,Obj=%s ", l_sigDict.get(u, o), l_objDict.get(o)); print(); if (l_matFile != (FILE *)0) { fprintf(l_matFile, "%04u %10u ", u, o); } break; } case QS_OBJ_T: { u = getUint(l_objPtrSize); sprintf(l_line, "%s ", l_objDict.get(u)); print(); if (l_matFile != (FILE *)0) { fprintf(l_matFile, "%10u ", u); } break; } case QS_FUN_T: { u = getUint(l_funPtrSize); sprintf(l_line, "%s ", l_funDict.get(u)); print(); if (l_matFile != (FILE *)0) { fprintf(l_matFile, "%10u ", u); } break; } default: { sprintf(l_line, "Unknown format\n"); print(); m_len = -1; break; } } } sprintf(l_line, "\n"); print(); if (l_matFile != (FILE *)0) { fprintf(l_matFile, "\n"); }}//............................................................................void QSpyRecord::parse(void) { uint32_t t, a, b, c, d, e; char const *s; switch (m_rec) { // QEP records ....................................................... case QS_QEP_STATE_ENTRY: { a = getUint(l_objPtrSize); b = getUint(l_funPtrSize); if (OK()) { sprintf(l_line, " Q_ENTRY: " "Obj=%s State=%s\n", l_objDict.get(a), l_funDict.get(b)); print(); if (l_matFile != (FILE *)0) { fprintf(l_matFile, "%3d %10u %10u\n", m_rec, a, b); } } break; } case QS_QEP_STATE_EXIT: { a = getUint(l_objPtrSize); b = getUint(l_funPtrSize); if (OK()) { sprintf(l_line, " Q_EXIT : " "Obj=%s State=%s\n", l_objDict.get(a), l_funDict.get(b)); print(); if (l_matFile != (FILE *)0) { fprintf(l_matFile, "%3d %10u %10u\n", m_rec, a, b); } } break; } case QS_QEP_STATE_INIT: { a = getUint(l_objPtrSize); b = getUint(l_funPtrSize); c = getUint(l_funPtrSize); if (OK()) { sprintf(l_line, " Q_INIT : " "Obj=%s Source=%s Target=%s\n", l_objDict.get(a), l_funDict.get(b), l_funDict.get(c)); print(); if (l_matFile != (FILE *)0) { fprintf(l_matFile, "%3d %10u %10u %10u\n", m_rec, a, b, c); } } break; } case QS_QEP_INIT_TRAN: { t = getUint(l_tstampSize); a = getUint(l_objPtrSize); b = getUint(l_funPtrSize); if (OK()) { sprintf(l_line, "%010u ==>Init: " "Obj=%s New=%s\n", t, l_objDict.get(a), l_funDict.get(b)); print(); if (l_matFile != (FILE *)0) { fprintf(l_matFile, "%3d %10u %10u %10u\n", m_rec, t, a, b); } } break; } case QS_QEP_INTERN_TRAN: { t = getUint(l_tstampSize); a = getUint(l_sigSize); b = getUint(l_objPtrSize); c = getUint(l_funPtrSize); if (OK()) { sprintf(l_line, "%010u Intern : " "Obj=%s Sig=%s Source=%s\n", t, l_objDict.get(b), l_sigDict.get(a, b), l_funDict.get(c)); print(); if (l_matFile != (FILE *)0) { fprintf(l_matFile, "%3d %10u %4u %10u %10u\n", m_rec, t, a, b, c); } } break; } case QS_QEP_TRAN: { t = getUint(l_tstampSize); a = getUint(l_sigSize); b = getUint(l_objPtrSize); c = getUint(l_funPtrSize); d = getUint(l_funPtrSize); if (OK()) { sprintf(l_line, "%010u ==>Tran: " "Obj=%s Sig=%s Source=%s New=%s\n", t, l_objDict.get(b), l_sigDict.get(a, b), l_funDict.get(c), l_funDict.get(d)); print(); if (l_matFile != (FILE *)0) { fprintf(l_matFile, "%3d %10u %4u %10u %10u %10u\n", m_rec, t, a, b, c, d); } } break; } case QS_QEP_IGNORED: { t = getUint(l_tstampSize); a = getUint(l_sigSize); b = getUint(l_objPtrSize); c = getUint(l_funPtrSize); if (OK()) { sprintf(l_line, "%010u Ignored: " "Obj=%s Sig=%s Active=%s\n", t, l_objDict.get(b), l_sigDict.get(a, b), l_funDict.get(c)); print(); if (l_matFile != (FILE *)0) { fprintf(l_matFile, "%3d %10u %4u %10u %10u\n", m_rec, t, a, b, c); } } break; } // QF records ........................................................ case QS_QF_ACTIVE_ADD: case QS_QF_ACTIVE_REMOVE: { t = getUint(l_tstampSize); a = getUint(l_objPtrSize); b = getUint(1); if (OK()) { sprintf(l_line, "%010u AO.%s : " "Active=%s Prio=%2u\n", t, (m_rec == QS_QF_ACTIVE_ADD ? "ADD" : "REM"), l_objDict.get(a), b); print(); if (l_matFile != (FILE *)0) { fprintf(l_matFile, "%3d %10u %10u %2u\n", m_rec, t, a, b); } } break; } case QS_QF_ACTIVE_SUBSCRIBE: case QS_QF_ACTIVE_UNSUBSCRIBE: { t = getUint(l_tstampSize); a = getUint(l_sigSize); b = getUint(l_objPtrSize); if (OK()) { sprintf(l_line, "%010u AO.%s: " "Active=%s Sig=%s\n", t, (m_rec == QS_QF_ACTIVE_SUBSCRIBE ? "SUB " : "USUB"), l_objDict.get(b), l_sigDict.get(a, b)); print(); if (l_matFile != (FILE *)0) { fprintf(l_matFile, "%3d %10u %4u %10u\n", m_rec, t, a, b); } } break; } case QS_QF_ACTIVE_POST_FIFO: case QS_QF_ACTIVE_POST_LIFO: { t = getUint(l_tstampSize); a = getUint(l_sigSize); b = getUint(l_objPtrSize); c = getUint(1); d = getUint(l_queueCtrSize); e = getUint(l_queueCtrSize); if (OK()) { sprintf(l_line, "%010u AO.%cIFO: Obj=%s " "Evt(Sig=%s, Pool=%1u, Ref=%2u) " "Queue(nUsed=%3u, nMax=%3u)\n", t, (m_rec == QS_QF_ACTIVE_POST_FIFO ? 'F' : 'L'), l_objDict.get(b), l_sigDict.get(a, b), (uint32_t)(c >> 6), (uint32_t)(c & 0x3F), d, e); print(); if (l_matFile != (FILE *)0) { fprintf(l_matFile, "%3d %10u %4u %10u %3u %3u %4u %4u\n", m_rec, t, a, b, (uint32_t)(c >> 6), (uint32_t)(c & 0x3F), d, e); } } break; } case QS_QF_ACTIVE_GET: case QS_QF_EQUEUE_GET: { t = getUint(l_tstampSize); a = getUint(l_sigSize); b = getUint(l_objPtrSize); c = getUint(1); d = getUint(l_queueCtrSize); if (OK()) { sprintf(l_line, "%010u %s " "%s Evt(Sig=%s, Pool=%1u, Ref=%2u) " "Queue(nUsed=%3u)\n", t, (m_rec == QS_QF_ACTIVE_GET ? "AO.GET : Active=" : "EQ.GET : EQueue="), l_objDict.get(b), l_sigDict.get(a, b), (uint32_t)(c >> 6), (uint32_t)(c & 0x3F), d); print(); if (l_matFile != (FILE *)0) { fprintf(l_matFile, "%3d %10u %4u %10u %3u %3u %4u\n", m_rec, t, a, b, (uint32_t)(c >> 6), (uint32_t)(c & 0x3F), d); } } break; } case QS_QF_ACTIVE_GET_LAST: case QS_QF_EQUEUE_GET_LAST: { t = getUint(l_tstampSize); a = getUint(l_sigSize); b = getUint(l_objPtrSize); c = getUint(1); if (OK()) { sprintf(l_line, "%010u %s " "%s Evt(Sig=%s, Pool=%1u, Ref=%2u)\n", t, (m_rec == QS_QF_ACTIVE_GET_LAST ? "AO.GETL: Active=" : "EQ.GETL: EQueue="), l_objDict.get(b), l_sigDict.get(a, b), (uint32_t)(c >> 6), (uint32_t)(c & 0x3F)); print(); if (l_matFile != (FILE *)0) { fprintf(l_matFile, "%3d %10u %4u %10u %3u %3u\n", m_rec, t, a, b, (uint32_t)(c >> 6), (uint32_t)(c & 0x3F)); } } break; } case QS_QF_EQUEUE_INIT: { a = getUint(l_objPtrSize); b = getUint(l_queueCtrSize); if (OK()) { sprintf(l_line, " EQ.INIT: Obj=%s Len=%2u\n", l_objDict.get(a), b); print(); if (l_matFile != (FILE *)0) { fprintf(l_matFile, "%3d %10u %4u\n", m_rec, a, b); } } break; } case QS_QF_EQUEUE_POST_FIFO: case QS_QF_EQUEUE_POST_LIFO: { t = getUint(l_tstampSize); a = getUint(l_sigSize); b = getUint(l_objPtrSize); c = getUint(1); d = getUint(l_queueCtrSize); e = getUint(l_queueCtrSize); if (OK()) { sprintf(l_line, "%010u EQ.%cIFO: Obj=%s " "Evt(Sig=%s, Pool=%1u, Ref=%2u) " "Queue(nUsed=%3u, nMax=%3u)\n", t, (m_rec == QS_QF_EQUEUE_POST_FIFO ? 'F' : 'L'), l_objDict.get(b), l_sigDict.get(a, b), (uint32_t)(c >> 6), (uint32_t)(c & 0x3F), d, e); print(); if (l_matFile != (FILE *)0) { fprintf(l_matFile, "%3d %10u %4u %10u %3u %3u %4u %4u\n", m_rec, t, a, b, (uint32_t)(c >> 6), (uint32_t)(c & 0x3F), d, e); } } break; } case QS_QF_MPOOL_INIT: { a = getUint(l_objPtrSize); b = getUint(l_poolCtrSize); if (OK()) { sprintf(l_line, " MP.INIT: Obj=%s nBlocks=%4u\n", l_objDict.get(a), b); print(); if (l_matFile != (FILE *)0) { fprintf(l_matFile, "%3d %10u %4u\n", m_rec, a, b); } } break; } case QS_QF_MPOOL_GET: { t = getUint(l_tstampSize); a = getUint(l_objPtrSize); b = getUint(l_poolCtrSize); c = getUint(l_poolCtrSize); if (OK()) { sprintf(l_line, "%010u MP.GET : Obj=%s " "nFree=%4u nMin=%4u\n", t, l_objDict.get(a), b, c); print(); if (l_matFile != (FILE *)0) { fprintf(l_matFile, "%3d %10u %10u %4u %4u\n", m_rec, t, a, b, c); } } break; } case QS_QF_MPOOL_PUT: { t = getUint(l_tstampSize); a = getUint(l_objPtrSize); b = getUint(l_poolCtrSize); if (OK()) { sprintf(l_line, "%010u MP.PUT : Obj=%s " "nFree=%4u\n", t, l_objDict.get(a),
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -