gpt4 book ai didi

visual-studio-2010 - 如何使用免调试停止 visual studio

转载 作者:行者123 更新时间:2023-12-02 02:21:45 27 4
gpt4 key购买 nike

我的应用程序需要释放一个非常大的哈希表,它在 Debug模式下非常慢,慢到我无法实际使用它......但在 Release模式下我根本没有调试符号......我需要调试可执行文件并了解我应该能够让它与 crt 库的发布版本链接。我通过将“代码生成”选项更改为使用“多线程 dll”而不是“多线程调试 dll”来完成此操作,但是当我在我的哈希表自由例程中放置一个断点并按照它进行实际的自由调用时,它是在调试 dll 中使用函数。

还有什么我可以尝试的吗?使用发布配置并尝试让它为我实际需要调试的东西生成符号是更好的选择吗?

(对比 2010 年)

最佳答案

尽管使用发布 CRT 并启用了所有优化,您仍然可以使用调试符号。事实上,这是 Visual C++ 在发布配置中的默认设置(请参阅项目属性/配置属性/C/C++/常规/调试信息格式;以及链接器/调试/生成调试信息)。请注意,优化后的代码可能更难调试 - 指令顺序可能会改变,有些部分可能会被完全优化掉,从而在单步执行代码时导致一些意外行为。

顺便说一句,要关闭调试 CRT,仅仅将“多线程调试 DLL (/MDd)”更改为“多线程 DLL (/MD)”是不够的,还需要删除 _DEBUG 来自预处理器定义。

也就是说,您遇到的缓慢可能根本不是您的程序的结果 - 这可能是调试器的产物(即为了在调试器 UI 中显示它们而读取大型数据结构的速度缓慢)。请尝试运行您的程序(调试或发布配置 - 这并不重要)外部调试器,看看这是否有所作为。

如果是这样,并且您不能仅仅为了调试而缩小哈希表,您将不得不求助于“printf 调试”(即手动插入诊断)或可能尝试远程调试。

关于visual-studio-2010 - 如何使用免调试停止 visual studio,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7794730/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com