Debugging python programs in emacs

Each Answer to this Q is separated by one/two green lines.

How to debug python programs in emacs?

I use python-mode.el

I get reference like

import pdb; pdb.set_trace();

but not sure how to use it.

Type M-x cd to change directory to the location of the program you wish to debug.
Type M-x pdb. You’ll be prompted with Run pdb (like this): pdb. Enter the name of the program (e.g.

At the (Pdb) prompt, type help to learn about how to use pdb.

Alternatively, you can put

import pdb 

right inside your program (e.g. Now type M-x shell to get a shell prompt. When you run your program, you’ll be dumped into pdb at the point where pdb.set_trace() is executed.

For me, I needed to replace the default “pdb” with

python -m pdb

The realgud package (available from MELPA) supports PDB (among a gazillion other debuggers), and has a host of neat features that Emac’s PDB doesn’t have.

The one I like best is the shortkeys mode. Once you start debugging a program, you can press n, s, c etc. right in the source window, instead of having to type these commands in the PDB buffer. It also supports Visual-Studio style keybindings with function keys (f10, f11, f5, etc).

After installing RealGUD, you need to run M-x load-feature realgud to load it, and you can start pdb with M-x realgud:pdb.

The answers/resolutions are collected from stackoverflow, are licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0 .