如何告诉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'优化输出值'的值或使其推断出值?的主要内容,如果未能解决你的问题,请参考以下文章