2013-03-20 24 views
14

我剛剛升級到適用於我的python應用程序的App Engine 1.7.6 SDK,並意識到當使用新的dev_appserver.py時,斷點在PyDev(Eclipse插件)中不再起作用。App Engine 1.7.6中的PyDev斷點被破壞?

有沒有人知道一種方法來使他們再次?我假設新的服務器正在爲Web服務器產生一個新的進程,並且調試器沒有附加到該服務器上。我不知道如何配置它來做到這一點。

與此同時,我正在使用old_dev_appserver.py服務器。

+1

「不再工作」是指在Eclipse IDE中不會觸發斷點。 – Dylan 2013-03-20 06:20:08

+1

我只是想問同樣的問題 – matcheek 2013-03-20 18:18:42

+0

我已經提交了關於AppEngine項目的一個問題:https://code.google.com/p/googleappengine/issues/detail?id=9012 – matcheek 2013-03-20 18:43:38

回答

8

更新2012-07-27:

繼評論,我覈實,問題是更新到 後問題PyDev的。 2.8和App Engine的1.8.2

已過時:

我發現這個問題下面分析在googleappengine issues tracker

之所以PDB不就是因爲dev_appserver使用 標準輸入/輸出工作用於進程間通信。 Python爲IPC:http://docs.python.org/2/library/ipc.html內置了 庫。 dev_appserver應該使用這些,然後stdin /標準輸出可以單獨留下 ,以便PDB仍然有效。

如此看來,有沒有解決辦法,而不是恢復到使用old_dev_appserver.py

UPDATE 2013年4月23日: 無力調試是煩人。 許多開發者抱怨

  1. PyDev Breakpoints in App Engine 1.7.6 broken?
  2. https://groups.google.com/forum/?fromgroups=#!topic/google-appengine/ep5BWYKpQpU
  3. https://groups.google.com/forum/?fromgroups=#!topic/google-appengine/TCQuJpF44cY
  4. https://code.google.com/p/appengine-devappserver2-experiment/issues/detail?id=28
  5. https://code.google.com/p/googleappengine/issues/detail?id=9012

我這裏保持這一問題的發展軌跡: http://goo.gl/XRU01

+1

只是要注意,2.8.0的PyDev現在支持在谷歌應用程序引擎的新的掛鉤,所以,調試應該可以正常工作了。 查看發佈詳情,網址爲:http://pydev.org/ – 2013-07-25 20:20:15

+0

我遇到了與Dylan相同的問題,並且我確認它是使用PyDev 2.8解決的。 – 2013-07-27 11:37:48

+0

感謝您的更新,似乎我們有足夠的證據得出結論,最終**問題已經解決。我個人認爲這花了這麼長時間是一種恥辱。 – 2013-07-28 12:41:29

1

你的意思是pdb.set_trace()不工作?

查找功能MonkeyPatchPdb()在谷歌/的AppEngine /工具/ dev_appserver.py

運行在自己的項目somewehere您使用PDB,它應該修復它。

+0

MonkeyPatchPdb似乎不存在於新的dev_appserver.py中。我不確定PyDev是否使用Pdb,我只是在Eclipse IDE中設置斷點。儘管我嘗試過使用pdb.set_trace,但它導致腳本退出。 – Dylan 2013-03-20 03:58:24

+0

它是如何工作的:將下面的代碼放在/ main.py中? 從google.appengine.tools.dev_appserver進口MonkeyPatchPdb 進口PDB MonkeyPatchPdb(PDB) – 2013-04-04 06:16:56

3

是的,遇到了同樣的問題。

打開運行/調試配置和設置主模塊到:

${GOOGLE_APP_ENGINE}/old_dev_appserver.py