草庐IT

DEBUGGING

全部标签

c++ - 处理 <file.exe> 时 VS 2012 调试意外的符号读取器错误

我在VisualStudio2012中调试程序时遇到问题-当我尝试通过插入一些断点来调试代码时,它们似乎不起作用-当我将鼠标悬停在它们上面时会弹出一条消息Thebreakpointwillnotcurrentlybehit.Unexpectedsymbolreadererrorwhileprocessing我尝试在互联网上搜索类似的问题,但没有找到任何解决方案我将不胜感激任何帮助,谢谢! 最佳答案 [VS2012]好的,我得到了解决这个问题的答案,所以我会把它贴在这里,这样人们以后就不会遇到这样的问题了。解决办法是改变Debug->

c++ - "Clang with Microsoft CodeGen"和 "LLVM-vs2014"有什么区别?

在VisualStudio2015或更高版本下,我们可以通过两种方式使用clang:SelectClangwithMicrosoftCodeGenasthePlatformToolset;InstallLLVM-3.8-win64.exe,andselectLLVM-vs2014asthePlatformToolset;我知道这两种方式都使用相同的编译器:clang3.8。但是,我不知道它们之间有什么区别。我的经验表明ClangwithMicrosoftCodeGen比LLVM-vs2014更易于调试。换句话说:IcandebugaprogrambuiltbyClangwithMicr

c++ - 在代码块中调试时如何查看数组的内容?

这可能是一个愚蠢的问题,我正在发布这个后谷歌搜索,问题是,Howdoiviewthecontentsofanarraywhiledebugging,ProvidedtheBreakpointisinfunctionnotMain?我使用的是code::blocks13.12版本,我在我的示例简单C++代码中设置了一个断点,我想观察数组的内容如何随代码变化,但我看到的只是监window口下数组的地址,然而,它正确显示其他整数变量的值,a是一个数组我忘了说我在一个函数中而不是在main中跟踪数组,我知道main将数组的地址传递给被调用的函数(我的意思是引用)我是代码块的新手,我是否缺少某些

C++:是否需要使用相同版本的 GCC 和 GDB 进行调试

我正在使用minGW在Windows上使用C++进行开发。我目前有调试问题。我必须使用旧版本的GCC(4.4)。所以我只是想知道是否可以使用这个旧的GCC进行编译并使用新的GDB进行调试?这两者之间有什么联系?(任何有关调试器崩溃的指示也将不胜感激!我只知道我需要确保使用调试DLL) 最佳答案 GDB和GCC是独立的程序——独立的源代码库(有一些共享代码,虽然不多),通常是独立的维护者,不同的发布时间表和不同的版本号。他们确实有一些共同的文化,当然也有一些协调。GDB在向后兼容性方面相当不错。它甚至为旧版本的GCC和有时其他编译器发

c++ - 使用模板调试 C++ 代码,使用 gdb 调试 STL

这里的gdb用户如何看待其使用模板和STL调试代码的能力?您是否使用任何技巧使调试更简单?也许一些Python脚本?或者您是否满意目前gdb中的状态(版本6.x,还没有尝试过7.x)?谢谢。 最佳答案 这可能有帮助:GDBSTLSupportTools 关于c++-使用模板调试C++代码,使用gdb调试STL,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/1610906/

c++ - 如何调试意外终止的 win32 进程?

我有一个用C++编写的Windows应用程序,它偶尔会消失。我使用蒸发这个词是因为没有留下任何东西:没有来自Windows的“我们很抱歉”消息,没有来自Dr.Watson设施的故障转储......有一次崩溃发生在调试器下,调试器没有中断——它显示应用程序仍在运行。当我手动暂停执行时,我发现我的进程不再有任何线程。我如何捕捉此进程终止的原因? 最佳答案 您可以尝试使用windowsdebuggingtoolpackage中的adplus实用程序.adplus-crash-pyourprocessid自动转储工具为异常提供小型转储,并在

c++ - 使用 Visual Studio 在发布二进制文件中生成符号

更新:我在JohnRobbins上发表了评论关于的博客。他在这里写了一条回复:http://www.wintellect.com/CS/blogs/jrobbins/archive/2009/06/19/do-pdb-files-affect-performance.aspx我正在从事的项目没有为其发布的二进制文件构建符号,我想改变这一点。一些信息:主要是C++代码库,一些C#。在VS2k5下编译,将迁移到VS2k8TeamSystem。时间紧迫的软件。必须启用优化。已向客户提供源代码,因此可以使用完整的符号。生成我需要的内容的最佳命令行开关是什么?如果有的话,我将承受哪些性能损失?此

c++ - 为什么未分配的内存标记为 0xCC?

这个问题在这里已经有了答案:Whenandwhywillacompilerinitialisememoryto0xCD,0xDD,etc.onmalloc/free/new/delete?(9个回答)关闭1年前。为什么我没有初始化的内存设置为0xCC?将内存设置为0xCC会降低性能,所以用这个字节填充内存一定是有原因的。

c++ - 在正确的时间点将调试器附加到 VC++ 进程的最佳方法是什么?

调试时,有时您需要附加一个已经在运行的进程,而不是仅仅在调试器中启动应用程序。我自己通常会调用Sleep()或MessageBox,这样更容易附加调试器。我担心其中一些最终可能会提交给源代码管理。避免这种情况的最佳方法是什么,同时仍然延迟足够的时间以便您可以将调试器附加到正在运行的进程?用#ifdef_DEBUG保护sleep或消息框是一种方法,但我想知道是否有更好的方法。对于Sleep,您还有可能无法及时连接的问题。使用MessageBox时,您可能会遇到远程调试或调试没有可见GUI的进程的问题(例如在Vista上作为服务运行) 最佳答案

c++ - 图片处理代码调试

C++中的图像处理/计算机视觉/计算机图形应用程序可以进行哪些调试?您使用什么来跟踪方法的错误/部分结果?到目前为止,我发现的只是一种在线调试工具和一种离线调试工具:bmd:附加到正在运行的进程,使您能够以图像形式查看内存块imdebug:启用printf风格的调试两者都非常过时,并不是我所期望的那样。对于离线调试似乎有用的是某种风格的图像记录,比方说一组命令,使您能够将图像与文本一起写入(可能以HTML的形式,可能是分层的),很容易在编译和运行时关闭,并且它可以得到的最少干扰。输出可能如下所示(我们简单工具的输出):http://tsh.plankton.tk/htmldebug/d