我按照此视频中的说明逐行运行代码:
http://www.youtube.com/watch?v=6CGH9Z19dS8
然而,在我按下F8后,它只是在没有进入断点的情况下运行(我看不到黄色三角形)。另外,我也试过“附加到过程”,它也一样。
我错过了什么吗?(顺便说一句,我的项目中有多个文件,但我想这不会是问题,对吧?因为我可以在VS工作室轻松完成这个。也许,我不熟悉码块)
感谢您的帮助!
如果您感兴趣,这是调试器日志:
Building to ensure sources are up-to-date
Selecting target:
Release
Adding source dir: C:\Users\liuca_000\Documents\Lattice_Boltzmann_code\lattice_boltzmann\
Adding source dir: C:\Users\liuca_000\Documents\Lattice_Boltzmann_code\lattice_boltzmann\
Adding file: C:\Users\liuca_000\Documents\Lattice_Boltzmann_code\lattice_boltzmann\bin\Release\lattice_boltzmann.exe
Changing directory to: C:/Users/liuca_000/Documents/Lattice_Boltzmann_code/lattice_boltzmann/.
Set variable: PATH=.;C:\Program Files (x86)\CodeBlocks\MinGW\bin;C:\Program Files (x86)\CodeBlocks\MinGW;C:\Python27\Lib\site-packages\PyQt4;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Windows\System32;C:\Windows;C:\Windows\System32\wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Python27;C:\Python27\DLLs;C:\Python27\Scripts;C:\Python27\Lib\site-packages\vtk;C:\Python27\gnuplot\binary;C:\Python27\Lib\site-packages\osgeo;C:\Program Files (x86)\pythonxy\SciTE-3.3.2-3;C:\Program Files (x86)\pythonxy\console;C:\MinGW32-xy\bin;C:\Program Files (x86)\pythonxy\swig;C:\Program Files (x86)\pythonxy\gettext\bin;C:\Program Files\MATLAB\R2012b\runtime\win64;C:\Program Files\MATLAB\R2012b\bin;C:\Program Files\TortoiseSVN\bin;C:\Program Files\MiKTeX 2.9\miktex\bin\x64;C:\Program Files (x86)\Windows Live\Shared;C:\Users\liuca_000\AppData\Roaming\MiKTeX\2.9\miktex\bin\x64;.;\
Starting debugger: C:\Program Files (x86)\CodeBlocks\MINGW\bin\gdb.exe -nx -fullname -quiet -args C:/Users/liuca_000/Documents/Lattice_Boltzmann_code/lattice_boltzmann/bin/Release/lattice_boltzmann.exe
done
Registered new type: wxString
Registered new type: STL String
Registered new type: STL Vector
Setting breakpoints
Reading symbols from C:\Users\liuca_000\Documents\Lattice_Boltzmann_code\lattice_boltzmann\bin\Release\lattice_boltzmann.exe...(no debugging symbols found)...done.
Debugger name and version: GNU gdb (GDB) 7.5
Child process PID: 16672
[Inferior 1 (process 16672) exited normally]
Debugger finished with status 0
答案 0 :(得分:4)
即使您已经标记了-g
编译器选项,问题也可能是项目文件路径中的空格。移动到路径中没有空格的地方解决了我的问题。
见:http://wiki.codeblocks.org/index.php?title=Debugging_with_Code::Blocks#Path_with_spaces
答案 1 :(得分:3)
我认为你的日志的这一部分说明了原因:
(未找到调试符号)
构建代码的调试版本 - 不包括优化,包含或构建调试符号,然后重试。
答案 2 :(得分:1)
今天花了很长时间努力解决这个问题:
没有工作,直到,我想我一直在做一个不熟悉IDE的新手错误并进行调试,所以它停在断点,你必须用红色箭头而不是绿色箭头运行。所以任何像我这样愚蠢的人都希望这会有所帮助!的xD
答案 3 :(得分:0)
您似乎找到了一个错误的解决方案并且很可能 产生不良后果。 (如果我弄错的话,道歉)
您无法设置断点,因为您的构建不包含调试 信息(如你所知);并且构建不包含调试信息 因为您试图调试Release版本而不是Debug版本。
您可以在构建日志中看到这一点:
添加文件:C:\ Users \ liuca_000 \ Documents \ Lattice_Boltzmann_code \ lattice_boltzmann \ bin \ Release \ lattice_boltzmann.exe
还有:
从C:\ Users \ liuca_000 \ Documents \ Lattice_Boltzmann_code \ lattice_boltzmann \ bin \ Release \ lattice_boltzmann.exe读取符号...(未找到调试符号)...完成。
Release版本生成的可执行文件将是<project_dir>\bin\Release
(原样)和可执行文件
来自Debug构建版本将在<project_dir>\bin\Debug
看来你已经解决了#34;转到构建选项 - &gt;的问题编译器标记并勾选 复选框生成调试符号。
但是如果你回到那里看看窗口左边的树形控件,我希望你 会看到:
选择发布。这意味着您现在已经配置了发布版本 包含调试信息。你不想要那个,因为: -
虽然您现在可以在可执行文件中获得调试符号,并且调试器将能够使用它们,但默认情况下仍然会为Release版本配置高优化(因为它应该是)并且您很可能会找到它调试器的行为有时令人费解,因为优化的目标代码并不总是与源代码完全匹配。
调试信息会大大夸大您的版本可执行文件的大小。
您应该做的只是确保您尝试调试的构建是 一个Debug构建。要做到这一点:
然后重建项目(即清理和构建),您将能够调试它 正常。 Code :: Blocks Debug构建的默认选项非常好。
不要忘记返回并从发布配置中移除-g
选项。