Redefining Go Functions
L’article compare le monkey patching en Perl avec des approches similaires en Go, tout en notant que Go n’offre pas cette fonctionnalité de manière native. Il montre qu’il est techniquement possible de manipuler l’exécution en obtenant l’adresse d’une fonction et en inspectant ses instructions en mémoire pour détourner le flux d’exécution. La méthode décrite consiste à écrire un JMP au début de la fonction originale pour rediriger l’exécution vers une fonction de remplacement sans modifier les appels. Le texte met en garde contre les risques importants comme les plantages, les problèmes d’adressage et la protection mémoire nécessaire via mprotect, ainsi que les défis liés à l’inline et à l’upcasting de méthodes. En conclusion, l’auteur affirme que la pratique est dangereuse et non recommandée, propose seulement un outil expérimental pour Linux/AMD64 et mentionne les limites multiplateformes.