相关疑难解决方法(0)

Gdb打印到文件而不是stdout

我正在运行gdb并想要检查其中一个不幸的上帝对象.它需要很多页面(而且我有一个24英寸的显示器转向侧面!)看到整个事情.为了便于使用,我希望gdb将对象打印到文件而不是屏幕,以便我可以打开它vi并轻松移动.有了所有gdb的多功能性,必须有办法做到这一点,对吧?

printing redirect gdb

98
推荐指数
5
解决办法
7万
查看次数

使用gdb检查标准容器(std :: map)内容

假设有这样的事情:

#include <map>
int main(){
    std::map<int,int> m;
    m[1] = 2;
    m[2] = 4;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我希望能够从gdb检查运行该程序的地图的内容.
如果我尝试使用下标运算符,我得到:

(gdb) p m[1]
Attempt to take address of value not located in memory.
Run Code Online (Sandbox Code Playgroud)

使用find方法不会产生更好的结果:

(gdb) p m.find(1)
Cannot evaluate function -- may be inlined
Run Code Online (Sandbox Code Playgroud)

有没有办法实现这个目标?

c++ gdb stl map

83
推荐指数
5
解决办法
8万
查看次数

C++,STL,GDB:无法评估函数内联

我希望能够使用GDB从STL容器中获取地址并打印一对.

IE:鉴于以下玩具计划:

#include <map>

int main() 
{
  std::map<int,int> amap;
  amap.insert(std::make_pair(1,2));

}
Run Code Online (Sandbox Code Playgroud)

当我尝试检查地图的单个元素时(例如p amap.begin()),我得到:

"无法评估功能 - 可能是内联的"

删除优化并启用完整调试模式,即(-O0和-g3)不起作用.

为什么会发生这种情况,我该如何解决?

c++ gdb

5
推荐指数
2
解决办法
2950
查看次数

标签 统计

gdb ×3

c++ ×2

map ×1

printing ×1

redirect ×1

stl ×1