VisualStudio 的调试器有一个名为Auto Window的功能,它始终显示当前和前一个表达式的值。有没有办法在 GDB 中实现类似的行为,尤其是对于 C++ 应用程序?
我知道 GDB 中的display
andcommands
命令,但它们似乎不是我想要的。在 VS 中,调试器自动计算出要评估的表达式,然后在程序的每一步中对其进行评估。这个功能——自动找出要评估的表达式——是我希望 GDB 做的。
例如,假设我正在逐步执行此代码:
#include <cstdlib>
#include <iostream>
#include <iomanip>
#include <sstream>
using namespace std;
int main()
{
string s = "Hello";
s += "World";
int i = 2;
i *= 3;
i *= 7;
stringstream ss ;
ss << "The result is " << i << "!\n";
ss << "Now, what was the question?";
s += ss.str();
cout << s << endl;
}
...我即将执行该i*=7
行。在 VS 的 Autos 窗口中,我看到:
有没有办法让 GDB 向我显示当前和以前的表达式的值,无论它们是什么,如这里的 Autos 窗口所示? 编辑请注意,我没有输入i
上面的屏幕截图——调试器为我做了这些,它在程序的每一步都显示了潜在的差异表达式。我正在寻找那种自动显示。