首页 > 解决方案 > 如何在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    }   

在 gdb 中,我必须检查 variable 的值b。如何在此处正确设置断点。我知道断点必须在 line 之后14。但是,每当我输入第 15 行时b 15,它都会在第 16 行添加断点。有人可以帮忙吗?

标签: debugginggdb

解决方案


我不完全确定原因,但在 Visual Studio 中设置断点时也会发生类似的事情,这让我觉得这是一件司空见惯的事情。

我克服这个问题的廉价方法是在你的等式之后添加一条线,上面写着:

b = b;

然后在那里设置断点


推荐阅读