2016-01-20 2 views
1

Comment trouver la valeur de toutes les fonctions pour lesquelles j'ai activé trace? Je sais que je peux tourner du tracingState global, mais je trouve que j'oublie quelles fonctions sont tracées et me demandais s'il y a un moyen de récupérer cette information? Exemple simple,Trouver la valeur de toutes les fonctions avec trace active

tst <- function(cond) { if (cond) 'yay' else 'neigh' } 
tst1 <- function(x) { x*x } 
trace('tst', tracer=browser) 
trace('tst1', tracer=browser) 

## Can I retrieve a vector of functions being traced? 
## would like a result here to be: 
## [1] "tst" "tst1" 

## Cleaning 
untrace('tst') 
untrace('tst1') 

Répondre

3

Je ne savais pas, mais trace ajoute une classe, « functionWithTrace » aux fonctions modifiées. Donc, il est assez facile de les récupérer,

res <- eapply(.GlobalEnv, function(x) if (inherits(x, 'functionWithTrace')) TRUE) 
names(unlist(res)) 
# [1] "tst" "tst1"