wie Sie wissen, welche Funktionen in R sind für das Debuggen gekennzeichnet?

StackOverflow https://stackoverflow.com/questions/1614889

  •  06-07-2019
  •  | 
  •  

Frage

Ich habe mit debug() jetzt öfter, aber manchmal frage ich mich, welche Funktionen für das Debuggen gekennzeichnet wurden. Ich weiß, dass Sie isdebugged() um herauszufinden, ob eine bestimmte Funktion gekennzeichnet ist verwenden können. Aber gibt es eine Möglichkeit für R zur Liste alle Funktionen, die debuggt werden?

War es hilfreich?

Lösung

Dies ist verworren, aber es funktioniert:

 find.debugged.functions <- function(environments=search()) {
    r <- do.call("rbind", lapply(environments, function(environment.name) {
    return(do.call("rbind", lapply(ls(environment.name), function(x) {
          if(is.function(get(x))) {
             is.d <- try(isdebugged(get(x)))
             if(!(class(is.d)=="try-error")) {
                return(data.frame(function.name=x, debugged=is.d))
             } else { return(NULL) }
          }
       })))
     }))
     return(r)
 }

Sie können es über alle Ihre Umgebungen laufen wie folgt:

find.debugged.functions()

Oder einfach nur in Ihrem ".GlobalEnv" mit diesem:

 > find.debugged.functions(1)
             function.name debugged
 1 find.debugged.functions    FALSE
 2                    test     TRUE

Hier habe ich eine Testfunktion, die ich debuggen.

Andere Tipps

Wenn Sie in so etwas wie das Schreiben einer Funktion erhalten wollte Feuer alles durch isdebugged (), ich glaube nicht, Sie können.

In debug.c ist die Funktion do_debug was für den DEBUG-Flag überprüft auf einem Objekt gesetzt werden. Es gibt nur drei R-Funktionen, die den do_debug C-Aufruf rufen: debug, undebug und isdebugged

.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top