1. 首先要配置emacs文件:
1 (global-linum-mode t) 2 (show-paren-mode t) 3 (global-set-key (kbd "C-s") 'save-buffer) 4 (global-set-key (kbd "RET") 'newline-and-indent) 5 (global-set-key [f9] 'compile) 6 (global-set-key [C-f7] 'gud-gdb) 7 (global-set-key (kbd "C-z") 'undo) 8 (global-set-key (kbd "C-c") 'kill-ring-save) 9 (global-set-key (kbd "C-v") 'yank) 10 (global-set-key (kbd "C-a") 'mark-whole-buffer) 11 (global-set-key (kbd "C-y") 'kill-whole-line) 12 (custom-set-variables 13 ;; custom-set-variables was added by Custom. 14 ;; If you edit it by hand, you could mess it up, so be careful. 15 ;; Your init file should contain only one such instance. 16 ;; If there is more than one, they won't work right. 17 '(inhibit-startup-screen t) 18 '(show-paren-mode t)) 19 (custom-set-faces 20 ;; custom-set-faces was added by Custom. 21 ;; If you edit it by hand, you could mess it up, so be careful. 22 ;; Your init file should contain only one such instance. 23 ;; If there is more than one, they won't work right. 24 '(default ((t (:inherit nil :stipple nil :background "white" :foreground "black" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight normal :height 113 :width normal :foundry "bitstream" :family "Courier 10 Pitch")))))
就是C-c, C-v, C-a, C-s, C-z, C-F7 和 F9的快捷键设置
2. 程序编译
先F9,输入 g++ -o xxx xxx.cpp -g -Wall (-Wl,-stack=1000000) 编译
C-F7调出gdb
3. gdb调试命令
先打:
1 b main 2 r
进入调试,各种调试命令:
单步执行:
n 表示next执行下一行,会跳过函数
s 同理,但不会跳过,而且会进入系统函数= =
fin 表示跳出当前函数,且返回函数值 ex:"Value returned is $1 = (const int &) @0x8058cfc: 1"
b x if xxx 调到x行,并且满足xxx
查看变量:
p x 查看当前变量x的值(同时可以查看数组,显示就和P的一样。。)
disp x 永久查看变量x的值
und 一次性去除所有查看信息
断点:
b x 在line x设置一个断点
c 跳到下一个断点
d 去掉所有断点
其他:
k 杀死进程
q 退出gdb
两次C-c 死循环时退出程序
set print pretty on/off 调试的时候看变量的格式修改
(p.s. 这里的C代表Ctrl键)
By Xs酱~ 转载请说明
博客地址:http://www.cnblogs.com/rausen