您当前位置: 首页 » 10 月 2014
按日期归档: 10 月 2014

DebugBreak 与 _CrtDbgBreak 区别

首先_CrtDbgBreak是的 断言函数。

DebugBreak 与 _CrtDbgBreak 都是断言函数。

 

根据msdn中对DebugBreak的描述 和 (DebugBreak vs AfxDebugBreak vs _CrtDebugBreak vs __debugbreak)得知:

DebugBreak:

1,在release和debug版本下均有效

2,是一个系统调用,在做调试的时候,需要把windows的符号表加载起来一起用才可以观察到完整的异常栈,否则可能只看得到最后的那一点(帧)栈信息

_CrtDbgBreak

1,只有在debug下有效

2,函数可能在msdn上没有任何说明,类似私有api?或未写入文档的官僚函数(M$一贯的作风)?

 

其中在msdn的文档中提到,和DebugBreak相似的函数还有__debugbreak而,__debugbreak是不需要符号表,具体的 __debugbreak文档 并没有找到

 

在VS中创建一个win32工程,当使用VS/win自带的类库出现异常时,在debug版本下的断言均是_CrtDbgBreak被调用。

2014-10-23 | | win api

DebugBreak 与 _CrtDbgBreak 区别已关闭评论