我常用的gdb命令(未完待续,随时添加)

gdb用于调试程序。

用gdb调试程序,首先需要用gcc或g++编译程序,但是需要加上一个-g参数,比如min.c程序用gcc min.c -o min方式编译之后,用gdb min来运行调试程序,就无法正常使用。要用-g参数:gcc -g min.c -o min的格式(g++也是一样),再用gdb min来运行调试程序就可以了。

list或l:用于列出源程序,每打一次list或l将显示10行源代码,或是指定列出的行号来查看源程序:“list 行号”。使用此参数的时候,要确保源程序没有被移除或移动位置,否则无法查看

break或b:设置断点,可指定断点的行号,或是函数名……

info break:显示断点信息

run或r:运行程序(遇到断点时候暂停)

next:单步运行程序,但不进入函数调用(next不进入函数体内部,把函数当成一个执行步骤来执行)

step或s:单步运行程序,且进入函数调用(区别与next的点)

continue:继续执行函数,直至函数结束或是下一个断点

display:

print:

补充:当我们执行到断点的时候,为了方便测试,我们可以在这个地方为已定义的变量赋值,只需要在gdb提示符下输入:set 变量名=值,然后打入continue继续执行就可以了。

时间: 2024-10-26 22:27:46

我常用的gdb命令(未完待续,随时添加)的相关文章

git个人使用总结 —— idea命令行、撤销commit (未完待续)

近期在使用git,最开始在idea界面操作,后来要求用命令行.刚开始还不是很习惯,感觉很麻烦,用了几天后感觉爽极了! 其实git的命令也不是很多,熟悉一段时间就差不多能顺利使用了.使用过程中遇到了各种各样的问题,有些小问题就在这里集中总结一下. 1.idea命令行.git安装后就自带终端git bash,使用起来很方便.但是用idea开发,开发后还要在相应文件夹下打开git bash很麻烦.其实idea也带有终端terminal,在最下方可以找到,在这里就可以执行命令.但是如果是默认方式安装的g

Linux 命令个人总结====== 未完待续 个人认为比较重要

Linux 命令个人总结====== 未完待续 man [功能说明]: 查看帮助 [语法格式]: man [123456789] 命令.文件. [选项参数]: 数字"1"表示用户命令,比如"ls" 数字"2"表示系统调用 数字"3"表示C语言库函数 数字"4"表示设备或特殊文件 数字"5"表示文件格式和规则 数字"6"表示游戏及其他 数字"7"表示

文件查找命令find (笔记)未完待续

之前所学的grep egrep fgrep 都是用来查找文本中的某个字符匹配的 现在来学一下查找文件命令 locate find locate 此命令是非实时查找文件,它是根据全系统文件数据库进行查找的, 仅用模糊匹配,非精确查找 locate filename 即可实现查找其它相关文件 但是注意有时候如果系统是刚安装的有可能还没建立此数据库,使用该命令会提示查找不到数据库 不过不用担心使用updatedb即可自动生成数据库,生成数据库的时候有时候会很慢,这个根据用户的 磁盘上所放的东西多少决定

数据结构与算法之--高级排序:shell排序和快速排序【未完待续】

高级排序比简单排序要快的多,简单排序的时间复杂度是O(N^2),希尔(shell)排序的是O(N*(logN)^2),而快速排序是O(N*logN). 说明:下面以int数组的从小到大排序为例. 希尔(shell)排序 希尔排序是基于插入排序的,首先回顾一下插入排序,假设插入是从左向右执行的,待插入元素的左边是有序的,且假如待插入元素比左边的都小,就需要挪动左边的所有元素,如下图所示: ==> 图1和图2:插入右边的temp柱需要outer标记位左边的五个柱子都向右挪动 如图3所示,相比插入排序

[daily][optimize] 去吃面 (python类型转换函数引申的性能优化)(未完待续)

前天,20161012,到望京面试.第四个职位,终于进了二面.好么,结果人力安排完了面试时间竟然没有通知我,也没有收到短信邀请.如果没有短信邀请门口的保安大哥是不让我进去大厦的.然后,我在11号接到了面试官直接打来的电话,问我为啥还没到,我说没人通知我我不知道呀.结果我就直接被他邀请去以访客的身份参加面试了.不知道人力的姑娘是不是认识我,且和我有仇,终于可以报复了... 然后,我终于如约到了,面试官带着我去前台登记.前台的妹子更萌...认为我是面试官,面试官是才是来面试的.我气质真的那么合吗?

听风讲MVC丶 —— 一言不合就撸码 (未完待续······)

     希望你看了此小随 可以实现自己的MVC框架     也祝所有的程序员身体健康一切安好                                                                                                                                                ——久伴深海丶默 1.什么是前端控制器(font controller).Java Web中的前端控制器是应用的门面,

C++语言体系设计哲学的一些随想(未完待续)

对于静态类型语言,其本质目标在于恰当地操作数据,得到期望的值.具体而言,需要: (1)定义数据类型 你定义的数据是什么,是整形还是浮点还是字符.该类型的数据可以包含的值的范围是什么. (2)定义操作的含义 操作是严格数据类型相关的.操作表明了对了一个具有特定类型的数据,执行操作后产生什么样结果. =========================================== C++就是一个典型的静态类型语言.在C++中,无论是"数据类型"还是"操作",都分为

关于DOM的一些总结(未完待续......)

DOM 实例1:购物车实例(数量,小计和总计的变化) 这里主要是如何获取页面元素的节点: document.getElementById("...") cocument.querySelector("选择器"); 通过所需的元素节点,得到我们想要的数据做运算. 实例2:伸缩二级菜单 这里主要是逻辑判断,不同的逻辑给不同的className来控制样式. 需求是:一级菜单可以都关闭,但最多只有一个能打开.(思路是,每次都将所有的一级菜单关闭,然后仅打开当前点击的元素,并

一篇文章让Oracle程序猿学会MySql【未完待续】

一篇文章让Oracle DB学会MySql[未完待续] 随笔前言: 本篇文章是针对已经能够熟练使用Oracle数据库的DB所写的快速学会MySql,为什么敢这么说,是因为本人认为Oracle在功能性方面和难度方面都比MySql要高一些,所以精通Oracle的DB在学习MySql的时候,没有必要从头到尾再去搞一遍,只需要掌握两者的用法区别即可.故本篇文章就针对Oracle和MySql的区别来把MySql的知识掌握住,在文章中,实例都是MySql环境下的实例,而Oracle可能知识一句话来概括,所以

scanf ---------未完待续

1.不可读入空格 #include<iostream> #include<stdio.h> using namespace std; int main() { char c[50]; scanf("%s",c); printf("%s",c); return 0; } 2.可以读入空格 用字符 ^ 可以说明补集.把 ^ 字符放为扫描集的第一字符时,构成其它字符组成的命令的补集合,指示 scanf() 只接受未说明的其它字符. #include