如何告诉gdb'优化输出值'的值或使其推断出值?

问题描述 投票:0回答:1

有一个C ++ this指针是一个<optimized out>值,但在调用堆栈中可以找到它的值。

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

gdb
1个回答
2
投票

没有办法在gdb中这样做,至少不是以print this知道要检查哪个帧来查找值的形式。

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

(gdb) up 5
(gdb) set $mythis = this
(gdb) down 5
(gdb) print *$mythis

另一种方法是编写一个“便利函数”(这是gdb手册中使用的术语)来自动执行此操作。便利函数是用Python编写的,可以做很多事情,比如在其他堆栈帧中查找符号。因此,例如,您可以编写一个$_this函数并使用它,如:

(gdb) print *$_this()

......不太一样但也许它会满足你的需求。

© www.soinside.com 2019 - 2024. All rights reserved.