通过这个项目,我遇到了一些我根本无法崩溃的事情。这些项目正在编译,似乎工作得很完美。
调试执行行时会跳过整个范围。
在第3行进入范围后,会发生以下序列 - 5,8,10, 8 , 10 ,9, 10 ,11,13
这可能不正确,发生了什么?
调试代码段
1 void
2 cLogger::Log(std::string text)
3 {
4
5 if (LogWrite)
6 {
7
8 LogMessage msg;
9 msg.type = Logger::None;
10 msg.message = text;
11 LogWrite(msg);
12
13 }
14
15 }
LogWrite是:typedef std :: function< void(LogMessage&)> OnLogWrite;
LogMessage是一个带有std :: string和枚举器的简单结构;
cLogger是一个单例的下降,它是一个Ogre :: Singleton,但是(现在)放在我自己的lib(realm.shared.lib)中。
输出日志:
1>------Rebuild All started : Project : realm.shared, Configuration : Debug Win32------
1> Singleton.cpp
1> realm.shared.vcxproj->D:\Development\Projects\Realm\bin\Debug\realm.shared.lib
2>------Rebuild All started : Project : Realm.Server.Application, Configuration : Release Win32------
2> cApplication.cpp
2> cCommand.cpp
2> cConsole.cpp
2> main.cpp
2> cLogger.cpp
2> cServer.cpp
2> Generating code
2> Finished generating code
2> Realm.Server.Application.vcxproj->D:\Development\Projects\Realm\bin\Release\Realm.Server.Application.exe
== == == == == Rebuild All : 2 succeeded, 0 failed, 0 skipped == == == == ==
(不确定标签VS2013是否在此处)
(如果需要更多信息,或者更少,请告诉:真的不知道这里发生了什么)
答案 0 :(得分:5)
这是因为您在 Release 配置中构建了项目Realm.Server.Application
,因此cLogger.cpp
,这可能会重新排序优化说明。
请将其更改为调试配置。