linux下c编程
来源:互联网 发布:树莓派网络摄像头 编辑:程序博客网 时间:2024/05/17 07:15
配置好linux,我想做的就是试试gcc,但作为小白,还得网上找教程,看的没有很简单的介绍,正好自己慢慢摸索写一篇。
首先c语言我已经不陌生了,很快用文本编辑器写一个简单的sum程序,关键学学用命令行的形式来调试。
在终端中输入gcc sum.c,会产生默认的a.out可执行文件,然后输入./a.out就在终端中输出结果了。
但不能总直接用这个,写下一个程序就会覆盖掉第一个a.out,所以用gcc -o sum sum.c,产生sum文件
还有些-c,-s 的命令目前没有涉及,用的时候再看
然后是调试,我原来在win中就习惯用f10单步运行,linux中也有强大的调试功能
输入gcc -g sum.c -o test 加-g选项产生debug信息
然后gdb test,执行此命令后会出现gdb的版本号等信息
在(gdb)后输入如下命令(可以用首字母)
list:列表显示源代码。
(gdb) list //一次显示十行程序
(gdb) list <line-number> //显示参数行之前和之后的10行内容,比如list 10,会将5-14之间的内容打印出来
(gdb) list <line1,line2> //显示参数之间的内容
next:执行一行源代码但不进入函数内部。
step:执行一行源代码而且进入函数内部。
run:执行当前被调试的程序
run <arg1 arg2...>
quit:终止gdb
watch:监视一个变量的值
break:在代码里设置断点,程序执行到这里时挂起
1.设置断点
(gdb)break <line-number> //某行设置
(gdb)break <function-name> //某个函数前设置断点
2.有时需要查看运行中变量等于某个值时,程序的状态,比如for循环执行到第几次时相关变量的值。这时可以使用断点。
(gdb)break <line-number> if <conditional expression> //表达式符合C语法
(gdb)break 10 if i==3
注:条件表达式中的变量必须是在设置断点的行的变量作用域内。
3.如果断点已经设置好,可以使用condition 命令为指定断点添加条件
(gdb)condition break-number if <expression>
4.可以在指定的源文件中设置断点
(gdb)break <filename:line-number>
(gdb)break <filename:function-name>
如:(gdb)break main.c:10
(gdb)break main.c:main
5.删除断点
(gdb)info break //打印所有断点信息
(gdb)delete breakpoint <point-number>
6.观察点(数据断点)
(gdb)watch <condition>
断点与观察点的区别:1.所有使用与breakpoint的操作都适用于watchpoint
2.断点是CPU到某一地址取指令时中断,观察点是CPU到某一地址读写数据时中断。
make:不退出gdb而重新产生可执行文件
shell:不离开gdb而执行shell
kill:终止正在调试的程序。- Linux下C编程
- linux下c编程
- Linux下c编程
- linux下C编程
- linux下c编程
- Linux下C编程
- 【Linux】Linux 下C编程
- Linux 下 C 语言编程
- Linux下C语言编程
- Linux 下 C 语言编程
- Linux下C编程注意事项
- Linux 下 C 语言编程
- linux下C语言编程
- Linux 下 C 语言编程
- Linux下C语言编程
- Linux 下 C 语言编程
- Linux 下 C 语言编程
- Linux下C语言编程
- 北京大学ACM1000题总结
- Java关键字final、static使用总结
- 没有可用于当前位置的源代码
- Application Loader下载安装和发布app程序
- 16、2005年11月金山笔试题。编码完成下面的处理函数。函数将字符串中的字符'*'移到串的前部分,前面的非'*'字符后移,但不能改变非'*'字符的先后顺序,函数返回串中字符'*'的数量。如原始串为:
- linux下c编程
- android CustomScrollView上下左右同时滑动
- 转:关于越野能力测试
- 扩展欧几里得原理
- SSH原理与运用
- Apache MINA 应用进阶
- 无聊的得分方式
- 蓝桥杯:错误票据(排序)
- easybuild8000 没连接plc时不显示 “no response ”对话框的方法