相关疑难解决方法(0)

如何在GDB中打印C++向量的元素?

我想检查std::vectorGDB中的内容,我该怎么做?让我们说这是std::vector<int>为了简单起见.

c++ debugging gdb stl vector

204
推荐指数
4
解决办法
11万
查看次数

使用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万
查看次数

使用gdb调试C++ STL/Boost的最佳实践

使用gdb进行调试,任何使用STL/boost的c ++代码仍然是一场噩梦.任何使用过STL的gdb的人都知道这一点.例如,请参阅此处代码中的一些调试会话的示例运行.

我试图通过收集提示来减轻疼痛.您能否对我在下面收集的提示发表评论(特别是您使用过的提示以及您建议的任何更改) - 我列出的提示是技术性的降序.

  • 有人使用"Stanford GDB STL utils""UCF GDB utils"吗?是否有一些这样的工具用于boost数据结构?上面的util似乎不是递归可用的,例如用于在一个命令内以清晰的方式打印boost :: shared_ptr的向量.
  • 写你的.gdbinit文件.例如,包括C++相关的美化器,列在UCF GDB工具的底部.
  • 使用checked/debug STL/Boost库,例如STLport.
  • 使用日志记录(例如描述这里)

更新:GDB有一个新的C++分支.

c++ boost gdb stl

46
推荐指数
2
解决办法
2万
查看次数

如何使用GDB 7.x查看STL容器的内容

我一直在使用宏解决方案,因为它是概述这里.但是,提到了如何在没有宏的情况下查看它们.我指的是GDB版本7及更高版本.

有人会说明怎么样?

谢谢

c++ gdb stl

13
推荐指数
1
解决办法
1万
查看次数

使用gdb 7.0打印stl容器

我按照以下说明安装了GDB 7.0和python .在同一本手册中,提到了这个文件stl-views-1.0.3.gdb.让我感到困惑的是它应该放在哪里以便能够漂亮地打印stl容器.有人还会向我解释所有这些工作吗?

谢谢

c++ gdb stl

11
推荐指数
2
解决办法
6770
查看次数

为什么gdb中的print命令为C++ std :: strings返回\ 035?

说我有代码:

std::string str = "random";

function(str);

void function (std::string str)
{
  std::cout << str << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

如果我在gdb中单步执行此代码,然后进入该函数并执行p str此操作将打印出类似这样的内容,\362\241但cout将在屏幕上打印正确的字符串random.有没有人见过这个,如果是这样我该怎么办?我在gdb中使用错误的print命令还是与编译器如何解释字符串有关?

c++ printing string gdb

7
推荐指数
3
解决办法
6183
查看次数

使用GDB打印C ++类对象

在调试C ++应用程序时,是否有一些“默认函数”在GDB上打印类似字符串的对象?类似于:toString();

还是我的课必须实现类似的东西?

c++ debugging gdb

5
推荐指数
1
解决办法
6266
查看次数

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
查看次数

标签 统计

c++ ×8

gdb ×8

stl ×5

debugging ×2

boost ×1

map ×1

printing ×1

string ×1

vector ×1