From 9d6c17b137df7f3fb13cf032e582ef27c6483189 Mon Sep 17 00:00:00 2001 From: hengyunabc Date: Mon, 7 Dec 2020 17:41:23 +0800 Subject: [PATCH] ignore native method. #1565 --- .../main/java/com/taobao/arthas/core/advisor/Enhancer.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/core/src/main/java/com/taobao/arthas/core/advisor/Enhancer.java b/core/src/main/java/com/taobao/arthas/core/advisor/Enhancer.java index dfccc1b8b..67bd06001 100644 --- a/core/src/main/java/com/taobao/arthas/core/advisor/Enhancer.java +++ b/core/src/main/java/com/taobao/arthas/core/advisor/Enhancer.java @@ -183,6 +183,11 @@ public class Enhancer implements ClassFileTransformer { groupLocationFilter.addFilter(invokeExceptionFilter); for (MethodNode methodNode : matchedMethods) { + if (AsmUtils.isNative(methodNode)) { + logger.info("ignore native method: {}", + AsmUtils.methodDeclaration(Type.getObjectType(classNode.name), methodNode)); + continue; + } // 先查找是否有 atBeforeInvoke 函数,如果有,则说明已经有trace了,则直接不再尝试增强,直接插入 listener if(AsmUtils.containsMethodInsnNode(methodNode, Type.getInternalName(SpyAPI.class), "atBeforeInvoke")) { for (AbstractInsnNode insnNode = methodNode.instructions.getFirst(); insnNode != null; insnNode = insnNode