美文网首页
显示所有子线程

显示所有子线程

作者: 帆子_8c3a | 来源:发表于2021-12-21 01:04 被阅读0次
package main

import (
    "fmt"
    "io/ioutil"
    "os"
    "strconv"
    "syscall"
)

func ShowProcessInfo(pid int) {
    err := syscall.PtraceAttach(pid)
    if err != nil {
        panic(err)
    }

    _, err = syscall.Wait4(pid, nil, 0, nil)
    if err != nil {
        panic(err)
    }

    var regs syscall.PtraceRegs
    err = syscall.PtraceGetRegs(pid, &regs)
    if err != nil {
        panic(err)
    }

    err = syscall.PtraceDetach(pid)
    if err != nil {
        panic(err)
    }
    fmt.Println("pid:", pid)
    fmt.Println(regs.Rsp)
}

func ShowProcessStack(pid string) {
    dirs, err := ioutil.ReadDir(fmt.Sprintf("/proc/%s/task", pid))
    if err != nil {
        panic(err)
    }
    for _, dir := range dirs {
        sub_pid, _ := strconv.ParseInt(dir.Name(), 10, 32)
        ShowProcessInfo(int(sub_pid))
    }
}
func main() {
    ShowProcessStack(os.Args[1])
}

相关文章

  • 显示所有子线程

  • C#:教你进度条的核心代码

    说明:利用多线程显示进度,防止主线程假死,子线程实时向主线程报告进度状况,主线程可提前结束子线程。看懂下面的代码你...

  • iOS 多线程 项目中的应用场景

    开辟子线程 运行耗时de代码块,然后在主线程中刷新UI 显示

  • 线程同步(通信)

    线程分类 普通线程:主线程创建的所有子线程都是普通线程守护线程:JVM停止时,抛弃所有守护线程,不执行finall...

  • java多线程经典编程题

    题目一:子线程循环2次,主线程循环2次,然后子线程循环2次,主线程循环2次,这样循环10次; 打印结果: 用显示锁...

  • 多线程总结

    关于多线程 (一).多线程主线程:显示/刷新UI界面,处理UI事件子线程:处理耗时操作 例如网络访问[图片上传失...

  • 记录一下GCD的小东西

    子线程搞事情,主线程来显示 我们都知道把UI相关的事情放在主线程,但是如果当我们要下载一张比较大的图片来显示的话,...

  • 多线程编程

    1.等待所有子线程结束

  • 02. 守护线程和线程之间共享全局变量

    1. 守护线程 使用setDaemon(True)把所有的子线程都变成了主线程的守护线程,因此当主进程结束后,子线...

  • 多线程使用

    开辟子线程 运行耗时de代码块,然后在主线程中刷新UI 显示 dispatch_async(dispatch_ge...

网友评论

      本文标题:显示所有子线程

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