美文网首页我爱编程
GDB - 察看正在运行的Linux程序

GDB - 察看正在运行的Linux程序

作者: louyang | 来源:发表于2018-06-21 15:02 被阅读38次

假设一个正在运行的Linux程序出了问题,我们想看一下这个程序运行到了哪里,我们可以使用GDB工具连接到正在运行的进程上,并察看。

例如下面这段代码:

#include <stdio.h>  // printf()
#include <unistd.h> // getpid()

void a()
{
}
void b()
{
}
void c()
{
}

int main()
{
    printf("My pid is: %d\n", getpid());

    for (;;) {
        a();
        b();
        c();
    }
}

编译运行:

$ gcc a.c && ./a.out
My pid is: 17153

打开另外一个终端窗口,运行:

$ gdb -p 17153
(gdb) bt
#0  0x000000000040052d in a ()
#1  0x0000000000400560 in main ()
(gdb) c
Continuing.

可以看到,这个程序正运行到函数a()。

参考

https://stackoverflow.com/questions/14370972/how-to-attach-a-process-in-gdb

相关文章

  • GDB - 察看正在运行的Linux程序

    假设一个正在运行的Linux程序出了问题,我们想看一下这个程序运行到了哪里,我们可以使用GDB工具连接到正在运行的...

  • 利用Core Dump调试程序

    描述 这里介绍Linux环境下使用gdb结合core dump文件进行程序的调试和定位。 简介 当用户程序运行,可...

  • linux gdb详解

    一.GDB命令详解 在linux程序调成中gdb是最常用的工具。 关于gdb的说明可以在linux下直接 man ...

  • 【性能优化】如何使用 gdb dump 内存

    1.GDB 调试器简介 GDB 全称 “GNU symbolic debugger”,是 Linux 下常用的程序...

  • gdb调试基本方法

    gdb调试基本方法 gdb调试常用命令 在GDB中运行程序 断点(BreakPoint) 观察点(WatchPoi...

  • C/C++编程知识:C 语言调试器是如何工作的?

    当你用 GDB 的时候,可以看到它完全控制了应用程序进程。当你在程序运行的时候用Ctrl + C,程序的运行就能够...

  • gdb

    1. attach: 用gdb调试一个正在运行中的进程 gdb PID 2. br: 设置断点 br filena...

  • GDB学习笔记

    gdb GDB是一个强大的linux下的程序调试工具其使用过程如下: debug方式编译 在编译前加上 -g 通过...

  • Linux 系统管理

    视频教程:Linux系统管理 一、进程管理 进程管理 简介:进程就是正在运行的程序或者命令,进程管理就是对正在运行...

  • PWN入门到放弃

    Linux下的pwn常用到的工具有: gdb:Linux调试中必要用到的 gdb-peda:gdb方便调试的工具,...

网友评论

    本文标题:GDB - 察看正在运行的Linux程序

    本文链接:https://www.haomeiwen.com/subject/jdiqyftx.html