0

我想在 Wildfly 18 中部署的应用程序中的方法上添加一些跟踪。

我只能看到从 Windows 命令提示符的控制台输出(不是 server.log)加载并打印了第一条规则,但从未打印过另一条规则。

RULE show byteman is loaded
CLASS Main
METHOD main
AT ENTRY
IF TRUE
DO trace("Byteman at start");
   traceln("Hey Byteman ");
ENDRULE

RULE Check Method1
CLASS com.xxx.xxx.MyClass
METHOD method1
AT ENTRY
IF true
DO trace("Method1 was called");
   traceln("Method1 was called");
ENDRULE

RuleTriggerMethodAdapter.injectTriggerPoint : inserting trigger into org.jboss.as.server.Main.main(java.lang.String[]) void for rule show byteman is loaded
org.jboss.byteman.agent.Transformer : inserted trigger for show byteman is loaded in class org.jboss.as.server.Main
Rule.execute called for show byteman is loaded_0:1
HelperManager.install for helper class org.jboss.byteman.rule.helper.Helper
calling installed(show byteman is loaded) for helper classorg.jboss.byteman.rule.helper.Helper
Installed rule using default helper : show byteman is loaded
show byteman is loaded execute
Byteman at startHey Byteman
4

1 回答 1

0

这里的问题似乎是您的第二条规则尚未注入。Byteman 跟踪仅显示被注入的第一条规则。您确定您的规则中有正确的详细信息吗?

RULE Check Method1
CLASS com.xxx.xxx.MyClass
METHOD method1
...

com.xxx.xxx.MyClass 类真的存在吗?

它有一个名为 method1 的方法吗?

那个类有没有被加载?

该方法是否被调用过?

最后两个问题的答案看起来肯定不是肯定的,因为如果是这样,您会看到注入和触发消息。

于 2021-01-11T14:31:16.837 回答