Skip to content

Tag Archives: GDB

Emacs+GCC+GDB的最基本用法

用Emacs+GCC+GDB做OI题的最基本用法是很简单的。以下就是我在NOI期间的解决方案。 首先,用Emacs编辑好.cpp程序,例如test.cpp。 然后,M-x compile,把那一行命令改成g++ test.cpp -g -pg,这一行命令会被记住,再次编译同一个文件就不用改这一行了。参数“-g”是为了加入调试信息,“-pg”是为了profiling,若不需要可以去掉这些参数。如果有编译错误会在下面的buffer里显示的,直接用鼠标点就可以跳到相应的行。 如果要调试,直接M-x gdb。 如果要运行,M-x shell,输入a.exe或者./a.out就能运行了。 稍微高级一点点的解决方案是在.emacs中加入一个自定义的编译过程,例如: ;;编译 (defun quick-compile () “A quick compile funciton for C++” (interactive) (compile (concat “g++ ” (buffer-name (current-buffer)) ” -g -pg”)) ) ;;快捷键F9 (global-set-key [(f9)] ‘quick-compile) (注意由于本blog的bug以上代码中的引号有问题,请自行改成英文的单引号和双引号,也就是分号右边的那个键在英文输入法下的效果。) 这样就可以直接按f9编译了,也可以把gdb绑定到你喜欢的键上,同样是写一个global-set-key之类的。 顺便答一位读者问:

叛变Emacs

以前我爱用Vim,总觉得编写代码得心应手,编译调试就力不从心。特别是Vim到底怎么样能够在不用插件的情况下跟gdb完美结合,我到现在也没搞定。偶尔听到有人说Emacs+gdb很爽,就试了一下。按下M-x gdb后,我决定叛变了。 近段用Emacs写几个程序练练手吧,还好Vim没有我想象的那般在我脑中根深蒂固。