⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qspy.cpp

📁 事件驱动程序设计很好的框架
💻 CPP
📖 第 1 页 / 共 3 页
字号:
                }                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 + -