问题描述:
在对大型开源代码 FEBioStudio 这个项目进行修改代码时,我点击了自己添加的一个功能后发生错误,发生的这个难以定位的错误造成了assert操控的强制退出。
因为原代码使用了多个assert,很难找到是哪个assert附近出现了问题,而且assert没有输出错误描述。
使用的编程语言与ide:
c++,并且在VS 2022上修改代码,在CLion上编译和运行(CLion 相比cmake+VS 起的作用没有区别)。
目的:我想定位发生的错误,并且解决。
采用的方法:
因为不会c++标准库的日志log,于是对涉及的函数们添加了多条std::cout语句,用以输出自定义信息。但是,在CLion编译时,窗口不显示我写的输出语句,分别尝试了run 和debug ,但是对应的窗口都没有。
可能的原因:
这个项目成功编译后产生的是ui界面,我猜测是因为这个,所以cout没有作用。
问题:
- 请问怎么实现定位这个错误、并且解决呢?
- 还是想用std::cout来定位错误,怎么干才能让我能够看到std::cout输出的信息呢?
- 用c++标准库的哪个日志性能最好呢?
我查找网络+资料,目前没有找到c++标准库自带的日志,只有别人编写的。
所以我是用的google log,但是VS 报错274个错误。明明我已经把include和lib放在了工程的正确位置,vs中也添加了include和库路径,但是googlr log的文件还是报错,vs也找不到他的函数。
我真的不知道应该怎么办了,尝试了能够想尽的一切办法了。求助技术大牛!!
1、GUI程序可以使用OutputDebugString来查看cout内容;
2、Visual Studio不支持std:cout作为非控制台应用程序的调试工具;
3、直接使用ofstream保存吧。