cgdb安装与使用
官网:http://cgdb.github.io/
安装
# wget http://cgdb.me/files/cgdb-0.6.7.tar.gz
# tar -zvxf cgdb-0.6.7.tar.gz
# cd cgdb-0.6.7
# ./configure --prefix=/usr/local
# make && make install
使用
1:cgdb分为上下两栏,上面类似于vi窗口(就称之为vi窗口吧)显示对应的代码,下面gdb窗口进行调试操作,上下窗口连动,也就是说vi窗口里显示的代码会跟随gdb窗口里调试的位置同步进退。
2:按esc键可让输入焦点进入到vi窗口,再按 i 键回到gdb窗口。按其它键也可以进入到vi窗口,比如小键盘上的按键(如果此时Num Lock处于打开状态)。
3:vi窗口可进行的操作包括,上下左右翻动,按冒号(:)开始进行设置,比如设置上面窗口全屏显示(即下面的gdb窗口被隐藏),按斜干(/)为在当前文件内搜索,按o键可以显示当前程序关联的文件列表。设置断点按 "空格" 键, 取消断点按 "空格" 键。
4:通过在代码窗口中键入o 来打开文件对话框窗口。当您打开了文件对话框窗口后,需要通过键入q 来关闭它。您可以通过方向键来选择您想要的文件,按回车键选中文件,甚至可以使用正则表达式去搜索文件。
打开gdb
- 在命令行下输入 'cgdb' 运行CGDB
- 在GDB窗口输入 'quit' 或者按下 'Ctrl+D' 退出CGDB
- 在源代码窗口输入 ':quit' 也可以退出CGDB。这在GDB挂起或者运行一条耗时很长的指令时也同样起作用
cgdb窗口
k
up arrow
向上移动一行j
down arrow
向下移动一行h
left arrow
向左移动一列l
right arrow
向右移动一列Ctrl-b
page up
向上翻一页Ctrl-u
向上翻半页Ctrl-f
page down
向下翻一页Ctrl-d
向下翻半页gg
移动到文件顶部G
移动到文件底部/
从当前光标处向下搜索?
从当前光标处向上搜索n
继续向下搜索N
继续向上搜索o
打开文件对话框窗口spacebar
在当前行设置断点t
在当前行设置一个临时断点-
将代码窗口缩小一行=
将代码窗口增大一行_
将代码窗口缩小25%(当TTY窗口显示的时候,将TTY窗口缩小一行)+
将代码窗口增大25%(当TTY窗口显示的时候,将TTY窗口增大一行)Ctrl-l
清屏并重绘F5
发送一个run命令至GDBF6
发送一个continue命令至GDBF7
发送一个finish命令至GDBF8
发送一个next命令至GDBF10
发送一个step命令至GDB代码窗口
q
将会退出文件对话框并返回代码窗口k
up arrow
向上移动一行j
down arrow
向下移动一行h
left arrow
向左移动一行l
right arrow
向右移动一行Ctrl-b
page up
向上翻一页Ctrl-f page down
向下翻一页/
从当前光标处向下搜索?
从当前光标处向上搜索n
继续向下搜索N
继续向上搜索enter
选择当前的文件GDB窗口
I
让用户进入TTY模式T
打开一个窗口并将输入传递给被调试的程序Ctrl+T
为被调试程序打开一个新的tty-
将代码窗口缩小一行=
将代码窗口增大一行_
将代码窗口缩小25%(当TTY窗口显示的时候,将TTY窗口缩小一行)+
将代码窗口增大25%(当TTY窗口显示的时候,将TTY窗口增大一行)k
up arrow
向上移动一行j
down arrow
向下移动一行h
left arrow
向左移动一列l
right arrow
向右移动一列Ctrl-b
page up
向上翻一页Ctrl-u
向上翻半页Ctrl-f
page down
向下翻一页Ctrl-d
向下翻半页gg
移动到文件顶部G
移动到文件底部/
从当前光标处向下搜索?
从当前光标处向上搜索n
继续向下搜索N
继续向上搜索o
打开文件对话框窗口spacebar
在当前行设置断点t
在当前行设置一个临时断点Ctrl-l
清屏并重绘F5
发送一个run命令至GDBF6
发送一个continue命令至GDBF7
发送一个finish命令至GDBF8
发送一个next命令至GDBF10
发送一个step命令至GDB附加进程
#cgdb -p pid
参考文献:
汉化文档
cgdb的介绍和使用(lenky)
相关文章:

[MFC]多线程传参问题 [AfxBeginThread]
前言MFC中使用多线程比较简单,大家都推荐用AfxBeginThread来实现,但使用过程中确遇到传入this之后不能得到对象内部字段数据的问题。正文一、问题代码1.1 Test.h#pragmaonceclassCTest{public: CTest(void); ~CTest(void); voidThreadMethod…
学习Python,这22个包怎能不掌握?
作者 | Erik-Jan van Baaren译者 | 弯月,责编 | 屠敏头图 | CSDN 下载自东方 IC出品 | CSDN(ID:CSDNnews)以下为译文:如今全球各个行业内 Python 的使用状况怎么样呢?这个问题就是我写这篇文章的初衷。我找…

JSTL标签库的一些基础实例
如题所示,只是一些简单的入门实例,代码如下:<% page language"java" import"java.util.*" pageEncoding"UTF-8"%> <%taglib prefix"c" uri"http://java.sun.com/jsp/jstl/core"%…
旷视提Circle Loss,统一优化视角,革新深度特征学习范式 | CVPR 2020
作者 | 旷视研究院本文是旷视 CVPR 2020的被收录论文解读第。它提出用于深度特征学习的Circle Loss,从相似性对优化角度正式统一了两种基本学习范式(分类学习和样本对学习)下的损失函数。通过进一步泛化,Circle Loss 获得了更灵活…

收藏好玩的网站
1.输名字出照片 http://turnyournameintoaface.com/?name2.看google页面可以做成这样http://mrdoob.com/projects/chromeexperiments/google_gravity/3. 有趣的在线人脸变动物(川剧中有变脸,其实你也可以滴!)http://youwild.org/…
GDB 格式化结构体输出
set print address set print address on 打开地址输出,当程序显示函数信息时,GDB会显出函数的参数地址。系统默认为打开的, show print address 查看当前地址显示选项是否打开。 set print array set print array on 打开数组显示ÿ…

Kinect For Windows V2开发日志九:侦测并绘制人体骨架
简介 在上一篇《侦测、追踪人体骨架》里,介绍了关节点的使用办法,这一篇记录将关节点与OpenCV结合的绘图方法。 代码 #include <iostream> #include <opencv2\imgproc.hpp> #include <opencv2\calib3d.hpp> #include <opencv2\high…

拨号连接或 ××× 连接的错误代码列表
本文列出了在使用Windows 2000、Windows XP 或 Windows Server 2003 作为客户机,建立拨号连接或 连接时可能收到的错误代码。注意:只有在尝试连接到正运行Windows 2000 或更高版本的路由和远程访问服务器时,才会看到编号高于 900 的错误代码…
“程序员数学不行,干啥都不行!”高级开发:90%都是瞎努力!
之前有很多读者留言向我们反馈:数学不好做算法优化,每次遇到不一样的问题就不会了,要是赶上面试基本就凉凉了。平时很难搞懂像数据结构、算法、复杂的语句等等,因为这些核心原理都是数学。而且光会基础数学远远不够,还…
Redis源码分析--lookupKey函数查看value值
lookupKey函数查看value值 robj *lookupKey(redisDb *db, robj *key) {dictEntry *de dictFind(db->dict,key->ptr);if (de) {robj *val dictGetVal(de);/* Update the access time for the ageing algorithm.* Dont do it if we have a saving child, as this will t…

PHP获取时间排除周六、周日的两个方法
//方法一: <?php $now time(); //指定日期用法 $now strtotime(2014-01-08) ; $day 3600*24; $total 12;$days array() ;for ($i2;$i<$total;$i) {$timer $now$day*$i;$num date("N",$timer)-2; //周一开始if($num>-1 and $num<3){if(c…

SMS2003 SP3+SQL Server2000 SP4部署(下)
<?xml:namespace prefix o />SMS2003 SP3SQL Server2000 SP4部署(下)<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />E.SMS2003安装在berlin上放入SMS2003光盘镜像,选择SMS2003出现SMS2003安装向导ÿ…

redis源码分析--zslRandomLevel位运算解析
与&运算 0376的二进制就是1111 1110,二进制的与运算规则是,只有两个数同时为1时,则结果才为1,只要有一个数为0,则结果就为0。比如1&11; 1&00; 0&10; 0&00;因此把一个字符与二进制1111 1110进行与…
从零开始构建:使用CNN和TensorFlow进行人脸特征检测
作者 | Shubham Panchal译者 | 孟翔杰来源 | DeepHub IMBA出品 | AI科技大本营(rgznai100)人脸检测系统在当今世界中具有巨大的用途,这个系统要求安全性,可访问性和趣味性!今天,我们将建立一个可以在脸上绘…

scope重定义
.directive(myAttr, function() {return {restrict: E,scope: {customerInfo: info},template: Name: {{customerInfo.name}} Address: {{customerInfo.address}}<br> Name: {{vojta.name}} Address: {{vojta.address}}}; }); directive中的几个属性: restric…
基于轮廓调整的SOTA实例分割方法,速度达32.3fps | CVPR 2020
作者 | VincentLee来源 | 晓飞的算法工程笔记介绍实例分割是许多计算机视觉任务中的重要手段,目前大多数的算法都采用在给定的bbox中进行pixel-wise分割的方法。受snake算法和Curve-GCN的启发,论文采用基于轮廓的逐步调整策略,提出了Deep sna…

Redis运行流程源码解析
原文作者:凡趣科技 pesiwang 原文地址:http://blog.nosqlfan.com/html/4007.html 本文分析源码基于 Redis 2.4.7 stable 版本。 概述 Redis通过定义一个 struct redisServer 类型的全局变量server 来保存服务器的相关信息(比如:…

2010年5月blog汇总:OpenExpressApp、其他
OpenExpressApp 信息系统开发平台OpenExpressApp - 框架待完善工作事项信息系统开发平台OpenExpressApp - 报表模块支持ReportObjectView信息系统开发平台OpenExpressApp - 从compositewpf到MEF信息系统开发平台OpenExpressApp - …

注意!Linux glibc再曝漏洞,可导致Linux软件劫持
2019独角兽企业重金招聘Python工程师标准>>> glibc是GNU发布的libc库,即c运行库。它是Linux系统中最底层的API,几乎其它运行库都会依赖于glibc。 近日,Google和Red Hat的安全人员发现GNU C Library (glibc)中存在严重的安全漏洞&a…

redis常用命令参考
操作Redis数据库 下面我们来简单的操作一下数据库。在实例开启的情况下: 1、插入数据 redis 127.0.0.1:6379> set name wwl OK 设置一个key-value对。 2、查询数据 redis 127.0.0.1:6379> get name "wwl" 取出key所对应的value。 3、删除键…

Script:收集UNDO诊断信息
以下脚本可以用于收集Automatic Undo Management的必要诊断信息,以sysdba身份运行: spool Undo_Diag.out ttitle off set pages 999 set lines 150 set verify off set termout off set trimout on set trimspool onREM REM ----------------------------------…
又要头秃?2020年七大AI编程语言大盘点
作者 | Claire D译者 | 苏本如,编辑 | 伍杏玲来源 | CSDN(ID:CSDNnews)人工智能已成为我们日常生活不可或缺的一部分,它被广泛地应用到几百种实际场景中,极大地便利人们的工作和生活。随着近年来的发展&…

I.MX6 bq27441 driver hacking
/************************************************************************** I.MX6 bq27441 driver hacking* 声明:* 本文主要是记录对电池计量芯片bq27441芯片驱动注册过程进行代码跟踪。** 2016-2-…
PHP5.5的一点变化
之前一直使用eAccelerator,参考:PHP安装eAccelerator 注意PHP5.5以后暂时不能使用eAccelerator 原因:其中一个我知道的是eAccelerator中使用了: php_register_info_logo(EACCELERATOR_VERSION_GUID, "text/plain", (un…

虚拟机的操作系统的安装
虚拟机的操作系统的安装启动虚拟机进入下一步,按Enter键开始安装。按F8许可协议选则C创建分区再按C,将未划分的分区划分按ENTER继续,选择NTFS文件系统格式化磁盘分区写上姓名和单位,单击下一步直接点击关闭<?xml:namespace pr…
2020,国产AI开源框架“亮剑”TensorFlow、PyTorch
「AI技术生态论」 人物访谈栏目是CSDN发起的百万人学AI倡议下的重要组成部分。通过对AI生态专家、创业者、行业KOL的访谈,反映其对于行业的思考、未来趋势的判断、技术的实践,以及成长的经历。 2020年,CSDN将对1000人物进行访谈,形…

Centos下部署Solr 搜索引擎
一、环境准备:系统环境:centos 6.5tomcat 7.0.47jdk-7u9solr-4.7.0首先将软件包上传到/tmp目录下1、 jdk安装[rootsvn-server /]# cd /tmp/ [rootsvn-server /]#tar zxvf jdk-7u9-linux-x64.tar.gz[rootsvn-server /]#mv jdk1.7.0_09 /u…

Redis源码分析-TCMalloc
redis很多地方都在调用zmalloc函数 zmalloc在这里定义zmalloc.c void *zmalloc(size_t size) {void *ptr malloc(sizePREFIX_SIZE);if (!ptr) zmalloc_oom_handler(size); #ifdef HAVE_MALLOC_SIZEupdate_zmalloc_stat_alloc(zmalloc_size(ptr));return ptr; #else*((size_t…
让AI训练AI,阿里和浙大的“AI训练师助手”是这样炼成的
不久前,人力资源社会保障部发布了一种炙手可热的新职业:AI训练师。没想到,浙江大学与阿里安全的人工智能训练师马上创造出一个 “AI训练师助手”,高效打造AI深度模型,应对海量应用场景的增加,让AI训练模型面…

用 Navicat for Oracle 管理 Oracle10g/11g 数据库
Navicat for xxx 是一个优秀的数据库管理客户端,有 MySQL、Oracle 等版本。建议大家最好用 Enterprise 版本,功能全面一些,但较之于免费的 Lite 版,企业版可是要花银子买的。 安装 Navicat for Oracle 后,首先需要建一…