首页  »   VC/MFC

msvcr100.dll!free (void* pBlock) Line 51,该怎么处理

网友分享于:2013-08-10  浏览:84次
msvcr100.dll!free (void* pBlock) Line 51
程序使用duilib库
使用std::vector
std::string
开发机:win7 旗舰版 64位
vs2010
本机运行稳定
release版在别的机器上,运行一会后会闪退。debug版稍微好点。
在别的机器上装了vs2010后,运行稳定。

闪退后,dump出来后,查看发现msvcr100.dll!free (void* pBlock) Line 51


困扰多日,求解救~~~~~~
Visual Studio 2010 Windows 7 String 64位 调试

------解决方案--------------------
release版在别的机器上,运行一会后会闪退。
没带依赖的运行库
------解决方案--------------------
Denpendency Walk 可以看到链接的依赖库,但不能看到LoadLibrary装载的动态库。
------解决方案--------------------
引用:
Denpendency Walk 可以看到链接的依赖库,但不能看到LoadLibrary装载的动态库。

Dependency Walk工具的exe名是  depends.exe
------解决方案--------------------
说明你的程序还是有BUG, 
Debug版本的 代码没有经过优化, 而且附加了很多断言, 申请的内存会被填充特殊字符等, 因此Debug版本的运行速度会比较低, 因此有些多线程的BUG表现的不那么明显,出问题的概率也低很多

最好是远程调试下, 开启调试器的所有异常捕捉 
------解决方案--------------------
dump后的callstack回溯查看
------解决方案--------------------
Release版本下dump,callstack可能会缺少符号信息,难以定位错误位置。

以前弄VC6时,参考过下面的资料解决了问题。
http://msdn.microsoft.com/en-us/library/aa260783(VS.60).aspx
Generating and Deploying Debug Symbols with Microsoft Visual C++ 6.0

------解决方案--------------------
调用堆栈框中打开调用参数值, 这样可以看到传递进去的是什么值

按堆栈和代码, 应该是局部的基于io_base的变量 可能是被多次释放或被异常修改

既然是宽字节的 就直接用 wstringstream

------解决方案--------------------
你这像是指针越界或者数组溢出,打log吧,先定位到函数~

相关解决方案

最新解决方案