seefan

第 2182 号会员 /

回复了 holdno 创建的主题: 求助帖,golang mac 交叉编译linux, linux无法运行

再次提醒哈,重点是cpu的类型不同,同样是x64,但内核还是不同的,单用amd64是不能区分的。我的解决办法就是直接到那台至强的机器上编,就可以分发了。32位没有这个问题。

回复了 lmhao 创建的主题: LiteIDE使用中的一个困惑

指定一下run的文件,就是把那个主文件打开成当前tab,把文件名前面的框选上

回复了 q464610036 创建的主题: go调用dll崩溃,窗口直接关闭。。。

//打印无法处理panic的异常

func PrintErr() {
    if err := recover(); err != nil {
        file, ferr := os.Create("panic.log")
        if ferr != nil {
            fmt.Println("无法输出panic.log文件", ferr.Error())
            return
        }
        defer file.Close()
        g := log.New(file, "panic:", 0)
        g.Printf("panic at %v", time.Now())
        g.Printf("%v", err)
        fmt.Printf("%v\r\n", err)
        for i := 0; i < 10; i++ {
            funcName, file, line, ok := runtime.Caller(i)
            if ok {
                fmt.Printf("[func:%v,file:%v,line:%v]\n", runtime.FuncForPC(funcName).Name(), file, line)
                g.Printf("[func:%v,file:%v,line:%v]\n", runtime.FuncForPC(funcName).Name(), file, line)
            }
        }
    }
}

把上面的函数用defer加到你的main函数里,看看能记录到什么