NOI Linux下Emacs && gdb调试方法
1. 首先要配置emacs文件:
- (global-linum-mode t)
- (show-paren-mode t)
- (global-set-key (kbd "C-s") 'save-buffer)
- (global-set-key (kbd "RET") 'newline-and-indent)
- (global-set-key [f9] 'compile)
- (global-set-key [C-f7] 'gud-gdb)
- (global-set-key (kbd "C-z") 'undo)
- (global-set-key (kbd "C-c") 'kill-ring-save)
- (global-set-key (kbd "C-v") 'yank)
- (global-set-key (kbd "C-a") 'mark-whole-buffer)
- (global-set-key (kbd "C-y") 'kill-whole-line)
- (custom-set-variables
- ;; custom-set-variables was added by Custom.
- ;; If you edit it by hand, you could mess it up, so be careful.
- ;; Your init file should contain only one such instance.
- ;; If there is more than one, they won't work right.
- '(inhibit-startup-screen t)
- '(show-paren-mode t))
- (custom-set-faces
- ;; custom-set-faces was added by Custom.
- ;; If you edit it by hand, you could mess it up, so be careful.
- ;; Your init file should contain only one such instance.
- ;; If there is more than one, they won't work right.
- '(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调试命令
先打:
- b main
- 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键)
NOI Linux下Emacs && gdb调试方法的更多相关文章
- LINUX下的gdb调试方法
首先对目标文件进行编译 例如: gcc test.c -o test 这时会生成一个文件test,然后我们就可以对test进行调试了 示例: gdb test 好了以后是设定断点 示例: break ...
- linux下core文件调试方法
http://www.cnblogs.com/li-hao/archive/2011/09/25/2190278.html 在程序不寻常退出时,内核会在当前工作目录下生成一个core文件(是一个内存映 ...
- linux下core文件调试方法(转载)
转自于:http://blog.csdn.net/fcryuuhou/article/details/8507775 在程序遇到段错误不寻常退出时,一般是访问内存出错.但是不会给出程序哪里出现的问题, ...
- linux下的程序调试方法汇总
搞电子都知道,电路不是焊接出来的,是调试出来的.程序员也一定认同,程序不是写出来的,是调试出来的.那么调试工具就显得尤为重要,linux作为笔者重要的开发平台,在linux中讨论调试工具主要是为那些入 ...
- Linux下用gdb 调试、查看代码堆栈
Linux中用gdb 查看代码堆栈的信息 core dump 一般是在segmentation fault(段错误)的情况下产生的文件,需要通过ulimit来设置才会得到的. 调试的话输入: gd ...
- php 502 无错误行和报错文件的情况下使用gdb调试方法
lnmp环境 gdb /usr/local/php5.2/bin/php-cgi /tmp/coredump-php-cgi.20503 source /home/tmp/lnmp1.4-full ...
- Linux中的gdb调试方法总结
- linux下使用gdb对php源码调试
title: linux下使用gdb对php源码调试 date: 2018-02-11 17:59:08 tags: --- linux下使用gdb进行php调试 调试了一些php的漏洞,记录一下大概 ...
- Linux下使用GDB进行调试
Linux下使用GDB进行调试的常用命令记于此. $ sudo su # g++ -g test.cpp -o test -pthread # gdb test <------- ...
随机推荐
- @Transactional(rollbackFor=Exception.class)的使用
转载: java阿里巴巴规范提示:方法[edit]需要在Transactional注解指定rollbackFor或者在方法中显示的rollback. 先来看看异常的分类 error是一定会回滚的 这里 ...
- Linux中Qt的安装
1.下载Ot安装包 Qt5.30的下载地址如下,在网页中打开找到需要的资源,下载.run格式的安装软件. http://download.qt.io/archive/qt/5.3/5.3.0/qt-o ...
- Greatest Common Increasing Subsequence
/*HDU1423 最长公共递增*/ #include <stdio.h> #include <string.h> #include <iostream> usin ...
- Spring事务回滚
配置事物: @Configuration /**强制使用cglib代理时就把proxy-target-class设为true.*/ @EnableTransactionManagement(proxy ...
- 20145312 《Java程序设计》第十周学习总结
20145312 <Java程序设计>第十周学习总结 学习笔记 Chapter 17反射与类加载器 17.1 运用反射 .class文档反应了类基本信息,因而从Class等API取得类信息 ...
- 分布式系列 - dubbo服务发布
单元测试OK,封装为Dubbo服务. 添加依赖 pom.xml <properties> <dubbo.version>2.5.3</dubbo.ve ...
- JAVA基础补漏--泛型通配符
泛型通配符只能用于方法的参数 不能用对象定义 public class Test { public static void main(String[] args) { ArrayList<Str ...
- AVL模板
感谢此博客 #include <bits/stdc++.h> #define pb push_back #define mp make_pair #define de(x) cout &l ...
- 解题报告:poj1083 Moving tables
2017-09-02 19:49:59 writer:pprp 题意说明: 比较简单的题,一开始被吓到了,后来才发现,其实可以用很简单的方法就可以解决: 就是在这样的房间中如果在i 和 j 中之后的1 ...
- 淘海外分发Job 多线程demo
using System;using System.Collections.Generic;using System.Configuration;using System.Diagnostics;us ...