Instrumenting a computer program to provide instrumented byte code includes
examining the byte code, selecting portions of the byte code for
instrumentation, and instrumenting the portions to provide instrumented
byte code. Selecting the portions may include choosing portions of the
byte code corresponding to method entry, method exit, a throw, a method
call, or a new line number. Instrumenting a portion of the byte code
corresponding to a method call may include instrumenting a local line
number of source code corresponding to the byte code being instrumented.
Instrumenting the portions may include adding calls to instrumentation
runtime functions that pass parameters indicative of the portions being
instrumented. At least one of the parameters that is passed may include a
line number of the source code corresponding to the portion being
instrumented or a thispointer for the method corresponding to the portion
being instrumented. Data from instrumentation may be passed via a message
stream that is viewed as the data is being generated and/or stored.
En équipant un programme machine pour fournir le byte équipé codez inclut examiner le code de byte, choisissant des parties du code de byte pour l'instrumentation, et équipant les parties pour fournir a équipé le code de byte. Le choix des parties peut inclure les parties de choix du code de byte correspondant à l'entrée de méthode, à la sortie de méthode, à un jet, à un appel de méthode, ou à une nouvelle ligne nombre. En équipant une partie du byte codez la correspondance à un appel de méthode peut inclure équiper une ligne locale nombre de code source correspondant au code de byte étant équipé. Équiper les parties peut inclure ajouter des appels aux fonctions d'exécution d'instrumentation qui passent des paramètres indicatifs des parties étant équipées. Au moins un des paramètres qui est passé peut inclure une ligne nombre du code source correspondant à la partie étant équipée ou un thispointer pour la méthode correspondant à la partie étant équipée. Des données de l'instrumentation peuvent être passées par l'intermédiaire d'un jet de message qui est regardé pendant que les données sont produites et/ou stockées.