继续使用C++进行迭代,直到gdb中的特定迭代次数

smi*_*dha 7 c++ gdb

我正在使用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,就steppingnexting来自i=0直到我达到这个迭代点,是不可行的.

有没有办法告诉你gdb继续通过for循环直到i获取值end/2,然后等待用户手动逐步执行迭代次数end/2

gcc-4.5.2在Ubuntu Linux上使用

Luc*_*ore 6

这是一个关于gdb 条件断点的教程.

我猜你不知道这个术语,否则谷歌会很容易.


Jer*_*fin 5

当你设置断点时,它会给你一个断点号(暂时让我们假设它是1).然后,您将使该断点成为有条件的,例如:

condition 1 i==end/2
Run Code Online (Sandbox Code Playgroud)


psu*_*sur 5

您必须使用条件断点.以下是它的更多信息: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)