一个方便Symbian上调试的断言工具

断言是一个用于发现程序错误的强大工具, 只可惜在手机开发中,打真机后断言由于无法定位而失去其强大的作用, 为方便调试特写了一份可用于真机,模拟器上的断言工具

代码如下:

 

/*
 * assert_debug.h
 *
 *  Created on: 2010-5-19
 *      Author: Huangdingwu
 *     
 *    功能:
 *        同时适用于真机与模拟器的断言debug工具     
 *
 *      需要在mmp中加入:
 *     
 *      SYSTEMINCLUDE                           /epoc32/include/libc
        SYSTEMINCLUDE                           /epoc32/include/libc/sys
        LIBRARY        estlib.lib
       
        使用方法:
       
            在需要使用断言的地方,请用 ASSERT_EX(X) 替换 ASSERT(x)
           
            需要清除断言产生的内容时用:
            ASSERT_Ex_CLEAR();
 */

#ifndef ASSERT_DEBUG_H_
#define ASSERT_DEBUG_H_
#include <libc/stdio.h>
#include <libc/string.h>

#define _DEBUG_OPEN_ 1

const char* const cLOG_FILE_PATH    = "c://assert_log.txt";

void _hdw_PrintLog_(const char* aCodeFileName,const char* aCodeStr,int aLineNumber)
{
    FILE* pFile = fopen(cLOG_FILE_PATH,"a+");
    if(pFile != NULL)
    {
        fwrite("[filename:]",strlen("[filename:]"),1,pFile);
        fwrite(aCodeFileName,strlen(aCodeFileName),1,pFile);
        fwrite("/r",strlen("/r"),1,pFile);
       
        fwrite("[code:]",strlen("[code:]"),1,pFile);
        fwrite(aCodeStr,strlen(aCodeStr),1,pFile);
        fwrite("/r",strlen("/r"),1,pFile);
       
        char szNumber[32];
        sprintf(szNumber,"[Line:]%05d/r/n",aLineNumber);
        fwrite(szNumber,strlen(szNumber),1,pFile);
        fclose(pFile);
    }
}

void  _hdw_Clear_()
{
    FILE* pFile = fopen(cLOG_FILE_PATH,"w+");
    fclose(pFile);
}

#ifdef _DEBUG_OPEN_
        #define ASSERT_EX(x) /
        if(!(x))/
        {/
            _hdw_PrintLog_(__FILE__,#x,__LINE__);/
            User::Invariant();/
        }/
       
#else
        #define ASSERT_EX(x)
#endif

#define ASSERT_Ex_CLEAR()    _hdw_Clear_()
       
#endif /* ASSERT_DEBUG_H_ */

 

 

使用的时候只要include头文件,并在需要使用断言的地方,请用 ASSERT_EX(X) 替换 ASSERT(x)

mmp里加上相关支持, 这样程序只要一报断言错误就可以去打开 c://assert_log.txt ,找到程序的错误了

 

在6110c上测试通过

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值