c++ - GDB 打印没有调试符号的 STL(例如 std::vector)

标签 c++ debugging gdb reverse-engineering

当我试图对我的 C++ 代码进行逆向工程时,我想出了一个问题,即想要在调试器 (gdb) 中打印我的 std::vector 元素。

我的一个队友建议

p *(std::vector *)0x7fffffffe210

但是后来我明白了

No symbol "std" in current context.

这是由于缺少调试符号而产生的错误。 我知道 windbg 有预构建结构(通过“dt”命令访问)。

是否有任何已经构建的解决方案,或者我如何为 gdb 构建自己的结构?

谢谢!

我的测试代码很简单

std::vector<int>

最佳答案

Is there any already built solution or how can I build my own structs for gdb?

This answer显示如何将调试符号添加到现有 GDB session 。

作为n.m.建议,您也可以通过预加载使用 std::vector<int> 的库来实现此目的并使用调试符号进行编译,但这并不是真正必要的。

关于c++ - GDB 打印没有调试符号的 STL(例如 std::vector),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52933108/

相关文章:

stream - 用GDB模拟回声输入

c++ - 使用netbeans编译C++

java - C++ 和 Java 的字符串循环性能比较

php - 如何在 PHP 中获取有用的错误消息?

visual-studio - 在 Visual Studio 中调试时如何设置特定的环境变量?

c - 如何在没有 jtag、断点、模拟器、仿真器的情况下在目标上单步执行代码

gdb - 我可以使用 gdb 跳过一行而不必输入行号吗?

c++ - Shift + Numpad1 键不起作用?

c++ - 在 Matrix4::Perspective 中反转 Z 轴

c - C中的程序状态