gpt4 book ai didi

c++ - 自动打印GDB中最后一个表达式的值,如VisualStudio的 "Auto"watch window

转载 作者:太空狗 更新时间:2023-10-29 12:35:00 26 4
gpt4 key购买 nike

VisualStudio 的调试器有一个名为 Auto Window 的功能, 它始终显示当前和上一个表达式的值。有没有办法在 GDB 中实现类似的行为,尤其是对于 C++ 应用程序?

我知道 displaycommands GDB 中的命令,但它们似乎不是我要找的。在 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 的自动窗口中,我看到:

enter image description here

有没有办法让 GDB 向我显示当前和先前表达式的值,无论它们是什么,如此处的“自动”窗口中所示? 编辑 请注意,我没有输入 i在上面的屏幕截图中——调试器为我做了这件事,它显示了程序中每一步的潜在差异表达式。那个自动显示正是我要找的。

最佳答案

自从我使用“ddd”(这是一个在 GDB 之上运行的应用程序,为您提供 GUI 功能)以来已经有很长一段时间了,但它可能会为您提供您想要的 - 它肯定会很好地显示您正在执行的行和可以在单独的窗口等中显示局部变量。 ddd

如果您去寻找,GDB 可能还有其他 GUI 层。

否则,恐怕显示可能是最接近的。

关于c++ - 自动打印GDB中最后一个表达式的值,如VisualStudio的 "Auto"watch window,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13997224/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com