如何查看编译器生成的C++协程代码的代码

How to see the compiler-generated code for C++ coroutine code

本文关键字:代码 程代码 C++ 何查看 编译器      更新时间:2023-10-16

最近我学习了有关C++协程 TS 的材料,并且知道像 clang 这样的编译器会为co_await <expr>生成代码。而且我很想检查生成的代码,尤其是使用某些工具(例如 gdb(在堆上创建的协程框架,这样我就会对这种机制印象更深刻。

我已经尝试过gdb,但没有我期望的结果。

除非我误解了你的问题,否则为什么不直接使用编译器开关输出生成的程序集,你可以检查它。 例如:clang++ -S foo.cppg++ -S foo.cpp将为您提供 ASM 输出foo.s,该输出将准确显示 CPU 将要看到的内容。 如果您更喜欢英特尔语法而不是AT&T,请在命令行中添加"-masm=intel"。