gdb 使用
2018年7月27日21:05:16 —— 多进程调试
1、follow_fork_mode
作用:在fork之后跟随父进程还是子进程
可以使用 show follow_fork_mode查看再fork之后跟随的是parent还是child,也可以通过
set follow_fork_mode parent/child来设置
2、detach_on_fork
作用:如果值 == on,则fork之后跟踪了父进程(子进程),就不调试子进程(父进程)了;否则fork之后父子进程都可以调试,并且可以通过 “info inferiors”查看所有进程,通过“inferior 进程编号”切换进程。
如果detach_on_fork == on,如果follow_fork_mode == parent,当程序fork之后,子进程会悬挂fork的地方,当切会子进程时,可以在子进程后续执行代码处下断,按c让子进程运行起来。
3、调试fork后的子进程执行exec后运行的新进程
在gdb xxx开始的时候,输入catch exec,这样在子进程运行到exec的地方时就可以断下来。怎样在exec执行的程序内部下断?比如execl(other_prog,…),那么可以输入b other_prog:main 来下断,然后按c继续运行。
如果gdb找不到other_prog的源码,需要确认两件事情:
1》生成other_prog的时候是否加上了 -g 这个编译选项,要加上的
2》可以通过directory xxx/yyy/ 来添加源文件搜索目录,其中other_prog.c要在目录xxx/yyy/下面,就是说要有 xxx/yyy/other_prog.c 存在。
2018年7月27日21:36:10 —— 打印完整字符串
show print elements 显示当前能打印出来的字符个数,一般是200个
set print elements 0 使得打印个数无限制
gdb 使用的更多相关文章
- linux应用调试技术之GDB和GDBServer
1.调试原理 GDB调试是应用程序在开发板上运行,然后在PC机上对开发板上得应用程序进行调试,PC机运行GDB,开发板上运行GDBServer.在应用程序调试的时候,pc机上的gdb向开发板上的GDB ...
- 新手如何在gdb中存活
网络上已经有很多gdb调试的文章了,为什么我还要写这篇文章呢,因为本文是写给gdb新手的,目的就是通过一个简单的例子来让新手很快上手.一旦上手入门了,其他的问题就可以自己去搜索搞定了.右边是gdb的L ...
- GDB 多线程调试:只停止断点的线程,其他线程任然执行; 或只运行某些线程 其他线程中断
多线程调试之痛 调试器(如VS2008和老版GDB)往往只支持all-stop模式,调试多线程程序时,如果某个线程断在一个断点上,你的调试器会让整个程序freeze,直到你continue这个线程,程 ...
- GDB调试命令
1.查看源码: list [函数名][行数] 2.暂停程序 (1)设置断点: a.break + [源代码行号][源代码函数名][内存地址] b.break ... if condition .. ...
- 关于gdb和shp的FID问题
gdb的FID从1开始,并且FID唯一,从数字化时开始,每个图形对应唯一的FID,删除图形亦删除对应的FID.FID可能出现中断的情况. shp的FID从0开始,并且永远连续.删除图形,则编号在其下面 ...
- GDB调试命令小结
1.启动调试 前置条件:编译生成执行码时带上 -g,如果使用Makefile,通过给CFLAGS指定-g选项,否则调试时没有符号信息.gdb program //最常用的用gdb启动程序,开始调试的方 ...
- gdb 基本知识
一 单步执行和跟踪函数调用 先给出一段代码,可以用下面介绍的例子. #include <stdio.h> int add_range(int low, int high) { int i, ...
- GDB 完全教程
一.简介 GDB是一个功能强大的调试器,它是一个自由软件,能够用在许多UNIX平台上.它同时也是Linux系统中的默认调试器.GDB已被移植到许多其他的计算机平台上,并且能够用于调试嵌入式实时系统.一 ...
- GDB调试汇编堆栈过程分析
GDB调试汇编堆栈过程分析 分析过程 这是我的C源文件:click here 使用gcc - g example.c -o example -m32指令在64位的机器上产生32位汇编,然后使用gdb ...
- gdb可以调试python的pdb么
1.如题: gdb可以调试python的pdb么? 答案:可以,实验如下. 2.实验: 生成一个a.py代码文件,代码如下: import pdb a = 1 print "111" ...
随机推荐
- 1. Django概述
1.1 设计模型 Django,但它附带了一个你可以用python代码描述数据库布局的对象关系映射器. 数据模型语法提供了许多丰富的方法来展现你的模型——到目前为止,它解决了多年来数据库模式问题. 简 ...
- SharePoint REST API - 一个请求批量操作
博客地址:http://blog.csdn.net/FoxDave 本篇主要讲解如何应用$batch查询选项来批量执行REST/OData请求,它将多个操作捆绑到一个请求中,可以改进应用程序的性能 ...
- SharePoint REST API - 使用REST API和jQuery上传一个文件
博客地址:http://blog.csdn.net/FoxDave 本篇主要通过两个代码示例来展示如何应用REST API和jQuery上传文件到SharePoint. 示例会使用REST接口和j ...
- 开始一个django项目的流程
1.明确开发站点的主题,(即此站点的作用), 确定站点的各种功能,需求. 2.优先设计数据库. 数据库的设计要合理,不能想当然的设计,最好能够以表格的形式展现出来,避免以后遗忘,也避免内容的重复. 3 ...
- 仿XP系统的任务栏菜单
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...
- 提供一个Java字符串转整型数组的方法
package edu.yuliang.Data_Structure_Basics; import java.util.Scanner; public class new_string { publi ...
- 双跑道------js分机号
博客园 首页 新随笔 联系 管理 订阅 随笔- 310 文章- 0 评论- 134 [tomcat]启动报错:Failed to initialize end point associated ...
- How Region Split works in Hbase
A region is decided to be split when store file size goes above hbase.hregion.max.filesize or accord ...
- Spring Boot Shiro 权限管理 【转】
http://blog.csdn.net/catoop/article/details/50520958 主要用于备忘 本来是打算接着写关于数据库方面,集成MyBatis的,刚好赶上朋友问到Shiro ...
- 集群中节点(Node)与单机数据库的区别
集群中节点(Node)与单机数据库的区别: 区别项 集群中节点(Node) 单机数据库 只能使用0号数据库 是 都可以使用