如何告诉gdb';优化输出值';或者让它推断出价值? 有一个C++ 这个< /COD>指针,它是 值,但是在调用堆栈上,它的值可以找到。

如何告诉gdb';优化输出值';或者让它推断出价值? 有一个C++ 这个< /COD>指针,它是 值,但是在调用堆栈上,它的值可以找到。,gdb,Gdb,如何告诉gdb该具有该特定值?gdb可以查看堆栈并推断它吗?在gdb中没有办法这样做,至少不能让打印此知道要检查哪个帧以查找值 一个简单的解决方法是使用便利变量。例如: (gdb) up 5 (gdb) set $mythis = this (gdb) down 5 (gdb) print *$mythis 另一种方法是编写一个“便利函数”(gdb手册中使用的术语)来实现自动化。便利函数是用Python编写的,可以做很多事情,比如在其他堆栈框架中查找符号。因此,例如,您可以编写一个$\u此函数

如何告诉gdb该具有该特定值?gdb可以查看堆栈并推断它吗?

在gdb中没有办法这样做,至少不能让
打印此
知道要检查哪个帧以查找值

一个简单的解决方法是使用便利变量。例如:

(gdb) up 5
(gdb) set $mythis = this
(gdb) down 5
(gdb) print *$mythis
另一种方法是编写一个“便利函数”(gdb手册中使用的术语)来实现自动化。便利函数是用Python编写的,可以做很多事情,比如在其他堆栈框架中查找符号。因此,例如,您可以编写一个
$\u此
函数并像以下那样使用它:

(gdb) print *$_this()

。。。不完全一样,但可能适合您的需要。

您可以不经过优化就编译吗?@ks1322,是的,我可以不经过优化就重新编译,但这不是问题所在。