Emacs使用c-mode

进入emacs 后,输入M-x然后输入C-mode即进入C模式。

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

设置断点。两可以使用“行号”“函数名称”“执行地址”等方式指定断点位置。 
其中在函数名称前面加“*”符号表示将断点设置在“由编译器生成的prolog代码处”。如果不了解汇编,可以不予理会此用法。

  b <行号> 
  b <函数名称> 
  b *<函数名称> 
  b *<代码地址>

run 开始调试程序   r
continue 继续执行被调试程序,直至下一个断点或程序结束。   c
clear 删除特定行的断点   clear <行号>
delete 删除断点,编号从1开始   d <编号>
next line 执行一行源程序代码,此行代码中的函数调用也一并执行。   n
step line 执行一行源程序代码,如果此行代码中有函数调用,则进入该函数   s
until 结束当前循环   until
print 可以检查各个变量的值,数组的值,以及函数等 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

2、 使用命令:

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值