pdb has been, is and probably always will be the bread and butter of Python programmers when they need to find the root cause of a problem in their applications — it’s a built-in and easy to use debugger. But there are cases when pdb can’t help you, e.g. if your app is stuck somewhere, and you want to attach to a running process to find out why, without restarting it. This is where gdb shines. Why