草庐IT

debug-print

全部标签

c++ - pretty-print 类型和类模板及其所有模板参数

自从typeid(T).name()不会返回人类可以理解的类型名称,如果我们想将模板参数的名称打印到某个类模板,它对我们没有多大帮助,尤其是在我们调试时。我们经常想在调试时写这个:print(cout);//dumpthenamesofalltypestostdout!所以我正在编写pretty-print实用程序,它给了我类模板的名称。嗯,通过一些示例用法更容易理解:print(cout);//printsintprint(cout);//printsint,double,charprint(cout);//printsstd::basic_stringprint(cout);//p

c++ - 简单的 OpenCV 命令在 Debug 模式下工作,但在 Release 模式下不工作

我正在尝试使用CascadeClassifier::load()加载训练xml文件,它在Debug模式下运行良好,但在Release模式下出现运行时错误。我得到的错误是:Unhandledexceptionat0x000007feefbf4938inTesting.exe:0xC0000005:Accessviolationwritinglocation0x0000000000000027.我的代码如下:CascadeClassifierc;if(!c.load("C:/data/haarcascade_frontalface_alt.xml")){exit(1);}代码在加载行崩溃。

c++ - 为什么 C/C++ 程序在 Debug模式下经常会关闭优化?

在大多数C或C++环境中,都有“调试”模式和“发布”模式编译。查看两者之间的区别,您会发现Debug模式添加了调试符号(在许多编译器上通常是-g选项),但它也禁用了大多数优化。在“发布”模式下,您通常会开启各种优化。为什么会有差异? 最佳答案 如果不进行任何优化,通过代码的流程是线性的。如果您在第5行并且单步执行,则进入第6行。启用优化后,您可以获得指令重新排序、循环展开和各种优化。例如:voidfoo(){1:inti;2:for(i=0;i在此示例中,无需优化,您可以单步执行代码并点击第1、2、3、2、3、2、4行启用优化后,您

c++ - 在发布/ Debug模式下,Haar 级联的不同结果

我正在使用从MITcarsdataset训练的Haar级联分类器在OpenCV中检测车辆(使用OpenCV提供的实用程序进行训练)。这在Debug模式下编译时工作得相当好,但在Release模式下编译时,级联根本不会进行任何检测。在下面的测试图像上运行以下代码会在Debug模式下进行检测,但在Release模式下不会进行检测(此行为在我的数据序列中的所有图像中继续存在)。您能否说明为什么会发生这种情况,更重要的是,在Release模式下运行时我可以做些什么来获得检测?CascadeFile代码cv::MattestImage=cv::imread("testImage.png",0);

c++ - GDB 问题 : Pretty-Printing a 2D Array?

我有一个二维数组矩阵[10][10],我想在调试时检查它。我知道我可以在GDB中使用p*matrix@10但它在一行中输出,难以阅读。有没有办法让这个输出以任何方式格式化,比如说矩阵? 最佳答案 GDB的一个重要特性是在被调试代码中执行函数的能力,因此您可以实现任何您喜欢的打印,例如:#includeintmatrix[10][10];voidprint(intmatrix[10][10]){inti,j;for(i=0;i使用-g开关编译此代码并在GDB下运行后,您可以使用打印功能如下:(gdb)callprint(matrix)

Javadoc 文档就地呈现。可以在 IDE 中看到 pretty-print 文档吗?

是否有Eclipse(或VisualStudio)的插件可以在适当的位置呈现javadoc(或doxygen),即代码中有pretty-print而不是将javadoc源显示为注释?默认情况下可以只折叠方法体。切换可能很有用:完整源代码、源代码和渲染的javadoc、纯渲染的javadoc。所述插件可以生成如下所示的内容: 最佳答案 是的,有。在Eclipse中,只需打开或选择javadocView并转到您自己的方法 关于Javadoc文档就地呈现。可以在IDE中看到pretty-pri

c++ - Visual Studio native 单元测试 : Debug/console output?

谁能告诉我在VisualStudio2012的native(C++)测试项目中运行单元测试时如何启用或获取调试或控制台文本输出?答案不应包含短语“使用Google测试”。 最佳答案 在单元测试代码中,可以使用Logger::WriteMessage("Mymessagestring");消息将出现在“输出”窗口中。 关于c++-VisualStudionative单元测试:Debug/consoleoutput?,我们在StackOverflow上找到一个类似的问题:

C++: LINK : debug\XXXXX.exe not found 或不是由最后一个增量链接构建的;执行完整链接

使用VisualStudio2008SP1,这一行:LINK:debug\XXXXX.exenotfoundornotbuiltbythelastincrementallink;performingfulllink每次编译项目时都会出现,无论我做了多么小的更改。这可能是什么原因? 最佳答案 老问题,但以防万一它仍然是一个问题(而且它是..)。增量链接与生成list文件不兼容(项目选择>链接器>list文件>生成list:是)。实际上,生成list会修改exe/dll,因此链接器必须进行完全链接。有一些解决方法,有关更多详细信息:ht

c++ - C/C++ : Portable way to detect debug/release?

是否有标准化的(例如由所有主要编译器实现的)#define来区分调试和发布版本? 最佳答案 如果相信#ifdefNDEBUG//nondebug#else//debugcode#endif是最便携的。但是没有编译器知道你是在编译调试还是发布,所以这不是自动的。但是这个是assert.h在c-runtime中使用的,所以它很常见。VisualStudio会设置它,我相信大多数其他IDE也会设置它。 关于c++-C/C++:Portablewaytodetectdebug/release?,

c++ - 在 Visual C++ 2008 的 Debug模式下找不到 MSVCR90D.dll

我在使用VisualC++2008时遇到问题。我已经安装了opencv,并且我已经创建了一个新程序,并且我构建它时没有出现任何错误。但是,它提示调试时找不到MSVCR90D.dll。在Release模式下完全没有问题。我确实在Winsxs文件夹之一中有MSVCR90D.dll。有谁知道解决这个问题?这是一个已知的错误?杰拉德 最佳答案 本forumpost中描述了几种潜在的解决方案。看看这些是否有帮助。从那里得到一个提示:Goto%SystemDrive%\Windows\WinSxSandlookforthedirectoryx8