C 模式下将会有“自动缩进显示”、“注释”、“预处理扩展”、“自动状态”等强大功能。还可以通过按【Tab】键来重新产生缩进,
使代码结构清晰、美观。在默认模式下,emacs 将遵循编码标准的GUN 风格。下面将对emacs 的几个功能进行简单介绍。
一、选择编程样式
在默认的情况下,启动c-mode或者启动c++-mode时的编程样式是gun,输入M-x c-set-style Ret, [Tab] k&r Ret。我比较喜欢K&R样式或者Kwr样式。
二、缩进和括号匹配
M-x electric-pair-mode 启用或者关闭括号匹配。
或者在.emacs 中写入
;; auto close bracket insertion. New in emacs 24
(electric-pair-mode 1)
;; make electric-pair-mode work on more brackets
(setq electric-pair-pairs '(
(?\" . ?\")
(?\{ . ?\})
) )
M-x electirc-indent-mode 启用或者关闭 缩进模式
三、注释
在 emacs 的C 模式下,输入“M-:”命令就可以使编译器产生一个右缩进的注释符号对。然后就可以在这个区域下书写自己的注释。
四、语法高亮
emacs使用C预编译器运行代码的一部分,以便让程序员检测宏、条件编译以及include等语句的效果。这点在我们检查语法错误和分析程序时至关重要。例如,当我们在编辑窗口中输入“#include <stdio.h>”之后,如果机器没有选择高亮显示,那么C语言中关键词的颜色跟普通文本一样;但是,如果我们按【Alt+X】组合键,进入缓冲区输入“global-font-lock-mode”(C 语言全局字符锁定模式)之后,输入的语法将高亮显示。
五、自动缩进。
当运行在自动状态下,程序员输入代码时,C 环境会自动插入新行、处理缩进并完成其他相关的任务。当用户输入“C-c”和“C-a”时,系统进入自动状态。如果用户输入分号,那么光标将会自动切换到下一行,并自动缩进。要关闭自动状态,只要再次输入“C-c”和“C-a”即可。
六、编译、调试
emacs 的编译、调试也是经常使用的功能之一。在emacs 中输入“M-x compile”后输入编译命令就可实现文件编译功能。在默认情况下,M-x compile 使用“Make –k”来编译代码,当然默认状态下要求在当前目录下必须有Makefile文件,如果没有Makefile文件,我们也可以调用其他编译工具,如GCC 等。如果在编译中出现错误和警告,用户同样可以使用“M-x gdb”来调用gdb调试器。
打开 GDB调试后,输入“C-c”和“C-a”后光标就会自动定位在当前错误的行上。要查看当前错误的下一个错误,可输入“C-x”,此时光标会移到下一个错误的一行行首。
常用的调试命令,可以简写
命令 | 意义 | 用法 |
list | 从第一行开始列出源码(默认10行) | l l 3 (开始行) |
break | 设置断点。两可以使用“行号”“函数名称”“执行地址”等方式指定断点位置。 | b <行号> |
run | 开始调试程序 | r |
continue | 继续执行被调试程序,直至下一个断点或程序结束。 | c |
clear | 删除特定行的断点 | clear <行号> |
delete | 删除断点,编号从1开始 | d <编号> |
next line | 执行一行源程序代码,此行代码中的函数调用也一并执行。 | n |
step line | 执行一行源程序代码,如果此行代码中有函数调用,则进入该函数 | s |
until | 结束当前循环 | until |
可以检查各个变量的值,数组的值,以及函数等 | print p (p为变量名) print $1 ($1为历史记录变量,在以后可以直接引用 $1 的值) 显示数组: p <数组名> 显示数组元素:p <*数组指针> 显示数组int a[N]的特定值: ① p *a@10 ② p (int [10])*10 | |
whatis | 可以显示某个变量的类型 | whatis p |
info | 用于显示各类信息 | 如:info b 显示断点信息 info r 寄存器信息 info local 显示当前函数中的局部变量信息 info prog 显示被调试程序的执行状态 |
quit | 退出gdb调试 | q |
gdb调试:
出现此问题:Missing separate debuginfos, use: debuginfo-install glibc-2.17-106.el7_2.4.x86_64
解决方法:
/etc/yum.repo.d/sudo vim CentOS-Debuginfo.repo
设置enabled=1
1、 修改文件/etc/yum.repos.d/CentOS-Debuginfo.repo中的enabled参数,将其值修改为1,如:vi /etc/yum.repos.d/CentOS-Debuginfo.repo
yum install nss-softokn-debuginfo --nogpgcheck
3、 使用命令:
debuginfo-install glibc
如果出现下面的问题:
-bash: debuginfo-install: command not found
则先安装yum-utils,使用命令:
yum install yum-utils
4、安装:glibc-2.17-106.el7_2.4.x86_64,使用命令:
debuginfo-install glibc-2.17-106.el7_2.4.x86_64