1.gdb调试

\qquadgdb调试命令,在生成可执行文件时,加-g

gcc xxx.c -o xxx -g

\qquad执行gdb xxx,就可以跳转到gdb调试界面,对xxx进行调试。
\qquad首先,我们要查看xxx.c的内容,以确定在哪里打断点。查看xxx.c文件的命令:

l   #查看.c文件的10行,一直回车可以继续查看

\qquad接下来进行打断点

b 行数  #在制定的行打断

\qquad查看断点序号和取消断点操作

i b
d 断点序号

\qquad在打好断点之后,我们就可以进行正式调试

start #开始调试
n #单步调试
p 变量名  #查看对应的变量值
ptype 变量名   #查看对应的变量类型
display 变量   #追踪对应的变量值,并打印
undisplay  变量   #停止追踪变量值
quit #退出gdb

2.多进程调试

\qquadfork()函数可以在程序中,创造子进程。如果我们对程序进程调试,默认追踪的是父进程的调试。当我们需要对子进程进行调试时,需要在执行fork()前,设置:

set follow-fork-mode child

linux的基础知识——多线程gdb调试相关推荐

  1. Kali Linux渗透基础知识整理(四):维持访问

    Kali Linux渗透基础知识整理系列文章回顾 维持访问 在获得了目标系统的访问权之后,攻击者需要进一步维持这一访问权限.使用木马程序.后门程序和rootkit来达到这一目的.维持访问是一种艺术形式 ...

  2. 权限认证php,2016年Linux认证基础知识:php做权限管理

    2016年Linux认证基础知识:php做权限管理 在学习Linux认证过程中,每个人会遇到每个人不同的问题,或小或大,那么你知道在Linux下,php怎么做权限管理?下面跟yjbys小编来看看最新的 ...

  3. 多进程多线程GDB调试 (转)

    多进程多线程GDB调试   一.线程调试指南:   1. gdb attach pid 挂载到调试进程  2. gdb$ set scheduler-locking on 只执行当前选定线程的开关 3 ...

  4. Linux系统基础知识

    Linux系统基础知识 1.在Linux系统中,以文件方式访问设备.   2. Linux内核引导时,从文件 /etc/fstab中读取要加载的文件系统. 3. Linux文件系统中每个文件用 ino ...

  5. Linux操作系统基础知识学习

    Q1.什么是GNU?Linux与GNU有什么关系? A: 1)GNU是GNU is Not Unix的递归缩写,是自由软件基金会(Free Software Foundation,FSF)的一个项目, ...

  6. Linux常用基础知识必备三之常用指令及操作

    Linux常用基础知识必备三之常用指令及操作 1.vi和vim vi如何使用 vi几种模式下的操作指令 命令模式进入编辑模式 命令模式下的快捷键 底行模式(指按了esc键之后输入按键:后出现) 字符串 ...

  7. linux系统下io的过程,Linux系统基础知识:IO调度

    Linux系统基础知识:IO调度 IO调度发生在Linux内核的IO调度层.这个层次是针对Linux的整体IO层次体系来说的.从read()或者write()系统调用的角度来说,Linux整体IO体系 ...

  8. Linux入门基础知识

    注:内容系兄弟连Linux教程(百度传课:史上最牛的Linux视频教程)的学习笔记. Linux入门基础知识 1. Unix和Linux发展历史 二者就像父子关系,当然Unix是老爹.1965年,MI ...

  9. Linux驱动 简单的Linux驱动基础知识

    Linux驱动 简单的Linux驱动基础知识 一.简述         记--Linux驱动学习笔记. Linux驱动程序初始化硬件设备,并提供硬件控制接口给更上一层的应用调用. 例如使用QT应用程序 ...

最新文章

  1. 堆叠柱形图上自定义数字_柱形图的类别标签太长太宽,倾斜起来了怎么办?
  2. win10下使用certutil工具对文件的SHA1、MD5和SHA256哈希结果做验证(超简单,附图)
  3. golang Reflect包
  4. 笔记-项目整体管理-项目收尾
  5. 【征稿进行时】计算机与智能控制主题征稿,ICCEIC 2020持续征稿中!
  6. 静态多态之泛型编程(模板)
  7. 什么是反射(.NET)[转]
  8. 聊一聊使用airtest-selenium做Web自动化的常见问题
  9. java猫和猫的名字
  10. java获取元素创建时间_Golang中使用Date进行日期格式化(沿用Java风格)
  11. mysql redo log 数据恢复_MySQL 怎么样恢复丢失的数据?redo log 写磁盘的过程
  12. Cocos2D教程:使用SpriteBuilder和Cocos2D 3.x开发横版动作游戏——Part 2
  13. 马云思考阿里下一个15年:大数据是未来核心
  14. Xshell 使用删除键乱码问题
  15. sitf+LK+pnp 识别、跟踪图片,并求三维旋转角度(四) -----LK光流跟踪
  16. Win 7系统优化小工具 (批处理)
  17. getFieldDecorator` will override `value`, so please don‘t set `value and v-model` directly and use `
  18. 苹果6屏幕多大_给iPhone8P换完新屏幕,我觉得新iPhoneSE不香了
  19. 618挑选网络电视盒子哪个好?发烧友整理目前最强的电视盒子
  20. 运维服务管理基础知识总结

热门文章

  1. LeetCode MySQL 1264. 页面推荐(union)
  2. LeetCode 305. 岛屿数量 II(并查集)
  3. LeetCode 第 187 场周赛(1336/3107,前43.0%)
  4. java子类继承父类实际_java子类继承父类,是否生成父类对象?
  5. MySQL - 创建存储过程Procedure,Do While实现循环
  6. 卫星系统——酒店后端全链路日志收集工具介绍
  7. Spring Boot引起的“堆外内存泄漏”排查及经验总结
  8. 论文浅尝 | CFO: Conditional Focused Neural Question Answering
  9. PaddleHub教程合集
  10. 【JavaWeb】JDBC的基本操作和事务控制+登录和转账案例