emacsからpdb

今日は普段pythonのコードを書くときに使っているemacs上でpdbを使ってみました。
昨日ダウンロードしたwinpdbもよかったですが、emacs上でのpdbもなかなかいいもんですね。

pdbブレークポイントを設定するときに、

b 行番号
b ファイル名:行番号

などという指定をしますよね。

知らないのは私だけだったかもしれませんが、以下の方法でもブレークポイントの設定ができるんですね。

(1) emacspdbを起動
(2) ソースコードを表示しているバッファに移動し、ブレークポイントを設定したい行
   にカーソルを置く。
(3) C-x SPACEと入力

これはなかなか便利です。

ただ、emacspdb、動作がなんだか変な時もあるような。。。

ウインドウを2つに分割している状態(1つがソース、1つがpdb)になっている時、
pdbのほうでステップ実行(nコマンド)を行うと、ソースを表示しているほうのウインドウ上の表示もpdbの実行中の行に同期してくれます。

が、ステップ実行のショートカットキー(C-x C-a C-n)を使うと、
別モジュールの関数を呼び出している場合に、ソースを表示させているウインドウの表示内容が追従してくれないようです。

もしかしたら、そういうものなのかも知れませんが少し気になりました。

そういうときには、pdbのウインドウじょうで、 n コマンドを実行すればきちんと別モジュールの関数の内容がソースのウインドウに表示されるようになります。

いやはや、奥が深いですね。。

今日もいい勉強になりました。