2017-06-02 9 views
1

通常、私はdebug()をRの関数に呼び出すと、関数をステップ実行するだけですが、コールスタックをたどることがあります。私はなぜ、ある人がなぜ他の人と対立するのか分かりません。例えばRのデバッグ() `のレベルR

、私は

f <- function(x){ 
    print(x) 
} 

通常

debug(f) 
f("Hello World") 

を実行している場合は、単に時にはそれは、印刷方法自体のコードに行くと、私なり

function(x) print(x) 

が表示されますメソッドのディスパッチと、

を参照してください。
function (x, digits = NULL, quote = TRUE, na.print = NULL, print.gap = NULL, 
    right = FALSE, max = NULL, useSource = TRUE, ...) 
{ 
    noOpt <- missing(digits) && missing(quote) && missing(na.print) && 
    missing(print.gap) && missing(right) && missing(max) && 
    missing(useSource) && missing(...) 
    .Internal(print.default(x, digits, quote, na.print, print.gap, 
      right, max, useSource, noOpt)) 
} 

私が書いた関数のデバッグには役に立ちません。誰もがdebug()がコールスタックに落ちるかどうかを選択する方法を知っていますか?ありがとう!

答えて

0

debugそれだけではコールスタックをダウンすることはありません - それは正確にそれらの機能を示していますdebugギング、それ以上何も、以下はありません。あなたが誤って同様に機能debug GEDは、すなわちあなたがdebug(print.default)と呼ば

  1. この特定のケースで

    、あなたは別の関数に自分自身を見つける理由は2つあります。

  2. デバッグ中に、にしました。 Rコンソールでは、nの代わりにs(「次へ」の代わりに「ステップイン」)を押すと、これが発生します。 RStudioには、いずれかのアクションに適したボタンがあります。 options(error)が適切に設定されている場合に発生、または機能がbrowser()の明示的な呼び出しが含まれている場合、別の関数内で自分自身を見つけることがあります

他のもの。