【问题标题】:Can I exclude specific data (structs/vectors/etc) in memory from the debugger process in visual studio in c++?我可以从 c++ 中 Visual Studio 的调试器进程中排除内存中的特定数据(结构/向量/等)吗?
【发布时间】:2021-09-08 08:49:41
【问题描述】:

我有大量的文件被加载到各种结构中,并用于在 Windows 中的 c++ 控制台应用程序中进行分析。 在发布模式下,这些数据管理得很好,但是当我启用调试时,它需要几分钟来加载并消耗许多 GB 的内存,这实际上削弱了调试版本的任何有用性。 我希望能够调试我的正常代码,但允许以正常的“发布”模式加载这些数据集,因为不需要调试对这些数据集的访问。 理想情况下,我希望能够在命名变量级别定义它,因为我仍然希望代码中的新变量具有完整的调试功能。

此帖:lldb-debugging-ignore-variables-of-specific-classes-to-speed-up-debugging 建议隐藏本地选项卡可能会起作用(但它没有)

有什么方法可以实现吗?

【问题讨论】:

  • 嗨大卫,有任何更新吗?
  • 我在等着看其他人是否会发表评论。我没有更新 - 所有代码都是我的,并且启用我的代码已经勾选(这必须是默认设置)。我仍在考虑将代码分成单独的模块以试用您的最终建议的选项-实际上我假设我应该能够加载某些模块的发布版本和其他模块的调试版本,但是我需要进行相当大的更改旧代码的一些组织结构可以做到这一点,所以我想我会在未来的模块中使用这种策略。]

标签: debugging visual-studio-2019


【解决方案1】:

尝试在工具>选项>调试>常规>启用我的代码中启用“仅启用我的代码”,或在C++项目的属性页>配置属性>C/C++>常规>支持我的代码调试>修改它是的。(更多详情here

Debug 将为您的项目加载符号文件和模块以进行调试,这与 Release 不同,因此如果您有很多文件/项目...使用许多 GB 内存是可能的。

此外,请检查工具 > 选项 > 调试 > 符号 > Load all modules, unless excluded/Load only specified modules 是否工作。(Configure symbol locations and loading options)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-25
    • 2010-09-10
    • 2011-07-26
    相关资源
    最近更新 更多