跳至主要內容

Godbolt (gcc.godbolt.org)

LincZero大约 2 分钟

Godbolt (gcc.godbolt.org)

参考:

  • https://blog.csdn.net/chengyq116/article/details/128858098
  • compiler-explorer
    • https://github.com/compiler-explorer/
    • https://github.com/compiler-explorer/compiler-explorer

这并不是一个本地软件,是一个很好用的在线编译器。

虽然是在线编译器,但相比起CLion/VS这种本地编译器,有些功能更好用。(虽然CLion/VS也不是不能做,像CLion就有个Godoblt插件来着)

比起基本用法,该笔记更注重里面的汇编、调试、分析的高级使用。

介绍

Compiler Explorer 是一个交互式的编译浏览网站,可实时浏览编译后的汇编代码。测试不同的编译器版本和不同的编译器开关,对不同编译器的汇编输出进行可视化,实现源代码到汇编代码的对比显示。

功能

  • 看ASM (汇编)
  • 运行
  • 看LLVM IR
  • 看语法树
  • 用LLVM-mca做静态性能分析
  • 易于分享
  • 多语言

其他

代码上各种颜色的行的含义:

在Godbolt编译器中,各种颜色的行是用于标记源代码与生成的汇编代码或者IR code之间的对应关系。每种颜色都表示源代码中的某一行或者某几行在输出的汇编或者中间代码中的位置。

当你点击源代码中的某一行,该行将被标记为深色,并且在汇编输出中,与这行源代码对应的汇编指令也会被标记为同样的颜色。这样就可以很直观地看到源代码的每一行被编译成了什么样的汇编代码.

同时,如果你在汇编输出中点击某一行,源代码中对应的行也会被标记为同样的颜色。这样就可以很直观地看到每条汇编指令是由源代码的哪一行产生的。

这种映射关系不一定是一一对应的,有时候一行源代码可能对应多行汇编指令,反之亦然。颜色的变化就是为了尽可能清晰地显示这种映射关系。