2011-06-05 78 views

回答

12

好的,我在IPython源代碼中找到了這樣的地方。在我安裝它在

.../python2.7/site-packages/ipython-0.10.2-py2.7.egg/IPython/Debugger.py:327: 

更改此:

def print_stack_entry(self,frame_lineno,prompt_prefix='\n-> ', 
         context = 3): 

def print_stack_entry(self,frame_lineno,prompt_prefix='\n-> ', 
         context = 11): 

這是真棒!

對於IPython的4.0.1,在debugger.py只補充一點:

class Pdb(OldPdb): 
    """Modified Pdb class, does not load readline.""" 

    def __init__(self,color_scheme='NoColor',completekey=None, 
       stdin=None, stdout=None, context=None): 
     context=20 
+2

我找到了我在不同的文件在Ubuntu 12.04 -/usr/lib/python2.7/dist-packages/IPython/core/debugger.py – user1953384 2013-12-20 20:00:02

+8

用裸手編輯依賴包的腸子不是你通常想要配置的東西.. – 2015-08-21 12:34:43

30

您可以輸入IPDB l顯示當前上下文

的幾行,你可以保持打l並繼續顯示文件中的更多行

如果要在當前行的周圍顯示更多行上下文,可以鍵入l以獲取當前行。然後輸入l curr_line - 10, curr_line + 10。說我在線50,我想看看周圍的20條線。我會輸入:l 40,60以查看更多。

正如@jrieke在評論中指出的那樣,您還可以點擊ll以獲得更大的上下文。關於ll的一個好處是它會從當前方法的開頭一直打印回來(而連續的l會在您的斷點之下顯示更多的行)。

+1

添加到:你也可以輸入'll '一次獲得更多的線路 – jrieke 2017-07-24 01:02:55

+1

我認爲這個答案應該是可以接受的。 – stefanfoulis 2017-08-09 09:12:49

+0

問題要求默認完成此操作,而不是通過其他用戶操作。 – fastmultiplication 2017-10-10 20:53:52

10

您可以通過執行獲得更多的背景:

ipdb.set_trace(context=21) 

(有a bug在0.10.0打破這個出臺,但應該很快就會固定)

永久上下文大小

要永久設置上下文大小,通過執行找到安裝目錄

python -c 'import ipdb; print(ipdb)' 

這將告訴你一個__init__.py文件。打開該文件,並找到線(也可在IPDB的__main__.py發現:

def set_trace(frame=None, context=3): 

改變你想要的3到然而,許多上下文行

+0

ipdb v0.10.2尚未發佈,我找不到任何與IPDB_CONTEXT_SIZE相關的任何內容,甚至在他們的github存儲庫上都沒有。 – gnebehay 2016-09-05 09:00:37

+0

@gnebehay,你是對的,謝謝。我已經更新了我的答案。 – Garrett 2016-09-05 20:45:24

相關問題