【发布时间】:2010-11-19 15:53:39
【问题描述】:
我有这种极其奇怪的行为:
在下面的代码中:如果我注释对 MyLogger 的调用,那么一切正常,即我得到了 sTempNr 标记并打印了 4 个标记。 但是,如果我取消注释对 MyLogger 进行日志记录的调用,那么只会发生一次迭代,并且在其他具有类似代码的测试类中,会发生 4 次以上的循环,并将冗余信息发送到 MyLogger。
因此,我使用 Purify 工具检查了 MyLogger 中是否存在一些内存问题。 找不到。 MyLogger 使用 vaargs 来提取 args 和 vfprintf 调用来打印。
我不确定如何进一步调试此代码。任何指导将不胜感激!。
char sTempNr[41] = "1129Z13589.2.9.10";
char *sTempStr;
sTempStr = NULL;
sTempStr = strtok(sTempNr,".");
while (sTempStr)
{
printf("in in TempStr[%s]\n",sTempStr);
//MyLogger("write","","Temp String[%s]",sTempStr);
sTempStr = strtok(NULL,".");
}
【问题讨论】: