gdb调试必须是gdb a.out吗?如果一个程序有错误,不能生成a.out,我想用gdb调试查找错误,怎么弄?

如题所述

第1个回答  2012-06-11
unix系统中没有后缀名的概念。可执行文件a和a.out都是一样的。
gdb 调试:
1.gdb a.out 进入gdb控制台
2.set args [arg_list](设置参数,也就是main(int argc,char **argv)中的argv字符串,没有这不需要设置)
3.设置断点
1):b 文件名:行数,如:b test.c:20
2):b 函数名,如:b main
3):查看断点信息 info b
4.启动程序 r 或 run
5.单步调试 s / step (遇函数进入)
6.多步调试 n [运行行数] (遇函数不进入) 默认一步
7.显示变量值 p [变量名]
8.查看堆栈 bt [栈顶行数] 默认 5行
9.退出GDB控制台 quit
。。。。。
最简单的调试就这几步
GDB调试网上资料很多,你可以去搜索下。
另外要如果要学习UNIX/LINUX编程,推荐一本很实用的入门书籍《unix/linux编程实践教程》清华大学出版 Bruce Molay著,杨宗源、黄海涛翻译。非常经典。只要有c的基础就可以学习。而且可以初步认识unix/linux系统,编出实用的小程序哦。本回答被提问者和网友采纳
第2个回答  2012-06-11
那样的话,编译期就报错,你就看编译提示啊