原文:gdb调试多进程程序——gdb attach用法

前一阵在调试多进程mpi死锁的bug,多进程程序只靠输出来定位bug是一件相当麻烦的事 . ,后来发现可以用gdb attach来调试多进程程序。 原来一直用gdb调试单进程的程序,感觉打开了新世界的大门哈哈哈。 下面介绍如果用gdb attach调试正在运行的程序,用法如下。 第一步:运行多进程程序。 首先正常运行多进程程序。在发生mpi死锁之后,不要停掉程序 第二步:获得运行程序的所有pid。 ...

2020-02-19 17:41 0 1632 推荐指数:

查看详情

gdb进程调试多进程调试

1.单进程调试   常规的通过gdb cmd这种方式开启调试,特别说明的是通过attach的方法附加到一个指定的进程上去进行调试,这种方法适合于调试一个已经运行的进程,具体用法:    gdb -p [pid]   此时被attach进程会阻塞,进入T模式(ps 命令看到STATE为T ...

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调试产生多进程程序

如果一个进程fork了多个进程,这时使用GBD工具对程序进行调试会如何呢? 实际上,GDB 没有对多进程程序调试提供直接支持。例如,使用GDB调试某个进程,如果该进程fork了子进程GDB会继续调试进程,子进程会不受干扰地运行下去。 如果你事先在子进程代码里设定了断点,子进程会收 ...

Mon Nov 06 01:54:00 CST 2017 0 1068
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 attach到一个进程

调试守护进程等已经启动的进程或是调试陷于死循环的进程可以使用attach命令 格式 attach pid C语言代码 #include <stdio.h> int main(void) { int marks[10]; int ...

Mon Jun 24 21:36:00 CST 2019 0 1118
 
粤ICP备18138465号  © 2018-2026 CODEPRJ.COM