运行程序的时候,经常出现莫名的crash,由于程序中使用了多线程来实
现功能,所以在调试状态不能找到问题所在。在程序中增加一些打印信
息也没有找到什么有用的信息。只有对现在的代码进行code review,结
果在一个函数中发现下面一个代码
void XXX()
{
static char s_szName[MAX_PATH];
...
}
s_szName是用来保存文件名,由于程序中使用了多线程来实现功能,所以在线程1调用XXX函数的时候,线程2也可能调用XXX,所以对于s_szName没有办法正确的处理。
对于多线程程序,要慎重static。