委托断言

时间:2013-02-07 14:56:02

标签: c++ debugging assertion

您好,我想改进我的数学库,

当我计算我所做的事情的长度时

assert( !equal(len,0.0));
const f32 invsqrt = 1.0/sqrt(len);
X*= invsqrt;
Y*= invsqrt;
Z*= invsqrt;

这段代码很好,如果我错误地将除法除以零代码

“运行时已请求在行中断应用程序.. Vector.h第88行”

这很好,但我想做得更好,我想要显示错误的位置。

因此,我不想显示“vector.h”和第88行,而是要显示“main.cpp”“第15行”(如果在主要的第15行调用getLength函数)。

Vector只是标题,所以我认为实现这一点是可能的(这只是一种感觉)..但是如何?

提前致谢。我希望你能看到这样做有用。

1 个答案:

答案 0 :(得分:1)

代码所在的位置,以便它将在哪里中断。

我认为你的意思是看到调用堆栈 在visual studio中,它位于:调试 - > Windows - >调用堆栈

调用堆栈可以向您展示如何访问该代码行(在工作流程中调用了哪个函数)