Mic*_*ick 4 c debugging visual-studio-2008 visual-studio
我有类似于以下代码的东西......
void function(int x)
{
// complicated operation on x
blah
blah
}
Run Code Online (Sandbox Code Playgroud)
这一切看起来都很好,除非x恰好是一个特定的值,比如"273".但x为273是一种罕见的事件,99.999%的时间是其他值.现在我希望观察使用x = 273调用此函数时的事件,所以我想插入一个仅受x命中的断点就是该值.也许我可以这样做:
void function(int x)
{
if (x == 273)
{
// put breakpoint on this line.
}
// complicated operation on x
blah
blah
}
Run Code Online (Sandbox Code Playgroud)
问题是,编译器可能会优化掉这个"if"语句,因为它没有做任何事情.所以我的问题是我应该在"if"语句中放置什么以确保它被编译成某种东西......或者我应该以某种完全不同的方式跟踪x == 273的情况.
听起来你正在寻找的是条件断点.这些是Visual Studio的一项功能,它允许仅在非常特定的条件为真时才能触发断点.
为此,请在函数的开头添加一个断点.然后右键单击它并选择"条件".然后添加以下表达式
x == 273
Run Code Online (Sandbox Code Playgroud)
现在您可以在不更改源二进制文件的情况下调试它
| 归档时间: |
|
| 查看次数: |
191 次 |
| 最近记录: |