Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
调试时自动禁用Visual Studio断点 我在VS 2012中运行C++代码。 我设置了一个简单的断点 int main(int argc, char **argv) { time_t start_time; time(&start_time); DUALISO_TIME dualiso_time; IO_TIME io_time = {0.0, 0.0}; IO_INFO io_info; IJK::ERROR error; cout <<"DEBUG "<< endl; // I have set a breakpoint. int main(int argc,char**argv) { 时间不是开始时间; 时间(&开始时间); 双ISO_时间双ISO_时间; IO_TIME IO_TIME={0.0,0.0}; IO_信息IO_信息; IJK::错误; cout_C++_Debugging_Visual Studio 2012 - Fatal编程技术网

调试时自动禁用Visual Studio断点 我在VS 2012中运行C++代码。 我设置了一个简单的断点 int main(int argc, char **argv) { time_t start_time; time(&start_time); DUALISO_TIME dualiso_time; IO_TIME io_time = {0.0, 0.0}; IO_INFO io_info; IJK::ERROR error; cout <<"DEBUG "<< endl; // I have set a breakpoint. int main(int argc,char**argv) { 时间不是开始时间; 时间(&开始时间); 双ISO_时间双ISO_时间; IO_TIME IO_TIME={0.0,0.0}; IO_信息IO_信息; IJK::错误; cout

调试时自动禁用Visual Studio断点 我在VS 2012中运行C++代码。 我设置了一个简单的断点 int main(int argc, char **argv) { time_t start_time; time(&start_time); DUALISO_TIME dualiso_time; IO_TIME io_time = {0.0, 0.0}; IO_INFO io_info; IJK::ERROR error; cout <<"DEBUG "<< endl; // I have set a breakpoint. int main(int argc,char**argv) { 时间不是开始时间; 时间(&开始时间); 双ISO_时间双ISO_时间; IO_TIME IO_TIME={0.0,0.0}; IO_信息IO_信息; IJK::错误; cout,c++,debugging,visual-studio-2012,C++,Debugging,Visual Studio 2012,无法命中断点的某些原因: 可执行文件和代码不匹配。例如,您更改了代码,但在编译时该可执行文件正在使用,并且没有实际更新 可执行文件正在管理模式下运行,但Visual Studio正在作为普通用户运行 断点可以被禁用,但仍然存在。转到“断点”窗口,确保断点已启用 当断点为白色时,表示Visual Studio无法将源文件中的位置与正在调试的应用程序匹配。通常情况下,出现这种情况的原因如下 源和可执行文件已过期。完全重建通常会解决此问题 找不到可执行文件的PDB文件。请转到调试->窗口->模块,

无法命中断点的某些原因:

  • 可执行文件和代码不匹配。例如,您更改了代码,但在编译时该可执行文件正在使用,并且没有实际更新
  • 可执行文件正在管理模式下运行,但Visual Studio正在作为普通用户运行
  • 断点可以被禁用,但仍然存在。转到“断点”窗口,确保断点已启用

当断点为白色时,表示Visual Studio无法将源文件中的位置与正在调试的应用程序匹配。通常情况下,出现这种情况的原因如下

  • 源和可执行文件已过期。完全重建通常会解决此问题
  • 找不到可执行文件的PDB文件。请转到调试->窗口->模块,确保正确加载PDB

    • 以下是一些尚未提及的原因:

      • 宏可以在预处理阶段删除代码
      • 优化。某些代码可以优化。不使用优化进行调试

      一个额外的原因,如果你至少用C语言工作(不确定是否完全适用于C++项目):

      当前生成配置未配置为生成PDB文件

      转到您的项目,右键单击>
      属性
      生成
      高级…
      调试信息


      将其设置为
      full

      这可能是因为编译器优化。如果使用
      gcc-O
      编译,则程序将被优化,并且在附加程序后Visual Studio断点将被禁用。若要解决此问题,可以在-O之后使用附加的0禁用编译器优化,如下所示

      gcc -O0
      

      您还可以使用
      gcc-Og
      (可从gcc 4.8获得)。这应该允许优化和调试。

      这通常意味着永远不会命中断点。请仔细检查代码是否先编译。另外,您是否在调试中编译并生成了符号文件(.PDB)