`

Linux 如何查看一个进程的堆栈(转)

阅读更多

有两种方法:

第一种:pstack 进程ID

第二种,使用gdb 然后attach 进程ID,然后再使用命令 thread apply all bt

两种方法都可以列出进程所有的线程的当前的调用栈。

不过,使用gdb的方法,还可以查看某些信息,例如局部变量,指针等。

不过,如果只看调用栈的话,pstack还是很方便的。

分享到:
评论

相关推荐

    LINUX进程调度机制及其堆栈切换分析.doc

    LINUX进程调度机制及其堆栈切换分析.doc

    Linux操作系统下的多进程编程详细解析

    Linux下一个进程在内存里有三部份的数据,就是 “数据段”,“堆栈段”和“代码段”,其实学过汇编语言的人一定知道,一般的CPU象I386,都有上述三种段寄存器,以方便操作系统的运行。“代码段”,顾名思义,就是...

    深入Linux网络核心堆栈

    2.1 - Linux内核对数据包的处理 2.2 - Netfilter对IPv4的hook 3 - 注册和注销Netfilter hook 4 - Netfilter 基本的数据报过滤技术[1] 4.1 - 深入hook函数 4.2 - 基于接口进行过滤 4.3 - 基于地址进行过滤 4.4 ...

    Linux如何查看进程栈信息示例

    本篇文章主要介绍了Linux如何查看进程栈信息示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    Linux 打印堆栈方法

    linux内核堆栈打印方法 dump_stack() 或 __backtrace() linux应用层堆栈打印方法 int backtrace(void **buffer, int size); 获取当前的调用栈信息,结果存储在buffer中,返回值为栈的深度,参数size限制栈的最大...

    pytb:用于检查正在运行的进程的python堆栈的实用程序(仅x64 linux)

    pytb 用于检查正在运行的进程的python堆栈的实用程序(仅x64 linux)特征: 对Python3友好(pytb本身需要python2才能运行,但是正在分析的进程可以是python3) Greenlet(gevent)友好,可以显示每个greenlet的stack...

    linux用户进程分析

    分析linux用户进程的相关文档,其中包含了部分linux代码,相关《深入理解linux内核》的相关文档,分析的一些流程图,进程堆栈的分析代码process_stack.c等,希望对相关需要做深入了解linux进程的人员做一个参考

    如何理解Linux中进程,线程等概念

    线程是进程的一条执行路径,它包含独立的堆栈和CPU寄存器状态,每个线程共享其所 附属的进程的所有的资源,包括打开的文件、页表(因此也就共享整个用户态地址空间)、信号标识及动态分配的内存等等。线程和进程的...

    【嵌入式软件工程师面经】Linux系统编程(线程进程).pdf

    这意味着一个进程不能直接访问另一个进程的变量和数据结构。如果进程间需要通信(IPC,进程间通信),必须使用操作系统提供的机制,如管道、信号量、共享内存、消息队列等。 在多任务操作系统中,多个进程可以同时...

    Linux下多线程编程详解

    我们知道,在Linux系统下,启动一个新的进程必须分配给它独立的地址空间,建立众多的数据表来维护它的代码段、堆栈段和数据段,这是一种"昂贵"的多任务工作方式。而运行于一个进程中的多个线程,它们彼此之间使用...

    一个进程池的服务器程序

    一个进程池的服务器程序 下面做了非常简单的http服务器,该服务器只能接收Get请求。 流程大概如下: 1,父进程listen,创建pipe(下面所有父子进程之间的通信都用该pipe) 2,父进程预fork n个子进程 3,各个子...

    Linux下的C语言多线程编程

    我们知道,在Linux系统下,启动一个新的进程必须分配给它独立的地址空 间,建立众多的数据表来维护它的代码段、堆栈段和数据段,这是一种"昂贵"的多任务工作方式。而运行于一个进程中的多个线程,它们彼此之间使用...

    嵌入式系统/ARM技术中的Linux下的多进程编程

     Linux下一个进程在内存里有三部份的数据,就是“数据段”,“堆栈段”和“代码段”,其实学过汇编语言的人一定知道,一般的CPU象I386,都有上述三种段寄存器,以方便操作系统的运行。“代码段”,顾名思义,就是...

    使用C语言的fork()函数在Linux中创建进程的实例讲解

    使用fork()函数得到的子进程是父进程的一个复制品,它从父进程处继承了整个进程的地址空间,包括进程的上下文、代码段、进程堆栈、内存信息、打开的文件描述符、符号控制设定、进程优先级、进程组号、当前工作目录、...

    linux多线程详解说明

    我们知道,在Linux系统下,启动一个新的进程必须分配给它独立的地址空 间,建立众多的数据表来维护它的代码段、堆栈段和数据段,这是一种"昂贵"的多任务工作方式。而运行于一个进程中的多个线程,它们彼此之间使用...

    gcore脚本源码实现(gdb-7.6.1版本)

    Linux获取用户态进程堆栈信息core文件

    Linux内核源代码情景分析 (上下册 高清非扫描 )

    2.3 几个重要的数据结构和函数 2.4 越界访问 2.5 用户堆栈的扩展 2.6 物理页面的使用和周转 2.7 物理页面的分配 2.8 页面的定期换出 2.9 页面的换入 2.10 内核缓冲区的管理 2.11 外部设备存储空间的地址映射 2.12 ...

    嵌入式Linux C编程入门(第2版) PPT

    第10章 arm linux进程线程开发实例 288 10.1 arm linux进程线程管理 289 10.1.1 进程描述符及任务结构 289 10.1.2 进程的调度 291 10.1.3 linux中的线程 293 10.1.4 linux中进程间通信 293 10.2 ...

    将数据包与 Linux 系统中的负责进程相关联。通过添加进程信息来诊断连接_C语言_代码_相关文件_下载

    correlator,一种将数据包与进程相关联的开源工具 诊断在网络上看到的问题。 虽然将数据包与进程相关联的想法很简单,但 实现需要修改内核的方式来改变 网络堆栈工作。也许这种并发症是造成 事实上,没有其他工具...

Global site tag (gtag.js) - Google Analytics