线程过程中出现异常。。。

hlyces 2011-07-20 09:31:48
First-chance exception in MaterialMatch.exe (WS2_32.DLL): 0xC0000005: Access Violation.
First-chance exception in MaterialMatch.exe (WS2_32.DLL): 0xC0000005: Access Violation.
First-chance exception in MaterialMatch.exe (WS2_32.DLL): 0xC0000005: Access Violation.
The thread 0x288 has exited with code 0 (0x0).
...全文
138 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
hlyces 2011-07-21
  • 打赏
  • 举报
回复
下了也不行,windbg怎么用?
===========
chenjiawei007 2011-07-21
  • 打赏
  • 举报
回复
vs2005 platform sdk中就有了

想用自己下.h和Lib也行
hlyces 2011-07-21
  • 打赏
  • 举报
回复
Cannot open include file: 'DbgHelp.h': No such file or directory
chenjiawei007 2011-07-21
  • 打赏
  • 举报
回复
0xC0000005: Access Violation

基本上是访问了未初始化的指针,

请问你的线程是否是需要 开启关闭的,而在关闭的时候没有安全退出线程?

异常就别调试了,给你断dump代码,生成dump文件后,直接放入到你的运行目录,双击dump文件,F5就可以看到异常。

项目属性必须为 C/c++ -->程序数据库(生成Pdb文件)

在你的入口函数中加入下面这段代码变能生成dump文件


#include <DbgHelp.h>

#pragma comment( lib, "Dbghelp.lib" )
//回调
LONG __stdcall UnhandledExceptionFilterCall( __in struct _EXCEPTION_POINTERS *ExceptionInfo );

int _tmain(int argc, _TCHAR* argv[])
{

//dump
SetUnhandledExceptionFilter( UnhandledExceptionFilterCall );
}


LONG __stdcall UnhandledExceptionFilterCall( __in struct _EXCEPTION_POINTERS *ExceptionInfo )

{
//生成dump路径
HANDLE hDumpFile = CreateFile("D:\\DMS_Exception.dmp", GENERIC_WRITE, FILE_SHARE_WRITE,

NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);

if (hDumpFile != INVALID_HANDLE_VALUE)

{

_MINIDUMP_EXCEPTION_INFORMATION MinExcInfo;

MinExcInfo.ClientPointers = TRUE;

MinExcInfo.ExceptionPointers = ExceptionInfo;

MinExcInfo.ThreadId = GetCurrentThreadId();

MiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(), hDumpFile,

MiniDumpNormal, &MinExcInfo, NULL, NULL );

CloseHandle(hDumpFile);

}

return EXCEPTION_EXECUTE_HANDLER;

}



D:\\DMS_Exception.dmp 路径可以自己改
hlyces 2011-07-21
  • 打赏
  • 举报
回复
没人来指导下下。。。。。。。。。
hlyces 2011-07-20
  • 打赏
  • 举报
回复
烦。。。。。。。。。。不是自己写的代码。。。前人写的。。。。。。。。。。


我表示压力很大
oyljerry 2011-07-20
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 hlyces 的回复:]
socket?没连接会不会有错?
[/Quote]
自己多增加一些log来定位
hlyces 2011-07-20
  • 打赏
  • 举报
回复
socket?没连接会不会有错?
SEESEECN 2011-07-20
  • 打赏
  • 举报
回复
WS2_32.DLL出错
估计是关于socket的错误吧。可以重点检查下socket的关联操作
还没淹死的鱼 2011-07-20
  • 打赏
  • 举报
回复
socket函数调用错误,加日志跟踪吧
oyljerry 2011-07-20
  • 打赏
  • 举报
回复
检查一下指针等,看上去像指针越界等,最好产生dump文件,然后结合pdb,用windbg来定位你的代码问题
96掌门师兄 2011-07-20
  • 打赏
  • 举报
回复
每个windows程序其实真正的入口在 wWinMainCRTStartup()这个地方,然后再加载各种系统的动态,静态库,你找到这个文件所在的位置,打个断点跟进去,找到The thread 0x288 has exited with code 0 ,退出的原因, 个人觉得这种退出一般都是库的版本不兼容,比如c和C++的默认库混淆.
hlyces 2011-07-20
  • 打赏
  • 举报
回复
   	m_hKillEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
DWORD dwThreadID;
m_hThread = CreateThread(NULL, 0, ThreadProc, (LPVOID)this, 0, &dwThreadID);
SetThreadPriority( m_hThread , nPriority );


单步调试没法准确进入。。。threadproc....


怎么在创建线程后进入线程的函数调试。。。。。threadproc....


每次都不进入,直接去执行后面的操作了。。。

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧