在EnterCriticalSection中出现Crash
现象如下:
软件连续运行了大概2天多, 突然crash. 查看了下dump文件, 发现crash的地方是EnterCriticalSection.
刚开始觉得可能是没有初始化或者delete或者leave之类的问题, 但是检查了下code发现并问题. 之后看了下dump中的变量内容, 感觉很奇怪:
一共有3个临界区变量, 内容几乎全部为0, 包括debug info的指针和所有计数. 出问题的临界区变量里, 除了LockSemaphore之外所有成员都是0.
现在看来, 只有这3个临界区变量的值不太正确, 其他的变量似乎没什么异常.
后来才想可能是踩内存了, 不过怎么就恰好把这3个家伙踩了, 附近的变量(内存中前后的内容都没问题)没问题, 想不通.
各位有没有什么相关经验, 分享一下, 多谢了
[解决办法]
帮你顶下,之前也碰到过类似的一次CRITICAL_SECTION crash,
后来排查是cs在某个逻辑情况下被delete了,如果你可以排除这个原因的话,
那基本上是内存越界被覆盖了。
[解决办法]