将枚举值映射到 C++ 中的字符串

发布于 2024-08-14 05:55:09 字数 228 浏览 5 评论 0原文

有没有办法在运行时将枚举的值映射到名称? (我正在使用 GCC 进行构建。)

我知道 GDB 可以做到这一点,并且我愿意使用一些不可移植且会破坏调试数据的东西。


编辑:我正在寻找一种解决方案,不需要修改原始枚举声明,也不需要手动复制映射函数中的所有值。我已经知道如何做到这两点。

有效地;我想要一个函数,它可以执行 GDB 在格式化运行时枚举值时执行的任何操作。

Is there a way to, at runtime, map the value of an enum to the name? (I'm building with GCC.)

I know GDB can do it and I'm willing to use something that's unportable and mucks with debug data.


Edit: I'm looking for a solution that doesn't require modifying the original enum declaration nor hand copying all the values out in a mapping function. I already know how to do both of those.

Effectively; I want a function that does whatever GDB does when it formats runtime enum values.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

や莫失莫忘 2024-08-21 05:55:09

如果您有毅力,您可以创建一个工具来解析枚举的源文件,生成翻译函数并将它们添加到源代码中。如果您有更多的精力,您可以为 Eclipse 和 Emacs 等编辑器编写插件来为您执行此操作。

也许可以用 Perl 脚本来完成?

If you have tenacity, you could create a tool that will parse source files for enums, generate the translation functions and add them to the source code. With more energy, you could write plugins for editors such as Eclipse and Emacs that will perform this for you.

Perhaps it could be done in a Perl script?

飘然心甜 2024-08-21 05:55:09

如果您不想花时间使用 GCC 符号信息,gcc-xml 可以为您提供以下信息:采用可重用 XML 格式的 C++ 源代码,包括枚举名称。

简化的例子......这个来源:

enum E {
  e1 = 1,
  e2 = 42
};

变成:

<GCC_XML>
  <!-- ... -->
  <Enumeration name="E">
    <EnumValue name="e1" init="1"/>
    <EnumValue name="e2" init="42"/>
  </Enumeration>
  <!-- ... -->
</GCC_XML>

If you don't want to invest the time to utilize GCCs symbol information, gcc-xml provides you information about C++ sources in a reusable XML format, including enumeration names.

Simplified example... this source:

enum E {
  e1 = 1,
  e2 = 42
};

becomes:

<GCC_XML>
  <!-- ... -->
  <Enumeration name="E">
    <EnumValue name="e1" init="1"/>
    <EnumValue name="e2" init="42"/>
  </Enumeration>
  <!-- ... -->
</GCC_XML>
空城之時有危險 2024-08-21 05:55:09

这可能对您有帮助:

“stabs”调试格式< /a>

This may be helpful to you:

The "stabs" debug format

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文