Linux程序设计笔记(第9章 开发工具)

来源:互联网 发布:c语言双引号作用 编辑:程序博客网 时间:2024/05/21 07:57

1.编辑器

    Notepad++是一款Windows环境下免费开源的代码编辑器,支持的语言有C,C++,Java,C#,XML,HTML,PHP,Javascript等。

    Vi是所有Unix及Linux系统下标准的编辑器,可以分为三种状态即:命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode)。

    Vim即Vi IMproved,从 Vi 发展出来的一个文本编辑器 ,代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

    Emacs即Editor MACroS(编辑器宏)的缩写,最初由Richard Stallman(理查德·马修·斯托曼)于1975年在MIT协同Guy Steele共同完成。

    Source Insight是一个面向项目开发的程序编辑器和代码浏览器,它拥有内置的对C/C++, C#和Java等程序的分析。


2.编译器

      cc是Unix系统的C Compiler,Linux下的cc是gcc符号连接,可以通过$ls –l /usr/bin/cc来简单察看,该变量是make程序的内建变量,默认指向gcc。

    gcc原名是GNU C Compiler,后因扩展为包含多种语言的编译器,改名为GNU Collection Compiler,即GNU编译器套装。

    gcc++是GNU编译器套装中用于编译C++的编译器。


注:

    符号链接是一种特殊类型的文件,它的内容只是一个字符串。它可能指向一个存在的文件也可能什么都不指向。当您在命令行或程序里提到符号链接的时候,您实际上进入了它指向的文件,前提是这个文件是存在的。


3.调试器

   gdb是GNU开源组织发布的一个强大的UNIX下的程序调试工具。

   kgdb是一个补丁,它可以让我们在远端主机上通过串口利用gdb的所有功能对内核进行调试。这需要两台计算机,第一台运行带偶kgdb补丁的内核,第二台通过串行线使用gdb对第一台进行调试。

   kdb,与kgdb相比,kdb的主要优点之一是它不需要用另一台计算机进行调试,使得调试内核在本地主机上就可以进行。

   kprobes是一个可以动态地收集调试和性能信息的工具,利用它我们很容易的将断点插入到正在运行的内核之中,并且同时指定断点命中时需要执行的函数。

   systemtap,是基于kprobes进行实现的一个诊断linux系统性能或功能问题的调试工具,它提供了一种简单的脚本语言,我们不用再去编写内核模块,而是只需要写一些脚本,然后通过systemtap提供的命令接口就可以轻松地对正在运行的内核进行调试,进而消除了之前调试内核时那些插入调试代码、重新编译安装重启内核等琐碎的工作。

   kdump,上面几种调试工具很难处理已经崩溃的系统。通常调查系统崩溃原因最好的方法就是保存(dump)系统崩溃时的所有信息(比如CPU寄存器的值、内存中的数据等),然后再进行分析。kdump可以保存系统崩溃时状态,是一种非常可信赖的内核崩溃转储机制。它利用了kexec技术,当系统崩溃时,kdump使用kexec快速启动到另一个linux内核,由第二个内核完成对信息的dump,从而保存了系统崩溃的事故现场。

   硬件工具,嵌入式系统中,通常还会使用一些硬件工具进行内核调试。最基本的工具是示波器,也会用到仿真器进行内核调试,如ICE和BM/JTAG调试器。


4.IDE

Windows环境下:

    Visual Studio 2010,是Microsoft推出目的前最流行的Windows平台应用程序开发环境。

Linux环境下:

    KDevelop是根据GNU通用公共许可证(GPL)的条款发布的一个自由软件,用于K桌面环境(KDE)中C和C++程序的IDE


5.版本控制

Unix/Linux中几个被广泛使用的用于管理源文件的系统:

1> SCCS:源代码控制系统,由AT&T在系统V版本的UNIX中引入的最初的源代码控制系统。

2> RCS:版本控制系统,由自由软件基金会发布的作为SCCS的一个免费替换系统。SCCS基本上已被RCS取代。

3> CVS: 并发版本控制系统,是一个比SCCS和RCS更高级的工具,它用于基于互联网的协同开发。可通过网络使用,允许并行开发。

4> Subversion:一个版本控制系统,相对于的RCS、CVS,采用了分支管理系统,它的设计目标就是取代CVS。

5> Git:一个分布式的版本控制系统,最初由Linus Torvalds编写,用作Linux内核代码的管理。

    接下来,重点简述Subversion和Git。

* Subversion

    Subversion是一个“集中式”的信息共享系统。版本库是Subversion的核心部分,是数据的中央仓库。版本库以典型的文件和目录结构形式文件系统树来保存信息。任意数量的客户端连接到Subversion版本库,读取、修改这些文件。客户端通过写数据将信息分享给其他人,通过读取数据获取别人共享的信息。

    如果仅需要安装一个版本库,那么只需要构建一个Subversion客户端,客户端可以是命令行客户端,也可以是GUI客户端。
    如果需要一个网络的版本库,那么需要安装Apache2服务器或者一个Subversion服务器。

Subvesion服务器端:

    *  CollabNet
    *  SlikSVN
    *  VisualSVN
    *  WANdisco
    *  Win32Svn

Subversion客户端:

    *  websvn

    *  TortoiseSVN


推荐文章:

SVN服务器搭建与使用(一)

SVN服务器搭建与使用(二)

SVN服务器搭建与使用(三)


* Git

  Git 是一个快速、可扩展的分布式版本控制系统,它具有极为丰富的命令集,对内部系统提供了高级操作和完全访问。

  GitHub是一个利用Git提供免费的代码托管服务的网站(类似的网站还有老牌的SourceForge),很多著名的项目都托管在上面。




0 0
原创粉丝点击