在VS .NET 2003中识别线程

时间:2009-12-09 09:32:31

标签: c visual-studio pthreads

我正在使用Visual Studio.NET 2003将Linux程序转换为Windows程序。代码是使用pthread编写的。

我有一个First-chance exception at 0x100084c8 in project.exe: 0xC0000005: Access violation reading location 0x000001dc错误导致我的程序崩溃,但是一个线程has exited with code 0 (0x0).一个线程(0xfe4)退出,代码为-1073741819(0xc0000005)。我读到如果线程退出代码0,那么一切都很好。我猜测一个没有导致错误的线程,特别是相同的代码0xC0000005出现了。

由于有一组线程执行不同的任务,我希望找到未正确退出的线程,以便调试程序。有没有办法识别它是哪个线程,比如使用(0xfe4)值?

2 个答案:

答案 0 :(得分:1)

转到菜单中的Debug-> Windows->主题。

您还可以转到Debug-> Exceptions ...然后打开Win32 Exceptions子树并单击“c0000005访问冲突”旁边的文本框,它将在违规发生时中断。

答案 1 :(得分:0)

我发现命名线程以便在调试器中更容易区分它们很有用: 创建新线程(使用Thread类)时,可以设置Name属性。在Visual Studio中进行调试时,将显示此名称。