gdb调试
来源:互联网 发布:九章算法 网盘 编辑:程序博客网 时间:2024/05/10 09:41
原来习惯了在windows上编写程序,使用dev c++或者visual studio 写程序。
现在要转到linux上编写,不是很习惯呢。
调试要用gdb,这个也不习惯。
在linux下用vim写一个程序 test.c
vim text.c
#include<stdio.h>int main(){ int i,result; for(i=0;i<100;i++) { result+=i; } printf("%d\n",result); return 0;}编译程序,并在编译过程中添加gdb调试信息。
g++ -g -o exe hzq_test.c
这样的编译方式会生成一个调试版程序,程序名为exe的可执行文件。
通过命令:
gdb exe
gdb操作文件exe
(gdb)
如果exe运行需要接受外部参数,给exe设置运行参数:set args 参数1 参数2 。。。
(gdb) set args ../conf/tts_df18.conf texts/ wav_output/ tesxts/filelist.txt 4
添加断点:命名空间 lbs::common 下 的类TtfModelContextHelper的成员函数build()
(gdb) b main
添加断点:命名空间 lbs::common 下 的类TtfModelContextHelper的成员函数build()
(gdb) lbs::common::TtfModelContextHelper::build
查看断点信息
(gdb) info break
删除断点(根据断点号),删除断点好为1的断点
delete 1
运行run命令,程序运行到断点处停止:
(gdb) run
运行程序,运行到main函数第一行停止:
(gdb) start
运行下一步
(gdb) n
继续continue
(gdb) c
退出函数
(gdb) finish
列出代码:
(gdb) l
从第10行列出
(gdb) l 10
(gdb) l main
(gdb) p i
查看函数堆栈命令:
查看函数堆栈中上一层的调用代码:
查看函数堆栈中下一层的调用代码:
查看函数堆栈中第2帧(frame)调用代码:
退出gdb,在gdb环境下输入命令:
(gdb) quit
任务执行时调用函数:
call param_analyze()
查看数组内容:
p *array_name@len
比如 p *a@10,查看数组a的前10项内容
gdb查看core文件:
gdb exe core.67842
core.67842为core文件,exe为core对应的可执行文件
跟踪调试正在运行的进程 44179为进程号。
gdb exe 44179
或者
gdb attach 44179
其它:
查看数据结构 ptype 结构体名或者对应变量名
info source 查看当前文件信息
return xxx 在当前函数中直接返回xxx
编译时 CFLAGS 或者CXXFLAGS-gdwarf-2和-g3,可以使用macros macro命令
eg:
info macro USING_NNET
macros
如果打开printf pretty这个选项,那么当GDB显示结构体时会比较漂亮。(off关闭)
set print pretty on
执行到某一行停住:(执行到123行停住)
until 123
参考:
http://blog.csdn.net/horkychen/article/details/7800048
http://www.cnblogs.com/hankers/archive/2012/12/07/2806836.html
(较全面)http://blog.csdn.net/dadalan/article/details/3758025
- GDB调试
- gdb 调试
- gdb调试
- gdb 调试
- GDB调试
- GDB调试
- GDB调试
- GDB调试
- GDB调试
- GDB调试
- gdb 调试
- GDB 调试
- gdb 调试
- GDB调试
- gdb调试
- gdb调试
- GDB 调试
- GDB调试
- 数据结构:栈的顺序存储实现
- 读《深度探索C++对象模型》有感
- Cygwin下编译MySQL源码遇到的问题解决方法
- How to transfer image file to server from android
- Linux查看硬件信息及驱动设备
- gdb调试
- tomcat 设置path 访问路径
- 在mac上抓包
- [leetcode][DP] Best Time to Buy and Sell Stock III
- DDconnectionBroker连接池(MySQL)
- 青春是我的专利也是你的专利他的专利
- php 可供参考的教程
- 数据结构:栈的应用(迷宫的求解)
- iOS- 九宫格解锁