Byteman é uma ferramenta que permite interceptar eventos em tempo de execução de aplicações Java, como entrada e saída de métodos, para realizar debug e testes de concorrência. Ele oferece regras para definir pontos de interceptação e ações a serem tomadas. Pode ser usado via agente Java, scripts shell ou em testes unitários.
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
Byteman: Tudo o que queria saber mas não sabia a quem perguntar
1. Byteman: Tudo o que você queria
saber mas não sabia a quem
perguntar
Ricardo Martinelli
2. O problem a
● Encontrar problemas que só ocorrem em
produção (isso nunca acontece, né?)
● Fazer debug de problemas que não são
visíveis a olho nu
● Criar testes de concorrência (detecção de
Racing Condition)
5. Template de regra
# rule skeleton
RULE <rule name>
CLASS <class name>
METHOD <method name>
BIND <bindings>
IF <condition>
DO <actions>
ENDRULE
6. Pontos de interceptação
AT ENTRY
AT EXIT
AT LINE number
AT READ [type .] field [count | ALL ]
AT READ $var-or-idx [count | ALL ]
AFTER READ [ type .] field [count | ALL ]
AFTER READ $var-or-idx [count | ALL ]
AT WRITE [ type .] field [count | ALL ]
AT WRITE $var-or-idx [count | ALL ]
AFTER WRITE [ type .] field [count | ALL ]
AFTER WRITE $var-or-idx [count | ALL ]
AT INVOKE [ type .] method [ ( argtypes ) ] [count | ALL ]
AFTER INVOKE [ type .] method [ ( argtypes ) ][count | ALL ]
AT SYNCHRONIZE [count | ALL ]
AFTER SYNCHRONIZE [count | ALL ]
AT THROW [count | ALL ]