【问题标题】:How to display the VTABLE of a C++ class through GCC?如何通过 GCC 显示 C++ 类的 VTABLE?
【发布时间】:2012-01-22 07:04:10
【问题描述】:

我知道一个类将有一个VTABLE,如果它包含至少一个虚函数。我想看看VTABLE 的内容。有没有办法显示它?

具体来说,gcc 中是否有显示某个类的VTABLE 的选项?

【问题讨论】:

    标签: c++ gcc virtual-functions vtable


    【解决方案1】:

    如果输入文件是layout.cpp,则命令gcc -fdump-class-hierarchy layout.cpp 将生成一个文件layout.cpp.class。该文件将显示 VTABLE 以及其他一些有用信息。

    【讨论】:

    • 你确定我们应该使用 gcc 还是应该使用 g++ for c++
    • 它的 g++ 不是 gcc。
    • "从 GCC 8.0 版开始,至少这两个选项被替换了:-fdump-class-hierarchy 现在是 -fdump-lang-class -fdump-translation-unit ---> -fdump-lang-生”
    • @user362515:你知道这些选项在 gcc 9.0 版中是否仍然可用吗?
    【解决方案2】:

    假设它确实有一个 v-table(这取决于编译器,并且不是标准要求或规定的) - 您可以使用调试器对其进行检查。

    你为什么要这样做?如果您依赖它来满足好奇心以外的任何事情 - 那么不要

    【讨论】:

    • 是的,出于好奇。 gcc 中是否有显示 vtable 的选项?
    • @LinuxPenseur 你一定是指 gdb。我不知道。我知道在 Visual Studio 上,我在检查课程时偶尔会看到它出现。我想这取决于 gcc 附加的符号以及您是否可以找到该符号。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-01
    • 2017-04-01
    • 2016-12-12
    • 1970-01-01
    • 2013-04-05
    相关资源
    最近更新 更多