15

Is there a way to get a thread dump from a running Python process? Similar to kill -3 on a Java process.

oneself
  • 38,641
  • 34
  • 96
  • 120
  • 1
    Does this answer your question? [Showing the stack trace from a running Python application](https://stackoverflow.com/questions/132058/showing-the-stack-trace-from-a-running-python-application) – rogerdpack Mar 15 '22 at 16:49

2 Answers2

7

I havent seen anything built-in, but I have seen a solution here which can be exposed via http console. The solution iterates over all threads and outputs the stack.

akf
  • 38,619
  • 8
  • 86
  • 96
  • 1
    So the answer is that Python doesn't have this mechanism built in, right? – oneself Aug 20 '09 at 13:38
  • I'm running this in Pylons via Apache, and the problem is that each process runs a single thread. So, the thread-dump is always for the thread that called for a dump, and so is always identical, and useless. – oneself Aug 26 '11 at 21:50
2

As this is an old question, but it is number one in Google, so let me answer.

Python has had a faulthandler module for some time now (a decade or so). This is a built-in way to give you a thread dump of any running Python process.

Mikko Ohtamaa
  • 82,057
  • 50
  • 264
  • 435