一个VC2005错误报告 [英] A VC2005 bug report

查看:69
本文介绍了一个VC2005错误报告的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我不知道还有哪些地方可以报告错误,所以也许有人来自微软

正在读这个小组


应用程序在库线程上崩溃。堆栈在下面(最近的

在顶部)。


我认为对于用于报告的功能来说,这是一个非常糟糕的想法。 />
分配内存的内存分配错误。


++ PLS


msvcr80d.dll!__ malloc_dbg()+ 0x1f bytes

msvcr80d.dll!__ calloc_dbg()+ 0x96 bytes

msvcr80d.dll!__ getptd_noexit()+ 0x3d bytes

msvcr80d.dll!__ errno( )+ 0x9字节

msvcr80d.dll!__ VCrtDbgReportA()+ 0x1bb字节

msvcr80d.dll!__ CrtDbgReportV()+ 0x20字节

msvcr80d。 dll!__ CrtDbgReport()+ 0x29字节

msvcr80d.dll!__ CrtCheckMemory()+ 0x2bb bytes

msvcr80d.dll!__ heap_alloc_dbg()+ 0x6d bytes

msvcr80d.dll!__ nh_malloc_dbg()+ 0x19字节

msvcr80d.dll!__ malloc_dbg()+ 0x1f bytes

msvcr80d.dll!__ calloc_dbg()+ 0x96 bytes

msvcr80d.dll!__ getptd_noexit()+ 0x3d bytes

msvcr80d.dll!__ errno()+ 0x9 bytes

msv cr80d.dll!__ VCrtDbgReportA()+ 0x1bb bytes

msvcr80d.dll!__ CrtDbgReportV()+ 0x20 bytes

msvcr80d.dll!__ CrtDbgReport()+ 0x29 bytes

msvcr80d.dll!__ CrtCheckMemory()+ 0x2bb bytes

msvcr80d.dll!__ heap_alloc_dbg()+ 0x6d bytes

msvcr80d.dll!__ nh_malloc_dbg()+ 0x19 bytes

msvcr80d.dll!__ malloc_dbg()+ 0x1f bytes

msvcr80d.dll!__ calloc_dbg()+ 0x96 bytes

msvcr80d.dll!__ getptd_noexit( )+ 0x3d字节

msvcr80d.dll!__ errno()+ 0x9字节

msvcr80d.dll!__ VCrtDbgReportA()+ 0x1bb字节

msvcr80d。 dll!__ CrtDbgReportV()+ 0x20字节

msvcr80d.dll!__ CrtDbgReport()+ 0x29字节

msvcr80d.dll!__ CrtCheckMemory()+ 0x2bb字节

msvcr80d.dll!__ heap_alloc_dbg()+ 0x6d bytes

msvcr80d.dll!__ nh_malloc_dbg()+ 0x19 bytes

msvcr80d.dll!__ malloc_dbg()+ 0x1f bytes

msvcr80d.dll!__ calloc_dbg()+ 0x96字节

msvcr80d .dll!__ getptd_noexit()+ 0x3d bytes

msvcr80d.dll!__ errno()+ 0x9 bytes

msvcr80d.dll!__ VCrtDbgReportA()+ 0x1bb bytes

msvcr80d.dll!__ CrtDbgReportV()+ 0x20字节

msvcr80d.dll!__ CrtDbgReport()+ 0x29字节

msvcr80d.dll!__ CrtCheckMemory()+ 0x2bb bytes

msvcr80d.dll!__ heap_alloc_dbg()+ 0x6d bytes

msvcr80d.dll!__ nh_malloc_dbg()+ 0x19 bytes

msvcr80d.dll!__ malloc_dbg() + 0x1f bytes

msvcr80d.dll!__ calloc_dbg()+ 0x96 bytes

msvcr80d.dll!__ getptd_noexit()+ 0x3d bytes

msvcr80d.dll !__ errno()+ 0x9 bytes

msvcr80d.dll!__ VCrtDbgReportA()+ 0x1bb bytes

msvcr80d.dll!__ CrtDbgReportV()+ 0x20 bytes

msvcr80d.dll!__ CrtDbgReport()+ 0x29字节

msvcr80d.dll!__ CrtCheckMemory()+ 0x2bb bytes

msvcr80d.dll!__ heap_alloc_dbg()+ 0x6d bytes

msvcr80d.dll!__ nh_malloc_dbg()+ 0x19字节

msvcr80d.dll!__ m alloc_dbg()+ 0x1f bytes

msvcr80d.dll!__ calloc_dbg()+ 0x96 bytes

msvcr80d.dll!__ getptd_noexit()+ 0x3d bytes

msvcr80d.dll!__ errno()+ 0x9 bytes

msvcr80d.dll!__ VCrtDbgReportA()+ 0x1bb bytes

msvcr80d.dll!__ CrtDbgReportV()+ 0x20 bytes

msvcr80d.dll!__ CrtDbgReport()+ 0x29字节

msvcr80d.dll!__ CrtCheckMemory()+ 0x2bb bytes

msvcr80d.dll!__ heap_alloc_dbg()+ 0x6d bytes

msvcr80d.dll!__ nh_malloc_dbg()+ 0x19 bytes

msvcr80d.dll!__ malloc_dbg()+ 0x1f bytes

msvcr80d.dll!__ calloc_dbg( )+ 0x96字节

msvcr80d.dll!__ getptd_noexit()+ 0x3d字节

msvcr80d.dll!__ errno()+ 0x9字节

msvcr80d。 dll!__ VCrtDbgReportA()+ 0x1bb bytes

msvcr80d.dll!__ CrtDbgReportV()+ 0x20 bytes

msvcr80d.dll!__ CrtDbgReport()+ 0x29 bytes

msvcr80d.dll!__ CrtCheckMemory()+ 0x2bb bytes

msvcr80d.dll!__ heap_alloc_dbg() + 0x6d bytes

msvcr80d.dll!__ nh_malloc_dbg()+ 0x19 bytes

msvcr80d.dll!__ malloc_dbg()+ 0x1f bytes

msvcr80d.dll !__ calloc_dbg()+ 0x96字节

msvcr80d.dll!__ getptd_noexit()+ 0x3d字节

msvcr80d.dll!__ errno()+ 0x9字节

msvcr80d.dll!__ VCrtDbgReportA()+ 0x1bb bytes

msvcr80d.dll!__ CrtDbgReportV()+ 0x20 bytes

msvcr80d.dll!__ CrtDbgReport()+ 0x29 bytes

msvcr80d.dll!__ CrtCheckMemory()+ 0x2bb bytes

msvcr80d.dll!__ heap_alloc_dbg()+ 0x6d bytes

msvcr80d.dll!__ nh_malloc_dbg()+ 0x19 bytes

msvcr80d.dll!__ malloc_dbg()+ 0x1f bytes

I don''t know where else to report bugs, so maybe someone from Microsoft
is reading this group

Application crashed on a library thread. The stack is below (most recent
at top).

I think is a *REALLY* bad idea for the function that is used to report
memory allocation errors to allocate memory.

++PLS

msvcr80d.dll!__malloc_dbg() + 0x1f bytes
msvcr80d.dll!__calloc_dbg() + 0x96 bytes
msvcr80d.dll!__getptd_noexit() + 0x3d bytes
msvcr80d.dll!__errno() + 0x9 bytes
msvcr80d.dll!__VCrtDbgReportA() + 0x1bb bytes
msvcr80d.dll!__CrtDbgReportV() + 0x20 bytes
msvcr80d.dll!__CrtDbgReport() + 0x29 bytes
msvcr80d.dll!__CrtCheckMemory() + 0x2bb bytes
msvcr80d.dll!__heap_alloc_dbg() + 0x6d bytes
msvcr80d.dll!__nh_malloc_dbg() + 0x19 bytes
msvcr80d.dll!__malloc_dbg() + 0x1f bytes
msvcr80d.dll!__calloc_dbg() + 0x96 bytes
msvcr80d.dll!__getptd_noexit() + 0x3d bytes
msvcr80d.dll!__errno() + 0x9 bytes
msvcr80d.dll!__VCrtDbgReportA() + 0x1bb bytes
msvcr80d.dll!__CrtDbgReportV() + 0x20 bytes
msvcr80d.dll!__CrtDbgReport() + 0x29 bytes
msvcr80d.dll!__CrtCheckMemory() + 0x2bb bytes
msvcr80d.dll!__heap_alloc_dbg() + 0x6d bytes
msvcr80d.dll!__nh_malloc_dbg() + 0x19 bytes
msvcr80d.dll!__malloc_dbg() + 0x1f bytes
msvcr80d.dll!__calloc_dbg() + 0x96 bytes
msvcr80d.dll!__getptd_noexit() + 0x3d bytes
msvcr80d.dll!__errno() + 0x9 bytes
msvcr80d.dll!__VCrtDbgReportA() + 0x1bb bytes
msvcr80d.dll!__CrtDbgReportV() + 0x20 bytes
msvcr80d.dll!__CrtDbgReport() + 0x29 bytes
msvcr80d.dll!__CrtCheckMemory() + 0x2bb bytes
msvcr80d.dll!__heap_alloc_dbg() + 0x6d bytes
msvcr80d.dll!__nh_malloc_dbg() + 0x19 bytes
msvcr80d.dll!__malloc_dbg() + 0x1f bytes
msvcr80d.dll!__calloc_dbg() + 0x96 bytes
msvcr80d.dll!__getptd_noexit() + 0x3d bytes
msvcr80d.dll!__errno() + 0x9 bytes
msvcr80d.dll!__VCrtDbgReportA() + 0x1bb bytes
msvcr80d.dll!__CrtDbgReportV() + 0x20 bytes
msvcr80d.dll!__CrtDbgReport() + 0x29 bytes
msvcr80d.dll!__CrtCheckMemory() + 0x2bb bytes
msvcr80d.dll!__heap_alloc_dbg() + 0x6d bytes
msvcr80d.dll!__nh_malloc_dbg() + 0x19 bytes
msvcr80d.dll!__malloc_dbg() + 0x1f bytes
msvcr80d.dll!__calloc_dbg() + 0x96 bytes
msvcr80d.dll!__getptd_noexit() + 0x3d bytes
msvcr80d.dll!__errno() + 0x9 bytes
msvcr80d.dll!__VCrtDbgReportA() + 0x1bb bytes
msvcr80d.dll!__CrtDbgReportV() + 0x20 bytes
msvcr80d.dll!__CrtDbgReport() + 0x29 bytes
msvcr80d.dll!__CrtCheckMemory() + 0x2bb bytes
msvcr80d.dll!__heap_alloc_dbg() + 0x6d bytes
msvcr80d.dll!__nh_malloc_dbg() + 0x19 bytes
msvcr80d.dll!__malloc_dbg() + 0x1f bytes
msvcr80d.dll!__calloc_dbg() + 0x96 bytes
msvcr80d.dll!__getptd_noexit() + 0x3d bytes
msvcr80d.dll!__errno() + 0x9 bytes
msvcr80d.dll!__VCrtDbgReportA() + 0x1bb bytes
msvcr80d.dll!__CrtDbgReportV() + 0x20 bytes
msvcr80d.dll!__CrtDbgReport() + 0x29 bytes
msvcr80d.dll!__CrtCheckMemory() + 0x2bb bytes
msvcr80d.dll!__heap_alloc_dbg() + 0x6d bytes
msvcr80d.dll!__nh_malloc_dbg() + 0x19 bytes
msvcr80d.dll!__malloc_dbg() + 0x1f bytes
msvcr80d.dll!__calloc_dbg() + 0x96 bytes
msvcr80d.dll!__getptd_noexit() + 0x3d bytes
msvcr80d.dll!__errno() + 0x9 bytes
msvcr80d.dll!__VCrtDbgReportA() + 0x1bb bytes
msvcr80d.dll!__CrtDbgReportV() + 0x20 bytes
msvcr80d.dll!__CrtDbgReport() + 0x29 bytes
msvcr80d.dll!__CrtCheckMemory() + 0x2bb bytes
msvcr80d.dll!__heap_alloc_dbg() + 0x6d bytes
msvcr80d.dll!__nh_malloc_dbg() + 0x19 bytes
msvcr80d.dll!__malloc_dbg() + 0x1f bytes
msvcr80d.dll!__calloc_dbg() + 0x96 bytes
msvcr80d.dll!__getptd_noexit() + 0x3d bytes
msvcr80d.dll!__errno() + 0x9 bytes
msvcr80d.dll!__VCrtDbgReportA() + 0x1bb bytes
msvcr80d.dll!__CrtDbgReportV() + 0x20 bytes
msvcr80d.dll!__CrtDbgReport() + 0x29 bytes
msvcr80d.dll!__CrtCheckMemory() + 0x2bb bytes
msvcr80d.dll!__heap_alloc_dbg() + 0x6d bytes
msvcr80d.dll!__nh_malloc_dbg() + 0x19 bytes
msvcr80d.dll!__malloc_dbg() + 0x1f bytes


> msvcr80d.dll!__ calloc_dbg()+ 0x96 bytes
> msvcr80d.dll!__calloc_dbg() + 0x96 bytes



msvcr80d.dll!__ getptd_noexit()+ 0x3d bytes

msvcr80d.dll!__ errno( )+ 0x9字节

msvcr80d.dll!__ VCrtDbgReportA()+ 0x1bb字节

msvcr80d.dll!__ CrtDbgReportV()+ 0x20字节

msvcr80d。 dll!__ CrtDbgReport()+ 0x29字节

msvcr80d.dll!__ CrtCheckMemory()+ 0x2bb字节

msvcr80d.dll!__ free_dbg_nolock()+ 0x22字节

msvcr80d.dll!__ free_dbg()+ 0x4e bytes

msvcr80d.dll!__ freefls @ 4()+ 0x1cf bytes

msvcr80d.dll!__ freeptd()+ 0x5d bytes

msvcr80d.dll!__ CRTDLL_INIT @ 12()+ 0x3c9 bytes

msvcr80d.dll!__ CRTDLL_INIT @ 12()+ 0x1f bytes

ntdll。 dll!_LdrpCallInitRoutine @ 16()+ 0x14 bytes

ntdll.dll!_LdrShutdownThread@0()+ 0xed bytes

kernel32.dll!_ExitThread@4()+ 0x3e bytes

kernel32.dll!_FreeLibraryAndExitThread@8()+ 0x1d bytes

ole32.dll!CRpcThreadCache :: Rpc WorkerThreadEntry()+ 0x34字节

kernel32.dll!_BaseThreadStart@8()+ 0x37字节

msvcr80d.dll!__getptd_noexit() + 0x3d bytes
msvcr80d.dll!__errno() + 0x9 bytes
msvcr80d.dll!__VCrtDbgReportA() + 0x1bb bytes
msvcr80d.dll!__CrtDbgReportV() + 0x20 bytes
msvcr80d.dll!__CrtDbgReport() + 0x29 bytes
msvcr80d.dll!__CrtCheckMemory() + 0x2bb bytes
msvcr80d.dll!__free_dbg_nolock() + 0x22 bytes
msvcr80d.dll!__free_dbg() + 0x4e bytes
msvcr80d.dll!__freefls@4() + 0x1cf bytes
msvcr80d.dll!__freeptd() + 0x5d bytes
msvcr80d.dll!__CRTDLL_INIT@12() + 0x3c9 bytes
msvcr80d.dll!__CRTDLL_INIT@12() + 0x1f bytes
ntdll.dll!_LdrpCallInitRoutine@16() + 0x14 bytes
ntdll.dll!_LdrShutdownThread@0() + 0xed bytes
kernel32.dll!_ExitThread@4() + 0x3e bytes
kernel32.dll!_FreeLibraryAndExitThread@8() + 0x1d bytes
ole32.dll!CRpcThreadCache::RpcWorkerThreadEntry() + 0x34 bytes
kernel32.dll!_BaseThreadStart@8() + 0x37 bytes

推荐答案



" PLS" < no **** @ nowhere.comwrote in message

news:MP ************************ @ msnews .microsoft.c om ...

"PLS" <no****@nowhere.comwrote in message
news:MP************************@msnews.microsoft.c om...

>我不知道还有哪些地方可以报告bug,所以也许有人来自微软

正在读这个小组


应用程序在库线程上崩溃了。堆栈在下面(最近的

在顶部)。


我认为对于用于报告的功能来说,这是一个非常糟糕的想法。 $>
分配内存的内存分配错误。

++ PLS
>I don''t know where else to report bugs, so maybe someone from Microsoft
is reading this group

Application crashed on a library thread. The stack is below (most recent
at top).

I think is a *REALLY* bad idea for the function that is used to report
memory allocation errors to allocate memory.

++PLS



< snip>


这里是如何报告您的问题:

http://msdn2.microsoft.com/en-us/lib...he(VS.80).aspx


" PLS" < no **** @ nowhere.comwrote in message

news:MP ************************ @ msnews .microsoft.c om ...
"PLS" <no****@nowhere.comwrote in message
news:MP************************@msnews.microsoft.c om...

>我不知道还有哪些地方可以报告bug,所以也许有人来自微软

正在读取此组
>I don''t know where else to report bugs, so maybe someone from Microsoft
is reading this group

http:// connect .microsoft.com / feedback?SiteID = 210


>

应用程序在库线程上崩溃。堆栈在下面(最近的

在顶部)。


我认为对于用于报告的功能来说,这是一个非常糟糕的想法。 />
分配内存的内存分配错误。
>
Application crashed on a library thread. The stack is below (most recent
at top).

I think is a *REALLY* bad idea for the function that is used to report
memory allocation errors to allocate memory.



这很烦人(然后是一些),不是吗?


__getptd_noexit很奇怪分配内存。对我来说,这表明

它是在一个用_beginthread {ex}创建的线程中运行的。


你是否正在链接静态运行时库,偶然? (如果你是
链接到DLL运行时库,你不需要担心使用

_beginthread,但是使用静态运行时,你会这样做) 。


-cd

That is annoying (and then some), isn''t it?

It''s odd that __getptd_noexit is allocating memory. To me, that suggests
that it''s running in a thread that wasn''t created with _beginthread{ex}.

Are you linking with the static runtime library, by chance? (If you''re
linking with the DLL runtime library, you don''t need to worrk about using
_beginthread, but using the static runtime, you do).

-cd


你好卡尔!
Hi Carl!

It奇怪的是__getptd_noexit正在分配内存。对我来说,这表明它是在一个没有使用_beginthread {ex}创建的线程中运行的。

It''s odd that __getptd_noexit is allocating memory. To me, that suggests
that it''s running in a thread that wasn''t created with _beginthread{ex}.



从callstack开始lloks就像一个线程退出而DLL-CRT
现在试图释放线程本地内存( __freeptd)。

这很好......


现在的问题是CRT想用
$ b输出内存泄漏$ b" __ CrtDbgReport"。

现在其中一些函数试图设置errno在TLS中存储了

,之前已被释放;-)

现在又为此TLS分配内存...因此它调用了

__getptd_noexit。


;-))

好​​错误!


问候

Jochen

From the callstack it lloks like a thread has exited and the DLL-CRT
now tries to free the thread-local-memory (__freeptd).
This is fine...

Now the problem is that the CRT wants to output the memory-leaks with
"__CrtDbgReport".
And now some of those functions tries to set the "errno" which is stored
in TLS, which was previously freed ;-)
And now it allocated again memory for this TLS... therefor it calls
__getptd_noexit.

;-)))

Nice Bug!

Greetings
Jochen


这篇关于一个VC2005错误报告的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆