Debugging 如何在gdb中正确设置行号处的断点?

Debugging 如何在gdb中正确设置行号处的断点?,debugging,gdb,Debugging,Gdb,请参考以下代码及其行号 1 void f(string& s){ ... //some code ... 12 for(unsigned int i = 0; i <= end; i++){ 13 unsigned int a = s[i] - 'a' + 1; 14 unsigned int b = s[end-i] - 'a' + 1; 15 } 16 } 1空f(

请参考以下代码及其行号

1     void f(string& s){
...
          //some code
...
12        for(unsigned int i = 0; i <= end; i++){
13            unsigned int a = s[i] - 'a' + 1;
14            unsigned int b = s[end-i] - 'a' + 1;
15        }
16    }   
1空f(字符串和s){
...
//一些代码
...

12对于(unsigned int i=0;i我不完全确定原因,但在Visual Studio中设置断点时也会发生类似的事情,这让我觉得这是一件很平常的事情

我省钱的方法是在你的等式后面加一条线,上面写着:

b = b;

然后在那里设置断点

在现实生活中的代码中,在第
14行之后应该有更多的语句可以设置断点。在您的示例中,
b
未使用,所以它没有多大意义。@ks1322是的,它有更多的代码。我明白您的意思,如果有一个有用的变量,那么它必须在en之前声明d/在循环外,在这种情况下,可以在循环开始时检查值。我只是想知道在这种情况下是否可以设置断点。我不知道有任何调试器允许您指定特定语句后的断点。使用gdb尝试以下操作:在行的开头设置断点,然后设置eit她键入
next
(并检查变量是否在下一行的范围内)或键入
watch b
,然后键入
continue
。谢谢你。实际上还有更多的代码。我只是想知道是否可以设置这样的断点。