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

时间:2019-09-07 01:48:36

标签: c++ c++-coroutine

最近,我已经学习了有关C ++协程TS的材料,并且知道诸如clang之类的编译器会为co_await <expr>生成代码。而且,我很好奇使用gdb之类的工具检查生成的代码,尤其是检查在堆上创建的协程框架,以便使用这种机制给我留下深刻的印象。

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

1 个答案:

答案 0 :(得分:0)

除非我对您的问题有误解,为什么不只使用编译器开关输出生成的程序集,您就可以对其进行检查。 例如: clang++ -S foo.cpp 要么 g++ -S foo.cpp 将为您提供foo.s的asm输出,该输出将准确显示CPU将要看到的内容。 如果您更喜欢Intel语法而不是AT&T,请在命令行中添加“ -masm = intel”。