Я разместил это на programmers.stackexchange.com , но я подумал, что это может быть более подходящим для SO.
Я использую emacs для всех моих нужд редактирования кода. Как правило, я использую Mx-компиляцию для запуска моего тестового прогона, который, я бы сказал, дает мне около 70% того, что мне нужно сделать, чтобы сохранить код в нужном направлении, однако в последнее время я удивлялся, как можно использовать Mx pdb на случаи, когда было бы неплохо достичь точки останова и осмотреть вещи.
В моем поиске я нашел некоторые вещи , которые предполагают, что это полезно / возможно. Однако мне не удалось заставить его работать таким образом, чтобы я полностью понимал.
Я не знаю, может быть, это сочетание buildout + appengine, которое может усложнить задачу, но когда я пытаюсь сделать что-то вроде
M-x pdb
Run pdb (like this): /Users/twillis/projects/hydrant/bin/python /Users/twillis/bin/pdb /Users/twillis/projects/hydrant/bin/devappserver /Users/twillis/projects/hydrant/parts/hydrant-app/
Где ... / bin / python - это компоновщик интерпретатора с путем, заданным для всех яиц.
~ / bin / pdb - это простой скрипт для вызова pdb.main с использованием текущего интерпретатора python
HellooKitty:hydrant twillis$ cat ~/bin/pdb
#! /usr/bin/env python
if __name__ == "__main__":
import sys
sys.version_info
import pdb
pdb.main()
HellooKitty:hydrant twillis$
... / bin / devappserver - это скрипт dev_appserver, который используется в рецепте компоновки для проекта gae, а ... / parts / hydrant-app - это путь к app.yaml
Мне впервые предлагают приглашение
Current directory is /Users/twillis/bin/
C-c C-f
Ничего не происходит, но
HellooKitty:hydrant twillis$ ps aux | grep pdb
twillis 469 100.0 1.6 168488 67188 s002 Rs+ 1:03PM 0:52.19 /usr/local/bin/python2.5 /Users/twillis/projects/hydrant/bin/python /Users/twillis/bin/pdb /Users/twillis/projects/hydrant/bin/devappserver /Users/twillis/projects/hydrant/parts/hydrant-app/
twillis 477 0.0 0.0 2435120 420 s000 R+ 1:05PM 0:00.00 grep pdb
HellooKitty:hydrant twillis$
что-то происходит
C-x [space]
сообщит, что точка останова была установлена. Но я не могу добиться успеха.
Такое ощущение, что мне здесь не хватает чего-то очевидного. Я?
Так стоит ли интерактивная отладка в emacs? Возможна ли интерактивная отладка приложения Google Appengine? Любые предложения о том, как я мог бы заставить это работать?