当我试图对我的 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/