C++项目FEBioStudio(ui 应用程序)中std::cout输出不显示,如何调试?

新手上路,请多包涵

问题描述:
在对大型开源代码 FEBioStudio 这个项目进行修改代码时,我点击了自己添加的一个功能后发生错误,发生的这个难以定位的错误造成了assert操控的强制退出。
因为原代码使用了多个assert,很难找到是哪个assert附近出现了问题,而且assert没有输出错误描述。

使用的编程语言与ide:
c++,并且在VS 2022上修改代码,在CLion上编译和运行(CLion 相比cmake+VS 起的作用没有区别)。

目的:我想定位发生的错误,并且解决。

采用的方法:
因为不会c++标准库的日志log,于是对涉及的函数们添加了多条std::cout语句,用以输出自定义信息。但是,在CLion编译时,窗口不显示我写的输出语句,分别尝试了run 和debug ,但是对应的窗口都没有。

可能的原因:
这个项目成功编译后产生的是ui界面,我猜测是因为这个,所以cout没有作用。



问题:

  1. 请问怎么实现定位这个错误、并且解决呢?
  2. 还是想用std::cout来定位错误,怎么干才能让我能够看到std::cout输出的信息呢?
  3. 用c++标准库的哪个日志性能最好呢?
    我查找网络+资料,目前没有找到c++标准库自带的日志,只有别人编写的。
    所以我是用的google log,但是VS 报错274个错误。明明我已经把include和lib放在了工程的正确位置,vs中也添加了include和库路径,但是googlr log的文件还是报错,vs也找不到他的函数。

我真的不知道应该怎么办了,尝试了能够想尽的一切办法了。求助技术大牛!!

阅读 2.6k
2 个回答
新手上路,请多包涵

1、GUI程序可以使用OutputDebugString来查看cout内容;
2、Visual Studio不支持std:cout作为非控制台应用程序的调试工具;
3、直接使用ofstream保存吧。

sdplog还行,不过我觉得你实在看不到输出日志,何不将日志输出到文件中?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏