原文:使用GDB调试产生多进程的程序

如果一个进程fork了多个进程,这时使用GBD工具对程序进行调试会如何呢 实际上,GDB 没有对多进程程序调试提供直接支持。例如,使用GDB调试某个进程,如果该进程fork了子进程,GDB会继续调试该进程,子进程会不受干扰地运行下去。 如果你事先在子进程代码里设定了断点,子进程会收到SIGTRAP信号,如果没有对此信号进行捕捉处理,就会按默认的处理方式处理 终止进程。 那么该如何调试子进程呢 有 ...

2017-11-05 17:54 0 1068 推荐指数:

查看详情

gdb调试多进程程序——gdb attach用法

前一阵在调试多进程mpi死锁的bug,多进程程序只靠输出来定位bug是一件相当麻烦的事=.=!,后来发现可以用gdb attach来调试多进程程序。 原来一直用gdb调试进程程序,感觉打开了新世界的大门哈哈哈。 下面介绍如果用gdb attach调试正在运行的程序,用法 ...

Thu Feb 20 01:41:00 CST 2020 0 1632
gdb进程调试多进程调试

),如果调试完毕了,使用 detach 命令就释放了进程,它就自由运行了。 2.多进程调试   ...

Sat Sep 03 00:18:00 CST 2016 0 7940
gdb调试多进程多线程程序

一、调试的指令   1.list命令     list  linenum  显示程序第linenum行的周围的程序     list  function  显示程序名为function的函数的源程序     list        显示当前行后面的源程序     list ...

Wed Jun 07 03:07:00 CST 2017 0 3593
gdb调试多线程多进程

多线程 1、info threads:   这条命令显示的是当前可调试的所有线程,GDB会给每一个线程都分配一个ID。前面有*的线程是当前正在调试的线程。 2、thread ID:   切换到当前调试的线程为指定为ID的线程。 3、thread apply all command:   让所有 ...

Thu Jul 19 19:28:00 CST 2018 0 2796
gdb常用命令及gdb调试多进程/线程程序&coredump

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

Wed Jun 28 03:26:00 CST 2017 0 1270
[转]gdb调试多进程和多线程命令

1. 默认设置下,在调试多进程程序GDB只会调试进程。但是GDB(>V7.0)支持多进程的分别以及同时调试,换句话说,GDB可以同时调试多个程序。只需要设置follow-fork-mode(默认值:parent)和detach-on-fork(默认值:on)即可 ...

Fri Dec 22 19:25:00 CST 2017 0 3091
使用 gdb 调试多进程程序 —— 以调试 nginx 为例 转自:https://mp.weixin.qq.com/s/m2c2xujMTHz5ZdpnDMWLJw

这里我们说的多进程程序指的是一个进程使用 Linux 系统调用 fork() 函数产生的子进程,没有相互关联的进程就是普通的 gdb 调试,不必刻意讨论。 在实际的应用中,如有这样一类程序,如 nginx,对于客户端的连接是采用多进程模型,当 nginx 接受客户端连接后,创建一个新的进程来处 ...

Tue Jul 07 23:37:00 CST 2020 1 915
多进程调试

实际上,GDB 没有对多进程程序调试提供直接支持。例如,使用GDB调试某个进程,如果该进程fork了子进程GDB会继续调试进程,子进程会不受干扰地运行下去。如果你事先在子进程代码里设定了断点,子进程会收到SIGTRAP信号并终止。那么该如何调试进程呢?其实我们可以利用GDB的特点或者其他一些 ...

Tue Jan 10 05:08:00 CST 2012 0 3813
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM