首先将源代码编译、链接生成debug版本的可执行文件,然后通过‘gdb  debug版本的可执行文件名’进入调试模式。

a) 单进程、单线程基础调试命令

l    显示main函数所在的文件的源代码

list  filename:num   显示filename文件num行上下的源代码

b  linenum           给指定行添加断点

b  funname           给指点函数的第一有效行添加一个断点

info  break          显示断点信息

delete  断点号       删除指定断点

disable  断点号      将断点设定为无效的,

如果不加断点号,将所有断点设置为无效

enable   断点号      将断点设定为有效的

如果不加断点号,将所有断点设置为有效

r(run)              运行程序

n(next)              单步执行

c (continue)         继续执行,直接执行到下一个断点处

s                      进入将要被调用的函数中执行

finish                 跳出函数

q                      退出调试

p   val                打印变量val的值

p   &val               打印变量val的地址

p   a+b                打印表达式的值

p   arr(数组名)      打印数组所有元素的值

p   *parr@len          用指向数组的指针打印数组所有元素的值

x  /nfu   addr         打印addr表示的内存存储值

n :  是一个正整数,表示显示内存的长度

f :  表示显示的格式, x 十六进制; d  十进制; o  八进制

t  二进制;  c  字符;  f  浮点数

u:  表示从当前地址向后请求的字节数,默认4bytes,可以指定:

b 单字节     h 双字节     w 四字节     g 八字节

display         自动显示,参数和p命令一样

info  display   显示自动显示信息

undisplay + 自动显示编号   删除指定的自动显示

ptype   val      显示变量类型

bt               显示函数调用栈

b) 多进程调试命令

(gdb)set  follow-fork-mode mode

mode 可以选择parent或者child,即:选择调试那个进程。

注意:未被选择的进程会直接执行结束。

c) 多线程调试命令

a)  利用info threads查看线程信息;

b)  thread id 调试目标id指定的线程;

c)  set scheduler-locking  off | on | step;

“off”表示不锁定任何线程;

“on”只有当前被调试的线程继续运行;

"step"在单步执行的时候,只有当前线程会执行;

gdb常用的调试命令的更多相关文章

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

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

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

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

  3. gdb对应vc调试命令

    gdb vc调试对照表: 实现功能                vc                   gdb 修改后编译              f7                   ma ...

  4. gdb常用命令及使用gdb调试多进程多线程程序

    一.常用普通调试命令 1.简单介绍GDB 介绍: gdb是Linux环境下的代码调试⼯具.使⽤:需要在源代码⽣成的时候加上 -g 选项.开始使⽤: gdb binFile退出: ctrl + d 或 ...

  5. gdb常用命令及gdb调试多进程/线程程序&coredump

    一.常用普通调试命令 1.简单介绍GDB 介绍: gdb是Linux环境下的代码调试⼯具.使⽤:需要在源代码⽣成的时候加上 -g 选项.开始使⽤: gdb binFile退出: ctrl + d 或 ...

  6. C 调试 gdb常用命令

    gdb常用命令: [root@redhat home]#gdb 调试文件:启动gdb (gdb) l :(字母l)从第一行开始列出源码 (gdb) break n :在第n行处设置断点 (gdb) b ...

  7. 【转】 GDB 常用调试方法

    一.多线程调试 多线程调试可能是问得最多的.其实,重要就是下面几个命令: info thread 查看当前进程的线程. thread <ID> 切换调试的线程为指定ID的线程. break ...

  8. lldb调试命令

    XCode4.0以后,编译器换成了LLVM 编译器 2.0 与以前相比,更加强大:1.LLVM 编译器是下一带开源的编译技术.完全支持C, Objective-C, 和 C++.2.LLVM 速度比 ...

  9. 基础调试命令 - .dump/.dumpcap/.writemem/!runaway

    Windbg是windows平台上强大的调试器,它相对于其他常见的IDE集成的调试器有几个重要的优势, Windbg可以做内核态调试 Windbg可以脱离源代码进行调试 Windbg可以用来分析dum ...

随机推荐

  1. (详细)JAVA使用JDBC连接MySQL数据库(3)-代码部分

    欢迎任何形式的转载,但请务必注明出处. 本节主要内容 项目建立 数据库连接 数据库操作 主函数 点击进入推荐博客(必看) 一.项目建立 如图所示:新建Java Project.Package.Clas ...

  2. .tar.gz文件和.tar.xz文件的解压和压缩

    1,.tar文件 tar  -cvf 压缩 tar  -xvf 解压 例如: tar -xvf mysql-8.0.16-linux-glibc2.12-x86_64.tar 2,.xz文件 xz  ...

  3. Nginx从安装到简单使用

    一.什么是Nginx: Nginx是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务. 二.Nginx作用: 反向代理,集群,虚拟服务器,负载均衡,动静分离,解决跨域问题等 ...

  4. 用javafx webview 打造自己的浏览器

    背景 项目需要做一个客户端的壳,内置浏览器,访问指定 的url 采用技术 java 1.8 开始吧! java环境配置略 hello world import javafx.application.A ...

  5. Scyther GUI 攻击输出图的解释

    1.在声明事件的安全属性的时候也就是整个过程要验证的 对象: Scythe 的安全属性  分为下面几种: Secrecy: 表示数据传输过程中是安全的,即使通过不信任的网络传也不能被攻击者获得 SKR ...

  6. OSI七层与TCP/IP五层

    OSI七层与TCP/IP五层网络架构详解 OSI和TCP/IP是很基础但又非常重要的网络基础知识,理解得透彻对运维工程师来说非常有帮助.今天偶又复习了一下: (1)OSI七层模型 OSI中的层 功能 ...

  7. YouTube下载方法

    复制要下载的视频的地址 打开此链接:https://y2mate.com/youtube/9wxePpNYShQ 如下图位置粘贴视频地址,然后选择想要的分辨率点击右面的“Download”进行下载即可

  8. sql/pl 安装并连接Oracle数据库

    1,首先,先下载pl/sql devloper 安装包.下载对应版本的安装包 下载地址  https://www.allroundautomations.com/bodyplsqldevreg.htm ...

  9. TreadPool

    ThreadPool概述 提供一个线程池,该线程池可用于执行任务.发送工作项.处理异步 I/O.代表其他线程等待以及处理计时器. 创建线程需要时间.如果有不同的小任务要完成,就可以事先创建许多线程/在 ...

  10. 【转】解决 canvas 在高清屏中绘制模糊的问题

    来源: http://www.css88.com/archives/9297 使用 canvas 绘制图片或者是文字在 Retina 屏中会非常模糊.如图: 因为 canvas 不是矢量图,而是像图片 ...