我正在调试一个非常复杂的C++函数,它在某些输入下给了我一些意想不到的结果.我想比较不同输入下的代码执行,以便找出导致我错误的部分.我正在寻找可以比较代码执行路径的工具.如果存在这样的工具,请告诉我.或者,如果有一些技巧我可以用来做同样的事情?
为了具体地描述我的问题,我在这里使用一个人为的例子.
假设这是伪代码中的函数,
double payTax(double income)
{
if (income < 10000)
return noTax();
else if ( 10000 < income < 30000)
return levelOneTax();
else if (30000 < income < 48000)
return levelTwoTax();
else
return levelThreeAboveTax();
}
Run Code Online (Sandbox Code Playgroud)
给定输入15000,该函数计算正确的税额,但不知何故输入16000给出错误的税额.据推测,输入15000和16000会导致函数完全执行相同的执行路径; 另一方面,如果它们走的是不同的路径,那么功能中的某些东西一定出错了.因此,比较执行路径的工具会显示足够的信息,可以帮助我快速识别错误.我正在寻找这样一个工具.最好与Visual Studio 2010兼容.如果这样的工具还保留变量值,那就更好了.
PS调试是我想要做的最后一件事,因为我正在使用的代码库比简单的payTax示例更大更复杂.
请帮忙.谢谢.
| 归档时间: |
|
| 查看次数: |
727 次 |
| 最近记录: |