我正在使用gdb-7.0.1,我想我已经在我的代码的某个部分检测到了一个错误,它有一个for循环.该for环路的样子
for (int i=0 ; i< end ; ++i )
{
//Code here.
}
Run Code Online (Sandbox Code Playgroud)
这end是一个非常大的整数.代码在第一次迭代时不会崩溃,并且似乎在迭代次数的某处崩溃end/2.
因为我想了解代码的行为在迭代次数end/2,就stepping和nexting来自i=0直到我达到这个迭代点,是不可行的.
有没有办法告诉你gdb继续通过for循环直到i获取值end/2,然后等待用户手动逐步执行迭代次数end/2?
我gcc-4.5.2在Ubuntu Linux上使用
当你设置断点时,它会给你一个断点号(暂时让我们假设它是1).然后,您将使该断点成为有条件的,例如:
condition 1 i==end/2
Run Code Online (Sandbox Code Playgroud)
您必须使用条件断点.以下是它的更多信息:http://www.cs.cmu.edu/~gilpin/tutorial/#3.4
在SO上:当char*x指向一个值等于"hello"的字符串时,如何在gdb中设置条件断点?
在你的情况下(未测试):
break <line_number> if i==end/2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1391 次 |
| 最近记录: |