[英]Emacs: methods for debugging python
我使用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是解釋器buildout使用為所有egg設置的路徑。
〜/ bin / pdb是一個使用當前python解釋器調用pdb.main的簡單腳本
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是buildout配方為gae項目制作的dev_appserver腳本,而... / 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中的交互式調試值得嗎? 可以互動調試谷歌appengine應用程序嗎? 關於我如何使這個工作的任何建議?
嗯。 你這樣做的方式與我有點不同。 我還沒有嘗試過你的方法。 我直接使用pdb庫模塊,沒有包裝器腳本,只需使用“-m”python命令行選項告訴python將模塊作為腳本運行。
為了過分徹底,這是我的操作順序:
我想有可能出現這種情況,因為它與引擎不能很好地配合。 我建議首先使用一個簡單的python程序讓它工作,一旦你知道它正在工作,嘗試加緊完整的應用程序。
在實踐中,我沒有用pdb進行太多python調試。 我的大部分調試基本上都是“printf調試”,完成了將print語句插入到我的單元測試中,並(偶爾)插入到實際代碼中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.