Eclipse CDT - 如何快速评估不在代码中的表达式?

Eclipse CDT - how to quickly evaluate an expression which is not in the code?

我已经离开 Eclipse CDT 一段时间了,被 JetBrains 优秀的 IDE 宠坏了(公司不让我拥有 Clion)。不可否认,这些主要用于解释型语言,而不是编译型语言,因此评估更简单。

当我在 Eclipse 中设置断点时 CDT,(如何)我可以快速计算涉及调试器已知变量的表达式,但在代码中未使用它们的方式?

例如,如果我有两个整数,ij,(如何)我可以快速评估 i + j

给定 char *s 是否有可能评估 stlen(s)?还是局部函数调用的结果?

在我的脑海中,我建议使用 Expression 视图或 Console 视图,具体取决于您的流程,等等

表达式

Expressions 视图允许您添加任何任意表达式,以便在调试器每次遇到断点或完成单个步骤时由 selected 帧计算。

默认情况下,表达式 视图未打开。您可以从 Window -> Show View -> Expressions.

然后您可以按 添加新表达式 按钮并输入要计算的表达式。 (您几乎可以输入任何表达式:i+jstrlen(s) 或您喜欢的任何其他内容)

或者,您可以:

  1. 从上下文菜单中,select *添加监视表达式...":

  1. 在弹窗中输入表达式:

  1. 表达式 视图将打开and/or 到顶部。

控制台

控制台视图允许您以标准 GDB syntax 输入 GDB 命令。

要使用控制台:

  1. Select gdb 调试视图

  1. 控制台视图现在将显示 GDB 的界面:

  1. 向 GDB 输入命令,例如print i + jp i - jpprint的缩写):

使用控制台时的其他提示

  • 您可以 "pin" 使用工具栏上的此按钮 select 控制台,使其保持在控制台顶部:

  • 您可以使用此下拉菜单切换控制台:

  • 您可以打开第二个控制台,例如一个用于 GDB 交互,一个用于使用此按钮输出程序: