草庐IT

Debug调试

全部标签

c++ - Visual Studio - 如何将调试信息输出到调试窗口?

OutputDebugString方法似乎相当繁琐,而且似乎仅限于字符串而不是多态。如果我想输出一些整数或其他变量类型,我该怎么办?希望像std::cout这样的函数存在! 最佳答案 我很确定您可以编写一个通过OutputDebugString输出的streambuf实现。这不完全是直截了当的,但有可能。当然可以使用这样的东西:std::stringstreamss;ss如果您的项目中启用了“UNICODE”,您可能需要使用MultiByteToWideChar将c_str()转换为宽字符串。

C++宏展开、调试

我有一堆C++代码中的MACROS,可以扩展成一些函数。我正在调试一些东西。只是想看看代码最终是什么样子的”有什么想法吗? 最佳答案 您可以查看预处理器输出以查看代码经过预处理后的样子。如果您在命令行上将-E标志传递给编译器,gcc和VisualC++都将预处理为stdout。 关于C++宏展开、调试,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2701533/

c++ - 代码块的调试宏

我正在尝试创建一个仅在调试版本时才执行代码块的宏。我设法制作了一个仅在启用调试时才执行一行的程序,但我无法弄清楚如何执行整个代码块。一行宏如下:#include//errorchecking#ifdefined(DEBUG)|defined(_DEBUG)#ifndefDBG_ONLY#defineDBG_ONLY(x)(x)#endif#else#ifndefDBG_ONLY#defineDBG_ONLY(x)#endif#endifintmain(){DBG_ONLY(std::cout 最佳答案 将宏包装在do-while循环

c++ - Boost.Python 1.54(调试版本)对 Windows 上 Python27.lib 的令人费解的依赖性

我一定是犯了一些明显的错误,但经过几个小时的斗争,我无法取得进一步的进展:在升级到Boost1.54、CMake2.8.12和Python2.7.5(这三个都来自略微较早的次要版本)之后,我的project的Python绑定(bind)不再在调试配置中链接(它们在发布中链接良好)。我正在使用VS2012构建。更新前一切正常。我以标准方式构建了Boost:bootstrap.bat后跟b2address-model=64toolset=msvc-11.0。我的系统安装了Python2.7,它由b2获取:notice:[python-cfg]Configuringpython...noti

c++ - Xcode STL C++调试编译报错

我有一些文件编写代码按预期工作,但在Debug模式下打印错误,在Release模式下没有输出错误。代码:#include#include#include#includeusingnamespacestd;intmain(intargc,char*constargv[]){stringcppfilename;std::cout调试输出:Pleaseenterthefilenametocreate:Running…myfileFileIO(5403)malloc:***errorforobject0xb3e8:pointerbeingfreedwasnotallocated***setab

c++ - 调试和发布版本之间可能出现的差异?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。今天在接受采访时,我被要求列出调试版本和发布版本之间可能的四个差异。我想他们的意思是行为上的差异,而不是调试信息之类的差异。我只能说出两个:由于某些函数未内联,因此调试构建通常要慢得多。由于速度差异,在具有竞争条件的多线程程序中,这些竞争条件可能仅在两个构建之一中变得明显。我还能说出哪些其他差异?

c++ - 调试 C++ 代码 : Catch first NaN appearance

这个问题在这里已经有了答案:StoppingthedebuggerwhenaNaNfloatingpointnumberisproduced(1个回答)关闭6年前。是否有一种简单的方法可以在调试器中检查C++代码是否首次出现NaN值?

一个Vivado仿真问题的debug

我最近在看Synopsys的MPHY仿真代码,想以此为参考写个能实现PWM-G1功能的MPHY,并应用于ProFPGA原型验证平台。我从中抽取了一部分代码,用Vivado自带的仿真器进行仿真,然后就遇到了一个莫名其妙的问题,谨以此文作为debug记录。一、原始问题涉及到的相关代码如下:第一张图是我从MPHY仿真代码里copy的一个task,用于对MPHY进行参数配置;第二张图是我要配置的MPHY参数;第三张图是选取的一个出问题的参数模块例化;第四张图是这个参数模块的实现,非常简单。就是这么简单的几行代码,却意外出问题了,仿真波形如下图所示,可以看到参数没有配置成功。我真的是百思不得其解,就用了

c++ - 在 C++ 中调试 GUI 应用程序

背景:我目前正在调试一个应用程序,该应用程序是用C++自定义构建的GUI框架编写的。我已经设法确定了大多数错误,但我遇到最多麻烦的错误往往有一个共同的主题。所有这些似乎都与屏幕刷新、重绘或更新以匹配提供的数据有关。调试起来很痛苦,因为我不能在每次刷新时都中断,而且大部分这些东西都是时间敏感的,所以断点偶尔会“修复”错误。问:有没有人对调试基于Windows的GUI有任何提示,尤其是关于刷新单个组件的提示? 最佳答案 我同意双显示器甚至远程调试以减少对消息的干扰。我还强烈推荐Spy实用程序。这些可让您查看系统中正在发送的消息。一个这样

c++ - 如何编写仅在 DEBUG 为#defined 时才编译的 'if' 条件?

我需要一些帮助来为“if-condition”编写宏,该宏仅在#define指令定义了DEBUG标志时才编译。这是一个说明我想要的例子。第一段代码显示了使用#ifdef编写if条件的常用方法。#ifdefDEBUGif(rv==false){stringerrorStr="errorinreturnvalue";cout我想像下面这样写:DEBUG_IF(rv==false){samecodeasabove}这看起来很简单,但我在定义可以执行此操作的宏时遇到了问题。如果有人以前遇到过这种情况,请提供帮助。谢谢。 最佳答案 尝试:#i