程序假死了怎么办? ->卡住了,无法动弹不知道怎么办了的解决办法

文章目录

  • 一、ps -u
  • 二、gdb attach 4207(写你卡死的进程号PID)
    • 1. info threads
    • 2. bt
    • 3. thread 2
    • 4. bt

一、ps -u

可以从列出的信息中看到卡死的进程号(PID)
(整个程序是一个进程)

二、gdb attach 4207(写你卡死的进程号PID)

现在我们进了该进程的gdb

1. info threads

可以查看该进程有多少个线程

2. bt

打印该线程的调用堆栈

这个甚至可以精确到项目中某个代码文件的某一行

3. thread 2

这个可以进行线程切换,
假如说:你这个项目有两个线程,一般进来时,很多相关的调试信息指向的是线程1,你可以通过这个命令切换到你想调试的线程.比如你想调试线程3,你就使用thread 3命令来实现这个目的

4. bt

现在会打印 : “你切换后的” “线程的” 调用堆栈

然后精确到项目中某个代码文件的某一行,然后找到问题的解决办法

你可能感兴趣的:(Linux,linux)