回应模式 - No.66562764


No.66562764 - 技术宅


无标题无名氏No.66562764 只看PO

2025-07-13(日)18:04:47 ID:s4zQeMC 回应

https://gitee.com/openharmony-loongarch/devtools/blob/ohos-5.1/README.md
在虚拟机上编译PC镜像,终端闪退会是什么原因呢?每次闪退的进度不一样所以应该能排除程序问题。但是都是在差不多的地方闪退,大家有什么好的建议吗?

无标题无名氏No.66562770

2025-07-13(日)18:06:24 ID: s4zQeMC (PO主)

build.log结尾部分也没有异常,但是闪退就导致没有error.log

无标题无名氏No.66566248

2025-07-14(一)06:04:58 ID: 4oFnDNS

每次闪退进度不一样有可能单纯只是因为同时使用了很多个核来进行构建(jobs不为1),然后每次构建的顺序不太一样,但实际上可能都是同一个地方出错( ゚∀。)就好像一个多线程的程序,其中一个线程crash了,但是其它线程可能每次都执行到了不同的地方,让你以为在不同地方crash的错觉

无标题无名氏No.66566249

2025-07-14(一)06:06:26 ID: 4oFnDNS

至于没有错误日志,可以考虑打开verbose,或者看看构建程序本身有没有把错误日志作为流写到其它文件的方法?这样即使crash也最多是流中断,不会整个文件没掉

无标题无名氏No.66566251

2025-07-14(一)06:07:23 ID: 4oFnDNS

你也可以直接看看build.sh的内容,然后自己逐步执行一下

无标题无名氏No.66566259

2025-07-14(一)06:12:36 ID: 4oFnDNS

如果你说的是终端那个窗口闪退了,那还有个办法就是套多几层shell的皮,比如你原来是运行./build.sh,改成先打开终端,运行一下bash,进入到interactive shell之后,再运行build.sh;或者运行bash -c './build.sh'。这样里面的exit只会退出你外面那层皮,不会整个窗口关掉。等它炸了之后看终端的输出流。甚至你直接把stdout和stderr重定向到文件都可以(靠>和 2>两个操作符)。