首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > VxWorks >

tNet0任务page fault解决方案

2012-04-10 
tNet0任务page fault最近的一个项目,程序在刚上电后能跑的好好的,但是运行几个小时后,就会出问题,ping不通

tNet0任务page fault
最近的一个项目,程序在刚上电后能跑的好好的,但是运行几个小时后,就会出问题,ping不通,整个网络挂掉了。现在已经知道故障原因是tNet0任务出现了page fault 错误,但是如何去定位错误的原因呢?请高手们指点?

[解决办法]
这种问题,确实比较烦,一般只能通过写日志的形式,来定位问题。看一下执行了哪些代码后,系统崩溃!
调试时少用printf,多用logMsg代替!

给一段写文件的简单代码, 和printf用法一样。


#define EXPRINT ExPrintf
extern void ExPrintf(char *pszStr, ...);



long g_lCounter = 0;
/************************************************************************/
/* Function : 此函数为EXPRINT的增加版本,可通过宏来控制是否在屏幕上打印输出
/* Input : 其输入参数为 变参
/* Author : qcj_21
/* Date : 2007-11-26 12:09
/************************************************************************/
void ExPrintf(char *pszStr, ...)
{
  
char szTemp[1024] = {0};
char szLog[512] = {0};
va_list list;
long nRet = 0;
int nLen = 0;
char *FileName = "/bd0/QCJLog.txt";
FILE *pf1 = NULL;
  
pf1 = fopen(FileName, "a+");
if(NULL == pf1)
return ;
va_start (list, pszStr); 
nRet = vsprintf (szTemp, pszStr, list);
/*assert (nRet < MAX_LEN); */
//printf("%s", szTemp); logMsg()
va_end (list);
  
g_lCounter++;
sprintf(szLog, "%d: %s\r\n", g_lCounter, szTemp);
nLen = strlen(szLog);
fwrite(szLog, 1, nLen, pf1);
fclose(pf1);

}

热点排行