博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
配置GDB以支持查看stl容器数据
阅读量:6993 次
发布时间:2019-06-27

本文共 2228 字,大约阅读时间需要 7 分钟。

1. 下载    2. #cat dbinit_stl_views-1.03.txt >> ~/.gdbinit   3. 若正处于gdb中,运行命令:    (gdb) source ~/.gdbinit   4. 例如,如下代码: bugging.cpp

# include < vector >

using namespace std ;
int main( )
{
        vector < int > vec;
        vec. push_back( 2) ;
        vec. push_back( 3) ;
        vec. push_back( 4) ;
        return 0;
}

编译:#g+ + - o bugging - g bugging. cpp

gdb调试:

# gdb bugging

GNU gdb 6. 8
Copyright ( C) 2008 Free Software Foundation, Inc.
License GPLv3+ : GNU GPL version 3 or later < http: //gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "i486-slackware-linux" . . .
( gdb) help pvector
Prints std : : vector < T> information.
Syntax: pvector < vector > < idx1> < idx2>
Note: idx, idx1 and idx2 must be in acceptable range [ 0. . < vector > . size( ) - 1] .
Examples:
pvector v - Prints vector content, size, capacity and T typedef
pvector v 0 - Prints element[ idx] from vector
pvector v 1 2 - Prints elements in range [ idx1. . idx2] from vector
( gdb) break main
Breakpoint 1 at 0x80485c6: file bugging. cpp, line 6.
( gdb) run
Starting program: / root/ learn/ c+ + / bugging
Breakpoint 1, main ( ) at bugging. cpp: 6
6        vector < int > vec;
( gdb) n
7        vec. push_back( 2) ;
( gdb)
8        vec. push_back( 3) ;
( gdb) pvector
Prints std : : vector < T> information.
Syntax: pvector < vector > < idx1> < idx2>
Note: idx, idx1 and idx2 must be in acceptable range [ 0. . < vector > . size( ) - 1] .
Examples:
pvector v - Prints vector content, size, capacity and T typedef
pvector v 0 - Prints element[ idx] from vector
pvector v 1 2 - Prints elements in range [ idx1. . idx2] from vector
( gdb) pvector vec
elem[ 0] : $1 = 2
Vector size = 1
Vector capacity = 1
Element type = int *
( gdb) n
9        vec. push_back( 4) ;
( gdb)
10        return 0;
( gdb) pvector vec
elem[ 0] : $2 = 2
elem[ 1] : $3 = 3
elem[ 2] : $4 = 4
Vector size = 3
Vector capacity = 4
Element type = int *
( gdb)

5. 默认情况下gdb不能用[]查看stl容器的数据元素,提示如下错误:

( gdb) print vec[ 0]

One of the arguments you tried to pass to operator [ ] could not be converted to what the function wants.

转自:http://blogold.chinaunix.net/u1/44543/showart_1953788.html

转载地址:http://exivl.baihongyu.com/

你可能感兴趣的文章
memcache详解
查看>>
Kubernetes学习之路(一)之Kubeadm部署K8S集群
查看>>
系统管理命令service
查看>>
01 碰到疑似安全问题怎么办
查看>>
Keepalived+Nginx实现前端负载均衡的高可用
查看>>
在fedora中安装steam游戏平台
查看>>
js触发全屏事件
查看>>
Haproxy+keepalied实现web负载均衡
查看>>
sql --修改(设置)root密码
查看>>
杂谈一二
查看>>
死锁产生
查看>>
学习笔记 程序包管理
查看>>
信号量
查看>>
采用开源的架构提高业务敏捷性
查看>>
PHP中获取当前页面的完整URL
查看>>
OC类
查看>>
Catlike学习笔记(1.4)-使用Unity构建分形
查看>>
网络协议分析
查看>>
LNMP环境搭建
查看>>
bash特性之逻辑运算和shell脚本的编写
查看>>