gdb:不退出程序的情况下打印函数中的局部变量
来源:互联网 发布:ios网络请求http协议 编辑:程序博客网 时间:2024/06/06 19:18
参考资料:点击打开链接
借助于上面的参考资料,编写自己的脚本工具。参考资料中也是借鉴pstack这个工具,它是用一个脚本,脚本中通过调用gdb来打印当前运行的栈信息,而不用中断程序或手动gdb。更多的信息,还是去看参考资料吧,上面讲的比较详细。
如果想要多次查看局部变量的值,可以使用watch工具或者直接在shell中使用for或while循环来调用上面的shell脚本
借助于上面的参考资料,编写自己的脚本工具。参考资料中也是借鉴pstack这个工具,它是用一个脚本,脚本中通过调用gdb来打印当前运行的栈信息,而不用中断程序或手动gdb。更多的信息,还是去看参考资料吧,上面讲的比较详细。
我的脚本如下:
#!/bin/shcommand="source key.gdb"readnever=""GDB=${GDB:-/usr/bin/gdb}i=0result="" $GDB --quiet $readnever -nx /proc/$1/exe $1 <<EOF 2>&1 |set width 0set height 0set pagination no$commandEOFawk '/^\$/{print $0}' | awk '{print $3}'上面的就是一个shell脚本,使用awk是为了过滤输出的信息,这里只是针对我的需求的过滤规则,你要使用的话,可以选择sed或其他擅长的工具。真正的gdb命令保存在key.gdb中,如下所示:
b fcache_cluster.c:245cp/x ((struct sockaddr_in*)node)->sin_addr.s_addr方法很简单,就是在想要打印的局部变量赋值后的位置添加一个断点,然后执行"c"命令,然后添加一条打印局部变量的命令。
如果想要多次查看局部变量的值,可以使用watch工具或者直接在shell中使用for或while循环来调用上面的shell脚本
- gdb:不退出程序的情况下打印函数中的局部变量
- gdb如何打印程序中的stl变量
- Delphi中的局部变量的分配情况。
- DCE打印路由时某种情况下的gdb结果
- 函数返回局部变量的几种情况
- 函数返回局部变量的几种情况
- 用gdb调试C++程序时打印变量的值
- 用gdb调试C++程序时打印变量的值
- 正确得到线程退出信息的方法详解-变量存储退出信息结构、使用动态存储的方式退出信息结构、使用全局变量方式推相互信息结构、使用main函数中的局部变量存储退出信息结构
- emacs下gdb打印 变量 和 数组 的值
- 两个函数中的局部变量
- 如何使用gdb打印Eigen中的变量
- 在不预览的情况下打印RDLC报表
- [转]在不预览的情况下打印RDLC报表
- 网页打印(不使用插件的情况下)
- ios中Block内访问函数局部变量时变量的改变情况
- 指针指向函数中的局部变量的地址的问题
- 局部变量和全局变量同名的情况
- eclipse中用空格(space)代替"制表符(tab)的设置
- Red5的一般客户端连接各个事件的触发顺序
- Linux安装mysql——源码安装
- Red5研究
- flex 的换行
- gdb:不退出程序的情况下打印函数中的局部变量
- 如何为eclipse中的文件设置默认编码(转)
- red5 disconnect方法
- MyEclipse10.0 采用插件方式安装 SVN
- MyEclipse10.0 SVN
- limux 解压命令-tar
- 提高red5性能几个配置。
- 长时间握手处理
- Flex DataGrid中获得外部对象 outerDocument