12-29-2023, 11:29 AM
今天有同事用 clang-format 格式化了 GDB 的一个文件,编译之后功能不正常了。
仔细检查构建过程,发现编译 GDB 的时候会生成一个 init.c, 里面包含了各个初始化函数,它们来自于源文件里面的 _initialize_ 开头的 void 函数,它需要出现在一行的开头。clang-format 之后这行变成了 void _initialize_, 生成的 init.c 不一样了。
仔细检查构建过程,发现编译 GDB 的时候会生成一个 init.c, 里面包含了各个初始化函数,它们来自于源文件里面的 _initialize_ 开头的 void 函数,它需要出现在一行的开头。clang-format 之后这行变成了 void _initialize_, 生成的 init.c 不一样了。