pkujhd / goloader

load and run golang code at runtime.
Apache License 2.0
497 stars 58 forks source link

在运行的golang代码如果使用指针会报错 #58

Closed Linkangyis closed 2 years ago

Linkangyis commented 2 years ago

比如 var text string 调用&text必报错

pkujhd commented 2 years ago

比如 var text string 调用&text必报错

请给出一个testcase

Linkangyis commented 2 years ago

比如 var text string 调用&text必报错

请给出一个testcase

panic: runtime error: invalid memory address or nil pointer dereference

package main

import (
    "fmt"
)

func Test(a map[int]string)string{
    var text string
    fmt.Scanln(&text)
    fmt.Println(text)
    return text
}
Linkangyis commented 2 years ago

Load error: unresolve external:fmt.Fscanln 原版输出

pkujhd commented 2 years ago

@Linkangyis 需要注册fmt.Scanln 在loader里调用 goloader.RegTypes(symPtr, fmt.Scanln)

Linkangyis commented 2 years ago

@Linkangyis 需要注册fmt.Scanln 在loader里调用 goloader.RegTypes(symPtr, fmt.Scanln)

感谢