LINUX 下编写C程序代码的工具

  1. 编辑工具—vim
  2. 编译工具—gcc
  3. 调试工具—gdb

gcc和gdb的版本上面必须保持同步性质,否则低版本的gdb不能够很好的工作在高版本的gcc上(http://www.gnu.org/software/gdb/ 这是新的gdb的下载地址)。


gdb 的学习参考网址:
- https://gitlore.com/gitlore-git/gdb_tips/index.html
- http://blog.csdn.net/liigo/article/details/582231/

gdb 的学习的过程应该是一个渐进的过程,想快速掌握他需要一定的时间。上面的网址有详细的学习方式,这里提供一个基本的学习思路。

首先,我们要明白调试的目的是什么?我们调试的目的就是想知道当我们执行到某个语句的时候,此时的系统的状态是个什么样子(通常我们关心这个状态是不是我们预期的状态)。我们通常关心某些变量的值,系统的堆栈状态,如果是多线程程序,我们可能会关心线程的运行情况。

其次,我们知道gdb是一个基于命令行的调试工具,他不具备IDE的调试窗口,IDE 通常可以一次性展示多个窗口。这些虽然gdb不具备这样的功能,但是gdb提供的功能已经够我们使用了。

了解了这些,我们现在来说明一下具体的调试方法和步骤。
1.使用gcc编译一个C代码文件,必须加上“-g”选项,生成a.out可执行文件。
2.执行gdb命令
3.使用file a.out
4.使用start开始调试
5.使用n单步调试
6.如果遇到函数,我们可以使用s进入函数
查看变量的值,使用p命令,比如如果我们想查看变量n的值,我们可以使用p n
查看堆栈,使用bt命令

查看源代码我们可以使用l命令

设置断点我们使用b命令
取消断点我们可以使用d命令
查看断点信息我们使用info b命令行

r命令一直执行到有断点出或者整个程序的终止处

以上就是基本的命令说明,具体的方式,还需要自己自行使用。


vim学习参考地址:
- https://zhuanlan.zhihu.com/learn-vim
- http://coolshell.cn/articles/5426.html

基本功能:

立即查找当前字符串:

  1. 使用光标定位字符串
  2. 使用 shift+* 锁定字符串
  3. 使用n查找下一个
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 在linux编写一个应用程序,命名为an_ch2_1b。这个程序不断地输出如下行:Those output come from child,[系统时间] 另外写一个应用程序,命名为an_ch2_1a。这个程序创建一个子进程,执行an_ch2_1b。这个程序不断地输出如下行: Those output come from child,[系统时间] 观察程序运行的结果,并对你看到的现象进行解释。 2. 在linux环境下编写一个控制台应用程序程序中有一个共享的整型变量shared_var,初始值为0;创建一个线程并使其立即与主线程并发执行。新创建的线程与主线程 均不断地循环,并输出shared_var 的值。主线程在循环中不断地对shared_var 进行加1操作,即每次循环shared_var 被加1;而新创建的线程则不断地对shared_var 进行减1 操作,即每次循环shared_var 被减1。观察程序运行的结果,并对你看到的现象进行解释。 理发师问题的描述:一个理发店接待室有n张椅子,工作室有1张椅子;没有顾客时,理发师睡觉;第一个顾客来到时,必须将理发师唤醒;顾客来时如果还有空座的话,他就坐在一个座位上等待;如果顾客来时没有空座位了,他就离开,不理发了;当理发师处理完所有顾客,而又没有新顾客来时,他又开始睡觉。 1. 实现一个“difftree”命令,其功能是比较两个目录下的文件结构和文件信息。当在命令行方式下执行“difftree ”命令时,能够比较目录dir1和 目录dir2是否具有相同的结构,对相同的部分,进一步比较相同文件名的文件内容。列出比较的文件系统结构图。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值