在Visual Studio中更好地调试

Better debugging in Visual Studio?

本文关键字:调试 更好 Visual Studio      更新时间:2023-10-16

我有一个具有数千行代码行的程序,该程序在从Visual Studio中运行时会执行正常。但是,当我从Windows Explorer运行相同的调试可执行文件时,它给我一个"调试断言失败"错误,说Vector subscript超出了范围。线号在std::vector中,但我知道那不是真正的问题。

这不是我可以设置停止点来查看呼叫堆栈,因为我不知道在哪里停止它。另外,Visual Studio无论如何都不会吸引它。我有15,000行的代码,上面有数十个向量。我必须有一种方法可以配置Visual Studio或编译器从GUI运行时更多地询问程序以捕获该程序。我处于调试知识的极限,教我,明智!

我跑了依赖性沃克。有一些错误,但我认为这没有相关性。以防万一,这就是出现的:http://screencast.com/t/q3moprvh

最佳选择可能是在调试断言失败时分解您的代码。在Windows中,这称为" Just-time(JIT)调试"。要将Visual Studio用于此目的,您必须正确配置它。如果此MSDN文档对您没有帮助,请尝试根据本指南直接编辑Windows注册表。Visual Studio的注册表值类似于

"C:windowssystem32vsjitdebugger.exe" -p %ld -e %ld

查看非专业化变量的代码后,我建议您添加一些打印语句,以查看其崩溃之前的位置。

多次,这些错误归因于非初始化的变量。