【问题标题】:How to hide a particular function from the debugger in C++如何在 C++ 中的调试器中隐藏特定函数
【发布时间】:2020-01-23 04:20:06
【问题描述】:

我想在 C++ 的调试器中隐藏一些函数。 C# 有 [DebuggerHidden] 标签。 C++中是否有任何等效的功能来隐藏函数?

【问题讨论】:

  • 不,C++中没有这样的功能
  • 删除 (strip) 所有调试信息?您要解决的实际问题是什么?
  • 听起来像是 XY 问题。你真正想做什么?
  • 然后创建一个 release 构建,没有任何调试信息(并启用优化)。如果没有调试信息,客户端将不会有 任何 符号。
  • 你能不能把具体的函数放到一个库里,然后编译这个库而不用调试符号?

标签: c++


【解决方案1】:

不,在 C++ 中没有 C# [DebuggerHidden] 等效甚至接近。而且 afaik 也没有针对主要编译器的任何编译器。至少不是针对特定功能。


有些远程相关(ish)是即将推出的 C++20 immediate functions(用 consteval 声明)据我所知,它根本不会出现在二进制文件中,完全是一个编译时特性。没有调试信息的事实是副作用,而不是那些目的,因此请随意使用它们。只能使用编译时参数表达式对它们进行评估这一事实使它们更不符合您的需求。

【讨论】:

    猜你喜欢
    • 2014-05-24
    • 1970-01-01
    • 2015-05-05
    • 2011-06-21
    • 1970-01-01
    • 1970-01-01
    • 2020-08-24
    • 2013-02-25
    • 2015-02-06
    相关资源
    最近更新 更多