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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何告诉gdb'优化输出值'的值或使其推断出值?相关的知识,希望对你有一定的参考价值。

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

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

答案

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

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

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

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

(gdb) print *$_this()

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

以上是关于如何告诉gdb'优化输出值'的值或使其推断出值?的主要内容,如果未能解决你的问题,请参考以下文章

为什么每次'for'迭代输出4次

iOS学习笔记39-ReactiveCocoa入门

如何统计php数组值的和?

在ubuntu中gdb 调试a.out文件,首先输入gdb hello 进入 (gdb)在输入 l 输出

ES6中map数据结构

javascript中数组取值的问题,如何取出键值对中的值?