`
sealbird
  • 浏览: 586768 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

gdb 子进程 多进程 fork 调试

BBS 
阅读更多
标   题: [FAQ] 请问如何用gdb调试子进程
发信站: BBS 水木清华站 (Mon May 19 18:17:02 2003), 转信

作个FAQ,在常见的x86平台上如何gdb调试fork或者exec出来的子进程

1. 在fork语句上设置断点,修改fork返回的值。这种做法并没有真正去
    触动已经存在的子进程,而是强迫夫进程去走子进程的流程。对付简单
    情况都非常有效。
2. 修改源代码,在fork后面,父进程和子进程中都加上while(debug_lock) sleep(1);
    这样的语句。fork后父进程detach,两者就都可以attatch了,attatch后
    set debug_lock = 0使得程序流程正常继续。这种做法可以调试子进程,
    但是需要修改源代码。
3. 如果你使用的gdb版本>= 6.0,考虑使用
(gdb) set follow-fork-mode
ask      child    parent

这里修改
(gdb) set follow-fork-mode child
分享到:
评论

相关推荐

    GDB调试多线程

    本文将深入探讨如何使用GDB进行多线程调试以及处理多进程调试的挑战。 **1. 多线程调试** 在多线程应用中,错误往往难以定位,因为多个线程可能同时执行,导致问题难以复现。GDB提供了一些功能来协助我们追踪和...

    构建嵌入式GDB调试环境.docx

    在实际的多进程调试场景中,开发者可能需要编写自定义的脚本或GDB宏来管理和切换进程,以便更有效地追踪和控制多个并发执行的进程。通过熟练掌握这些技巧,开发者可以在ZYNQ 7020这样的嵌入式平台上实现高效且精准的...

    gdb 调试gdb 调试gdb 调试gdb 调试gdb 调试

    包括基本信息操作、函数管理、断点管理、打印与显示、多进程/线程调试、核心转储与程序状态、汇编级调试、程序状态修改、信号处理、共享库管理、脚本配置、命令行选项、预处理器与命令缩写、在gdb中执行shell命令、...

    gdb官方文档

    文档内容涵盖了如何使用GDB进行源代码级调试的各个方面,包括但不限于如何启动和退出GDB,如何在GDB中运行程序,如何使用断点、观察点和捕获点,以及如何在GDB中处理多进程、多线程和fork的调试。这些内容对于开发者...

    debugging with gdb

    - **4.9 多进程调试** - 支持同时调试多个进程。 - **4.10 多线程调试** - 通过`info threads`命令查看当前线程列表,使用`thread`命令切换线程。 - **4.11 调试fork** - 支持跟踪进程创建。 - **4.12 设置书签**...

    GDB用户手册

    当涉及到在GDB下运行程序时,手册提供了详尽的指导,包括调试编译、启动程序、程序参数、环境、工作目录、输入输出、调试正在运行的进程、杀死子进程、多进程调试、多线程程序调试、fork调试等方面的知识。...

    debugging with GDB/GDB使用指南

    #### 多线程和多进程调试 在多线程或多进程的环境中,GDB也提供了相应的支持。 **多线程调试:** 当调试一个多线程程序时,可以使用`info threads`命令查看当前所有线程的信息。 ```bash (gdb) info threads ```...

    Linux系统编程 gcc,gdb,Makefile,文件,多进程.zip

    在Linux系统编程中,GCC(GNU Compiler Collection)、GDB(GNU Debugger)、Makefile以及文件管理和多进程是核心概念。下面将分别对这些知识点进行详细解释。 1. GCC(GNU Compiler Collection): GCC 是一套...

    gdb 使用手册 说明文档

    4. 在GDB下运行程序:涉及到程序的调试编译、启动调试、传递参数、设置环境变量、指定工作目录、输入输出重定向、调试已运行进程、终止子进程、调试多进程和多线程程序、调试程序中fork()函数的使用,以及设置书签以...

    GDB英文官方手册

    - **4.11 调试fork操作**:当程序使用了`fork`函数时,GDB能够跟踪并调试父子进程。 - **4.12 设置书签以稍后返回**:这是一种高级特性,可以帮助用户在复杂的调试过程中标记重要位置。 ##### 第5章:停止与继续 ...

    debuging with gdb英文版

    - **Debugging Multiple Inferiors and Programs**:同时调试多个程序或进程。 - **Debugging Programs with Multiple Threads**:调试多线程程序的技术要点。 - **Debugging Forks**:调试fork调用相关的技巧。 ...

    gdb 7.6.2的官方手册

    此外,还介绍了如何调试使用fork()函数创建的进程,以及如何设置书签以便在后续的调试中方便地返回到特定的调试位置。 GDB手册的最后部分还会包括版本更新说明、版权信息、贡献者列表和勘误信息。例如,此次的手册...

    gdb手册(pdf)

    - **多进程调试**:gdb支持同时调试多个进程,使用`inferior`命令可以管理不同的进程。 - **多线程调试**:对于多线程程序,gdb提供了专门的命令来控制和观察各个线程的状态。 - **调试fork操作**:在程序中调用`...

    gdb的使用及原理---整理

    14. **调试多进程程序**: - `set follow-fork-mode parent/child`决定调试父进程还是子进程。 - `set detach-on-fork off`使得子进程在fork后保持暂停,便于调试。 - `attach pid`附加到已存在的进程进行调试。 ...

    c语言多进程多线程编程.pdf

    4. 并发调试:并发程序的调试往往复杂,需要掌握特定的调试工具和技术,如GDB的多线程调试功能。 除了书籍本身,压缩包中的其他文件可能包含相关资源,如jb51.net.txt可能是技术网站的笔记或摘录,电子书大全.url...

    gdb用户手册

    GDB调试器特别支持运行中的程序调试、多进程和多线程程序的调试以及对程序分支(如fork)的调试。在调试时,用户可以根据需要来设置断点、观察点和捕获点,以及如何控制程序的暂停和继续执行。通过设置断点,可以在...

    Debugging with gdb

    gdb能够处理多进程程序的调试,并且支持多线程程序的调试。这对于并发或并行程序中出现的线程相关的问题尤为关键。gdb能够帮助开发者理解程序中各个线程的执行流程,以及线程间的交互和同步问题。 最后,gdb还支持...

    gdb manual

    手册内容涵盖了如何启动gdb,以及如何在gdb中使用各种命令,包括运行程序、设置断点、监视点、捕获点、设置条件断点、调试多线程程序和进程、以及在调试过程中的停止与继续执行程序的多种方式。此外,手册也介绍了...

    Debugging with GDB 10th edition

    - **多进程调试**:当程序创建子进程时,gdb能够跟踪并调试这些子进程。 - **多线程调试**:gdb支持多线程程序的调试,可以通过`info threads`查看线程信息,`thread`命令切换到特定线程。 - **调试fork操作**:当...

    Debugging with gdb.pdf

    - **调试fork操作**:gdb能够处理进程间的fork操作,这对于调试涉及多进程的程序非常有用。 - **设置书签**:可以在特定的位置设置书签,以便在未来的调试过程中快速返回到该位置。 - 书签的一个非显而易见的好处是...

Global site tag (gtag.js) - Google Analytics