首页
社区
课程
招聘
[原创]软件工程中的Bug调试机制.
发表于: 2013-7-3 00:08 3847

[原创]软件工程中的Bug调试机制.

2013-7-3 00:08
3847
一般调用API函数的时候会判断返回值,可这样要判断返回值,如果有隐形错误我们就要单步调试,要怎么办才不单步调试呢?想了个办法,请大家看下下面这段根据我的理论手写构造的一段代码(请自己修改为正确的代码).

//软件功能Bug调试器机制 By:邓韬
#include <stdio.h>
#include <windows.h>
//宏定义形式
#define isCallSuccessful(pFile,nLine,pFunc,nFuncRet,nCode){\
	if((unsigned long)nFuncRet!=(unsigned long)nCode){\
	printf("FILE:%s Line:%d Function:%s Error:%s",(char*)pFile,(unsigned long)nLine,(char*)pFunc,nFuncRet);\
	return FALSE;}\
	else{\
	return TRUE;}\
}
//函数形式,功能大概与上面一样.
void asynLogger::isCallFormat(const char *pMsgFmt,...)
{
	char pMsgBuffer[constants::kMaxMessageSize];
	va_list arglist;
	va_start(arglist, pMsgFmt);
	asynLogger::_saveMessageTime();
	asynLogger::_saveMessageLength(pMsgFmt,pMsgBuffer,vsnprintf(pMsgBuffer,sizeof(pMsgBuffer),pMsgFmt,arglist));
	asynLogger::_saveNewLine();
	va_end(arglist);
}
//--------------------------------------------------------------------
int main(int argv,char* argc[])
{
	if(isCallSuccessful(__FILE__,__FILE__,__FUNCTION__,MessageBoxA(NULL,"is ok?","debug",MB_YESNO),IDYES)==TRUE)
	{
		printf("function success!\n");
	}
	return EXIT_SUCCESS;
}

谢谢观看!

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 1689
活跃值: (379)
能力值: ( LV15,RANK:440 )
在线值:
发帖
回帖
粉丝
2
韬哥已经从汇编级升级到源码级了?
2013-7-3 06:31
0
游客
登录 | 注册 方可回帖
返回
//