gdb vc调试对照表:

实现功能                vc                   gdb

修改后编译              f7                   make

跳出函数(step out)    shift+f11            finish,f

重新启动                ctrl+shift+f5        run,r

运行到指定行            f9+f5                tbreak,tb + continue,c

中断程序                ctrl+alt+break       ctrl+c

中断后继续运行          f5                   continue,c

中断后单步              不可以               next,n

条件中断                无法实现             有多种条件设置方法(附1)

观察变量条件        变量上方右键添加监视      有多种情况处理(附2)

查看断点信息            alt+f9               info break,i b

清除所有断点            ctrl+shift+f9        del,d

清除指定断点            鼠标到指定断点处f9   del 想清除的断点号

跳出循环                在循环后代码除右键运行到此处   until,u(在for,while行)

查看函数中变量          alt+4                info local,其中display 变量名可在离开函数前实时观察自动打印不用每次都运行info local

查看参数                鼠标放在参数上       info arg,info args

中断时查看堆栈          alt+7                break trace,bt

查看堆栈中某函数处相关变量   鼠标选择        frame +num(在堆栈中编号),up,down

在某个断点修改变量值    直接在变量窗口修改   set,s +变量名=XX

附1:

条件中断                无法实现             有多种条件设置方法(附1)

(1)

b if 条件

比如 b if i == 1,或者 b if str="abc"

如果断点已经设置,info break查看断点号

condition 断点号 条件

比如 condition 1 NULL == p

(2)

断点命中次数会被统计,i b可以查看

可以设定某个断点被命中N次后中断

比如:ignore 3 10

第3个断点在运行上面命令后再命中10此才中断,默认命中0次后中断,也就是每次都中断

有了这个条件就可以在自己想要的命中次数后中断来查看变量情况了,对中途出错

时候的调试很有帮助

附2

观察变量条件        变量上方右键添加监视      有多种情况处理(附2)

(1)

watch 变量或者表达式

就相当于设置了一个硬断点,当变量被修改时就会中断程序,并打印修改前后的值

表达式可以是地址前面加上强制类型,这样对全局不可见但是地址不变的变量监视很有用处

一些重要提示:

(1)list 文件名:行号 和 b 文件名:行号 这两个命令要在b main ;run后才有效

(2)b后面不加如何东西表示在当前行设置断点

(3)p 局部变量提示no symbol XX in current context错误,编译选项在-g的基础上机上-O0和-wall和-ggdb,比如是cpp那么设置:CXX_FLAGS =  -O0 -wall -g -ggdb

(4)List 行号,函数名,变量名是默认在查询当前活动文件,当前活动文件也就是list 文件名或者函数名进入的文件,或者中断后所在的文件,可想象成vc中当前打开的文件,可以在上面直接运行 b行号,也不用多此一举的b 文件名 行号了,不过前提时确保当前活动文件是否是你想要设置断点的文件。

gdb对应vc调试命令的更多相关文章

  1. gdb常用的调试命令

    首先将源代码编译.链接生成debug版本的可执行文件,然后通过‘gdb  debug版本的可执行文件名’进入调试模式. a) 单进程.单线程基础调试命令 l    显示main函数所在的文件的源代码 ...

  2. 第03课:GDB常用的调试命令概览

    先给出一个常用命令的列表,后面结合具体的例子详细介绍每个命令的用法. 命令名称 命令缩写 命令说明 run r 运行一个程序 continue   c 让暂停的程序继续运行 next   n 运行到下 ...

  3. 第三课:GDB 常用的调试命令概览

    先给出一个常用命令的列表,后面会结合具体的例子详细介绍每个命令的用法. 命令名称 命令缩写 命令说明 run r 运行一个程序 continue c 让暂停的程序继续运行 next n 运行到下一行 ...

  4. 利用GDB进行多线程调试

    一.多线程调试 多线程调试重要就是下面几个命令: info thread 查看当前进程的线程. thread <ID> 切换调试的线程为指定ID的线程. break file.c:100 ...

  5. 比较全面的gdb调试命令 (转载)

    转自http://blog.csdn.net/dadalan/article/details/3758025 用GDB调试程序 GDB是一个强大的命令行调试工具.大家知道命令行的强大就是在于,其可以形 ...

  6. gdb各种调试命令和技巧

    陈皓:用GDB调试程序 GDB概述———— GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具.或许,各位比较喜欢那种图形界面方式的,像VC.BCB等IDE的调试,但如果你是在UNIX平台 ...

  7. GDB调试命令手册

    使用GDB 启动 $ gdb program           # program是你的可执行文件,一般在当前目录 $ gdb program core      # gdb同时调试运行程序和cor ...

  8. GDB调试命令小结

    1.启动调试 前置条件:编译生成执行码时带上 -g,如果使用Makefile,通过给CFLAGS指定-g选项,否则调试时没有符号信息.gdb program //最常用的用gdb启动程序,开始调试的方 ...

  9. 比较全面的gdb调试命令

    from:http://blog.csdn.net/xiajun07061225/article/details/8960332 http://blog.csdn.net/cjfeii/article ...

随机推荐

  1. apache2.2控制目录文件访问设置

    1.apache2.2控制目录文件访问需求 红框可以访问,其他不能访问 2.apache2.2具体正则配置 <locationMatch ^/f/user/Panorama/81/581/(gr ...

  2. day4 迭代器与生成器解析

    一.迭代器 迭代器是访问集合元素的一种方式.其实迭代器就是一种列表,只是访问集合元素的时候比较特殊,具有一些特定功能,记忆功能,能够记住用户上一次的状态.迭代器是访问集合元素的一种方式.并且,迭代器只 ...

  3. 一道关于数据库(经典父子级 ID 关联)更新题,大家帮忙想想还有其它解决思路没有?

    昨天,一同事发过来的一道数据库题目,就是哪种经典的父子级 ID 在同一数据库表中设计类型.需要在原表中添加一个字段,同时,将该节点的父子级详细信息插入到原表新增的一字段中,具体效果如下图. AreaC ...

  4. 【LOJ】#2012. 「SCOI2016」背单词

    题解 我们发现第一种操作肯定不可取,每个节点里它最近的点是它最长出现过的后缀,发现这就是AC自动机的fail节点,根据fail的关系这会是一棵树,而一个单词的前一个序号最大的后缀必定是它的父亲 然后我 ...

  5. elementUI 学习入门之 checkbox 复选框

    CheckBox 复选框 与单选框基本类似.如:按钮样式.带边框.复选框按钮大小. eg: <template> <el-checkbox-group v-model="s ...

  6. JAVA编程思想读书笔记(五)--多线程

    接上篇JAVA编程思想读书笔记(四)--对象的克隆 No1: daemon Thread(守护线程) 参考http://blog.csdn.net/pony_maggie/article/detail ...

  7. Linux中磁盘还有空间,但创建文件时提示空间不足

    首先需要知道创建文件时,需要满足两个条件:1.磁盘上还有空间:2.inode号还有剩余. 这两个条件可以分别使用"df -h"以及"df -i"查看使用情况 [ ...

  8. 【centos 7】搭FTP服务和web访问

    步骤:安装 vsftpd-->增加用户-->配置vsftpd和用户权限 -->配置iptables 安装httpd,开放http访问 /var/tmp/user1下目录 1.安装和用 ...

  9. OpenVAS漏洞扫描基础教程之创建用户组与创建角色

    OpenVAS漏洞扫描基础教程之创建用户组与创建角色 OpenVAS创建用户组 用户组就是指许多个用户的组合.在网络中,各个访问网络的用户的权限可能各不相同.所以,可以通过将具体相同权限的用户划为一组 ...

  10. codeforce 429D. Tricky Function (思维暴力过)

    题目描述 Iahub and Sorin are the best competitive programmers in their town. However, they can't both qu ...