将数组作为arg插入Java字节码中的函数

问题描述 投票:0回答:1

我正在尝试使用Jasmin字节码将数组传递给函数。它生成正确的类,但是在尝试运行它时给出错误:

java.lang.VerifyError :(类:test4,方法:主要签名:([Ljava / lang / String;] V)寄存器1包含错误的类型

这里可能有什么问题?谢谢您的提前帮助!

我的字节码:

.class public input_code
.super java/lang/Object

.method private static func([Ljava/lang/String;)V
.limit stack 99
.limit locals 99

return
.end method

.method public static main([Ljava/lang/String;)V
.limit stack 99
.limit locals 99

ldc 10
anewarray java/lang/String
astore 1
aload 1
ldc 9
ldc "t"
aastore
iload 1
invokestatic input_code/func([Ljava/lang/String;)V
return
.end method

java类:

public class input_code {
    private static void func(String[] var0) {
    }

    public static void main(String[] var0) {
        String[] var1 = new String[10];
        var1[9] = "t";
        func(var1);
    }
}
java arrays function bytecode jasmin
1个回答
0
投票

我在这里不好。我的代码生成器有一个错误(在visitExpIdentifier中)

ldc "t"
aastore
iload 1 << should be aload
© www.soinside.com 2019 - 2024. All rights reserved.