跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 关于 GDB 查看 STL 元素值
未分類
5 10 月 2020

关于 GDB 查看 STL 元素值

关于 GDB 查看 STL 元素值

資深大佬 : yanyanlongxia 1

我想知道如何用 GDB 查看 C++ STL 容器(如 map 、priority _ queue)中的每个元素的值。

网上也有一个方法,就是下载一个脚本,替换配置,我在本机也是这么设置的。

可是,我们马上就要考试了,我亲测考场电脑里没有那个脚本(考试也不可能开网),我想知道考试时如何使用 GDB 查看 STL 元素的值(当然可以直接写函数输出,但是总觉得这样太烦了)

考试环境: 系统:Ubuntu 14.04 LTS 。 内置软件(都是纯净的):vim 、 gedit 、g++/gcc&gdb 、guide 、python3 ……(反正其他的就是 Ubuntu 自带了)

大佬有話說 (9)

  • 資深大佬 : ruanimal

    不懂,C++就是麻烦

  • 資深大佬 : InkStone

    你可以试一下,stl 的内部结构也没复杂到看不到每个元素值的地步……我记得早期一些 IDE 没有对 STL 的支持,也都是手动展开来看的。

    不过你们这考试也太折腾人了吧,连 IDE 都不给一个。

  • 資深大佬 : zvl0reqglvd

    print 数组首地址 @查看长度

  • 主 資深大佬 : yanyanlongxia

    @zvl0reqglvd 请问能举个例子吗?谢谢了(主要是没太看懂)

  • 主 資深大佬 : yanyanlongxia

    @InkStone 其实我平时用的 CLion 就自带完美支持查看 STL,只是考试没有……

  • 主 資深大佬 : yanyanlongxia

    突然发现在程序里写一个 print 函数,在 gdb 里面需要时调用 call print()就很简单……

  • 資深大佬 : disk

    14.04 有点老了,不知道 gdb 版本是多少,7.0 后才支持 python 拓展,系统自带的直接 p STL 变量就完事了。不然就先 p vec 看下结构,然后按照输出的结构 p *(vec._M_impl._M_start)@vec.size(),不知道行不行。

  • 主 資深大佬 : yanyanlongxia

    @disk GDB 版本是 7.7.1 的,请问能细说一下怎么用吗?谢谢

  • 資深大佬 : disk

    @yanyanlongxia 你需要去看下 GDB 的使用教程。要查看一个变量,你至少需要它的首地址,如果是顺序存储要看长度,如果是复杂的结构要考虑指出类型。像 map 这种红黑树实现不靠脚本看起来是很麻烦的,你可以写一个 print 函数把容器的元素遍历打印出来,然后在调试中随时 call 这个函数来查看。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具