• gdb调试进程


    GDB(GNU Debugger)是用于Linux和其他类UNIX系统上调试程序的强力工具。它可以帮助开发者查看程序运行时的内部结构,监控程序的执行流程,以及定位程序崩溃或出现错误的原因。以下是使用GDB调试进程的基本步骤:

    ### 安装GDB

    在大多数Linux发行版中,你可以通过包管理器安装GDB。例如,在Ubuntu或Debian上,可以使用以下命令安装:

    ```bash
    sudo apt-get install gdb
    ```

    ### 编译程序时包含调试信息

    为了使GDB能够提供更详细的调试信息,你需要在编译你的程序时加上`-g`选项。例如,如果你的程序源代码是`my_program.c`,则应使用如下命令编译:

    ```bash
    gcc -g my_program.c -o my_program
    ```

    ### 启动GDB

    要调试一个程序,首先启动GDB,并指定要调试的程序作为参数:

    ```bash
    gdb my_program
    ```

    如果你想要调试一个已经运行的进程,可以先用`ps`或`pgrep`找到进程ID,然后用`attach`命令连接到该进程:

    ```bash
    gdb attach
    ```
    其中``是进程的ID。

    ### 设置断点

    在程序的特定行或函数上设置断点可以让程序在执行到那一点时暂停,以便你检查变量值、内存状态等。例如,要在名为`main`的函数上设置断点,可以输入:

    ```gdb
    break main
    ```

    或者,如果要根据行号设置断点:

    ```gdb
    break
    ```

    ### 运行程序

    使用`run`命令启动程序。如果已经设置了断点,程序会在到达第一个断点时停止:

    ```gdb
    run
    ```

    ### 检查和操作程序状态

    - `print `:打印变量的当前值。
    - `backtrace`或`bt`:显示函数调用的回溯栈,帮助理解程序的执行流程。
    - `next`或`n`:执行下一行代码,但如果是函数调用,则不会进入函数内部。
    - `step`或`s`:执行下一行代码,如果遇到函数调用,则会进入函数内部。
    - `continue`或`c`:从当前位置继续执行程序,直到遇到下一个断点或程序结束。

    ### 修改变量值

    在调试过程中,你还可以修改变量的值,使用命令`set variable = `。

    ### 退出GDB

    完成调试后,可以使用`quit`命令退出GDB。

    记住,GDB是一个非常强大的工具,这里只介绍了基本操作。GDB还有许多高级功能,如条件断点、观察点、内存检查等,可以通过GDB的帮助文档或在线教程进一步学习。

  • 相关阅读:
    23062C++&QT day2
    代码随想录--栈与队列-用队列实现栈
    对软件重构的认识
    基于java+SpringBoot+HTML+Mysql政务审批网站的设计与实现
    NL2SQL进阶系列(1):DB-GPT-Hub、SQLcoder、Text2SQL开源应用实践详解
    【JAVA面试八股文】之并发和多线程
    运用全新空调插座秒变智能新体验
    管理类联考——数学——汇总篇——知识点突破——数据分析——计数原理——排列组合——排队
    [iOS]-pthread、NSThread
    LightDB - libpq支持匿名块绑定参数
  • 原文地址:https://blog.csdn.net/weixin_43803780/article/details/139745467