5 votes

Ruby: Comment accéder à une fonction arbitraire pendant le débogage

Disons que je suis arrêté à un point en débogage :

def get_data
    byebug
 => @cache ||= calculate_data

Et que @cache a une valeur, donc sur la fonction step calculate_data ne sera pas exécutée. Cependant, j'ai besoin de vérifier ce qui se passe à l'intérieur de calculate_data à ce moment précis de l'exécution.

Je peux simplement exécuter calculate_data et voir son résultat dans la sortie console, mais est-ce que je peux exécuter la fonction depuis la console de débogage et en même temps y entrer en mode pas à pas? (Utiliser byebug ou un autre outil de débogage).

Le but est d'inspecter la logique de calculate_data à un moment arbitraire, particulièrement lorsque get_data est appelée avec @cache rempli.

1voto

Dan Key Points 2255

Avec pry-moves, vous pouvez exécuter un débogage séparé d'une fonction arbitraire à partir du contexte actuel :

def get_data
    binding.pry
 => @cache ||= calculate_data
end

Tapez debug calculate_data pour exécuter calculate_data et vous arrêter à la première ligne à l'intérieur de celle-ci.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X