调试LLVM bug近一周,它为何问题频出?

1个回答

写回答

14080154148

2026-01-25 21:35

+ 关注

我调试llvm的一个bug近一周了,所以来回答这个问题。LLVM包含大量如下内容:一般而言,常见的LLVM二进制大多为非debug build。于是有大量未定义行为(UB),具体体现为编译器崩溃或者编译错误。从Github的issue情况看,LLVM存在949个致使崩溃的issue。

Rust仅有97个crash的问题,且半数以上与LLVM相关。

Rust存在647个编译器panic崩溃,而且这些崩溃无需debug build。

要是使用带调试(debug)构建的LLVM?许多原本不会崩溃的程序也会因断言(assert)而崩溃了,这表明LLVM正常工作是依赖未定义行为(UB)的。我很期望有Rust编写的LLVM替代物,毕竟safe Rust不会有未定义行为。我上月才答过这问题,这个月又碰到了。LLVM开启assert会导致ABI破坏。

举报有用(0分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号