Rumah  >  Soal Jawab  >  teks badan

c++ - codeblock 调试时要怎么查看容器内元素的值?

ode

我像图中所示 在监视窗口输入 (decrptS.begin()) ,(decrptS.begin()+1)
显示

貌似是只能监视 raw type 基本类型

天蓬老师天蓬老师2765 hari yang lalu781

membalas semua(2)saya akan balas

  • 天蓬老师

    天蓬老师2017-04-17 13:11:55

    没用过CodeBlocks,不过调试器想要调试STL,肯定是需要插件的,单纯的GDB或者VC的调试器,都不行,都得加插件。
    因为各个STL的内部实现都不一样,libstdc++的话,https://github.com/egmkang/gdb_printers__python
    如果用的是libc++, 可以看https://github.com/egmkang/pretty_printer_for_libcxx, 后面这个是我写的

    帮你搜了一下,丫的实在太懒了
    http://www.cnblogs.com/wanglikai91/archive/2011/11/08/2241432.html

    balas
    0
  • 黄舟

    黄舟2017-04-17 13:11:55

    如果你使用VC++2010以上版本的话,问题都会很简单。VC++的debugger允许你自定义debugger查看元素内容的时候的外观,而且已经自带针对STL的设置。当你鼠标移动到一个容器上面的时候,他就会直接把所有的容器的内容告诉你。所以@emgkang 的答案说“单纯的GDB或者VC的调试器,都不行”,是不对的。

    我自己因为某种原因也写了自己的容器类,然后就是用这个xml,解决了这个问题。你只要在C盘里面搜索到stl.natvis,把文件贴在相同的文件夹,重启VC++,你自己的类库的插件就搞定了。建议题主试试,使用高级工具,不要纠结于什么CodeBlocks。

    https://github.com/vczh-libraries/Vlpp/blob/master/Release/vlpp.natvis

    balas
    0
  • Batalbalas