我正在使用CMake将一个C++文件编译成静态库,并通过修改由CMake生成的Makefile,向gcc命令添加-S -fverbose-asm标志以获取汇编输出。然而,生成的.cpp.s文件中充满了.ascii行,其中包含十六进制数据,而且没有汇编指令,如以下内容:
有人知道这是什么原因导致的吗?我该如何获得易读的汇编指令呢?
gcc版本:5.4.0
.ascii "\346+\274\004@\226\032!n\247<)\212\264\205\377*\204\275\364e"
.ascii "\314\026\270vi\263\373\327\n\367$\332\035\364N\212\316\254\324"
有人知道这是什么原因导致的吗?我该如何获得易读的汇编指令呢?
gcc版本:5.4.0
.ascii
作为一种相对紧凑的方式来发出汇编器不知道的原始二进制格式(GIMPLE)。另一种选择是.byte 12, 34,...
,这是2到4个源字节每输出字节,类似于带有八进制的ASCII。或者.long
或.quad
会更接近2个源字节每输出字节。 - Peter Cordes-flto
启用。您的.s
文件中应该会看到很多lto
字符串。 - Jester