如何追踪Visual C ++断言

时间:2014-08-01 13:49:29

标签: c++ visual-studio-2010 assert

我正在运行Visual Studio 10,并且在运行时,我的程序声明了以下错误

Debug Assertion Failed! 
Program:
(filepath).exe
File: C:\Program Files(x86)\Microsoft Visual Studio 10.0\VC\include\algorithm
Line: 2910

Expression: sequence not ordered

我知道这意味着我误用了algorithm库中的某些函数,但是这条消息给了我算法代码中的一行,而不是我的代码。

有没有一种简单的方法来追踪我滥用此功能的位置以及它的功能?单步执行我的代码不是一种选择,因为这个问题只会偶尔出现,而且我还无法识别何时。

我尝试过简单地从algorithm库中搜索所有对函数的引用,但这也无助于缩小可能的原因。

我没有提供代码,因为我想要一种寻找错误的一般方法,而不是针对我的情况的具体解决方案。

1 个答案:

答案 0 :(得分:4)

断言代码路径仅在调试版本中处于活动状态,并由调试器捕获。在调试器中运行程序,让断言触发,然后遍历堆栈回溯,直到找到你编写的一行代码。