2015-04-22 117 views
4

停止我運行中的R腳本(,使用R工作室),它調用幾個嵌套函數(腳本調用的函數,其中有一些代碼,然後調用另一個函數等)。我需要調試幾個級別的函數。我可以通過在函數調用的行上放置一個斷點,然後進入函數來進入腳本調用的第一個函數。但是,當我嘗試重複這一步來進入下一個函數(通過在下一個函數調用的行處有一個斷點)時,R會繼續運行代碼直到完成。即使使用'continue'命令,聲明「繼續執行直到遇到下一個斷點」。[R調試器不會在斷點處

我可以通過線上線通過步進,然後步入每一個功能,一旦我達到得到它的其他功能,但還需要一個很長的時間去,我需要這樣。

任何想法是值得讚賞

回答

1

debug是那樣的問題,非常方便。說,你想一步一步通過功能myfun。在運行代碼之前,只需運行debug(myfun),它將表現得就像在該函數的第一行中有一個斷點一樣。

這工作也,如果函數是從其他功能中調用,或者如果它是一個包內。在後一種情況下,它特別有用,因爲您不能只更改來自包的函數的代碼。

+0

明白了,謝謝!爲了得到我想要的東西,我必須稍微玩一下。你必須爲每個嵌套函數調用'debug(myfunc)'(不僅僅是你想調試的函數),並且確保'myfunc'已經在當前函數中找到。 – chtongueek

+0

我認爲'debug'應該在一個函數內調用的函數上工作,而不用在調用函數上運行它。但是,我並不知道包裝中的功能似乎有一些限制。 – Stibu

+0

如果這是一個包裝(內部包裝)的功能,我如何確保它已經被採購? –

相關問題