We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Debugging Hung Python Processes with GDB

Formal Metadata

Title
Debugging Hung Python Processes with GDB
Title of Series
Number of Parts
611
Author
License
CC Attribution 2.0 Belgium:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language
Production Year2017

Content Metadata

Subject Area
Genre
Abstract
When things go wrong in production, it can be necessary to troubleshootproblems where they occur, instead of in a development environment. In thosesituations having a working knowledge of GDB, GDB Python Extensions, andstrace is very helpful. You will see some simple techniques to get insightinto those situations. This talk outlines several techniques for connecting toan already running, "stuck", or deadlocked Python process using GDB fordebugging. During the talk, we will: * inspect the current state of threads with * use and demo the GDB macros for Python * inspect a locally running process and a core dump collected from a remote machine * use strace to gather system call information about a process * discuss the SIGTRAP handler as a proactive way to make rpdb available in production. I have had to debug several hard-to-find bugs that were very infrequentdeadlocks using Python. Furthermore it was happening on remote machines Icould not have network access to. This technique was invaluable in thosesituations.