草庐IT

DEBUGGING

全部标签

c++ - 为什么代码不会在代码块的断点处中断

我按照此视频中的说明逐行运行代码:http://www.youtube.com/watch?v=6CGH9Z19dS8但是,我按F8后,它只是跑了,没有走到断点处(我看不到黄色三角形)。另外,我也尝试了“attachtoprocess”,也是一样。我错过了什么吗?(​​顺便说一句,我的项目中有多个文件,但我想这不是问题,对吧?因为我可以在VSstudio中轻松完成此操作。也许,我不太熟悉代码块)感谢您的帮助!如果你有兴趣,这是调试器日志:Buildingtoensuresourcesareup-to-dateSelectingtarget:ReleaseAddingsourcedir:

c++ - gdb,多个位置的断点

我在其中一个.h文件中设置了一个断点,该文件实现了一个小方法,(gdb)breakSmallVector.h:141这是我从gdb得到的:Breakpoint5at0x416312:SmallVector.h:141.(38locations)为什么断点设置在38个位置而不是一个位置?我对调试和C++都不是新手,但不幸的是,我从来没有像现在(编译器)那样处理过任何复杂的东西。所以我以前从未遇到过这样的事情。感谢任何帮助。 最佳答案 有几种方法可以实现这一点。如您所见,一种主要方式是内联函数。一些编译器(如gcc)将发出有关它已完成的

c++ - 为什么迭代器在 VS2010 中导致调试非常缓慢,即使 _HAS_ITERATOR_DEBUGGING、_SECURE_SCL、_SECURE_SCL_THROWS 设置为 0

我一直试图找出为什么在Debug模式下调试我们的程序需要这么长时间。在使用xperf查看堆栈的样子后,很明显我们在迭代器和STL容器上花费了大量时间。我在谷歌上搜索了一会儿,找到了选项_HAS_ITERATOR_DEBUGGING=0_SECURE_SCL=0_SECURE_SCL_THROWS=0我用#define在代码中设置所有这些#define_HAS_ITERATOR_DEBUGGING0#define_SECURE_SCL0#define_SECURE_SCL_THROWS0但这似乎没有用,所以我尝试使用visualstudio项目中的预处理器定义,但似乎仍然没有帮助。我已经

c# - 从 C++ Win32 调试托管组件

我有一个用VC++编写的Win32EXE。我有用C#编写的实现。我有使用C#DLL的VC++EXE,如下所述:http://support.microsoft.com/kb/828736.效果很好,但我需要能够调试。两个项目都加载到同一个.SLN中,但从未命中C#中的断点。有没有办法在VS2012中对此进行调试? 最佳答案 啊,事实证明,如果您知道要按下的正确按钮,这很容易。在C++项目属性上,ConfigurationProperties->Debugging->DebuggerType="Mixed"。

c++ - 调试 :FASTLINK - What is this error?

#include#include#includeusingnamespacestd;intmain(){FILE*fPtr=fopen("english.txt","r");if(fPtr==NULL){coutfreq;while(!feof(fPtr)){fscanf(fPtr,"%s",word);freq[word]++;}multimapfreq_rev;map::iteratorit;for(it=freq.begin();it!=freq.end();it++)freq_rev.insert(make_pair(it->second,it->first));multima

c++ - 批评我的堆调试器

我编写了以下堆调试器以演示内存泄漏、双重删除和错误的删除形式(即尝试使用deletep而不是delete[]p)给初级程序员。我很想从强大的C++程序员那里得到一些反馈,因为我以前从未这样做过,而且我确信我犯了一些愚蠢的错误。谢谢!#include#include#includenamespace{constintALIGNMENT=16;constchar*constERR="***ERROR:";intcounter=0;structheap_debugger{heap_debugger(){std::cerr0){std::cerr(raw)=token;void*payload

c++ - 调试断言失败 : _CrtIsValidHeapPointer(pUserData)

有时在Debug模式(image)下运行我的Qt项目时出现“调试断言失败”错误。我不知道我哪里错了,因为编译器什么也没说,我不知道该怎么做才能找到我的错误。我在WindowsVista下编程,使用QtCreator2.4.1、Qt4.8.1。我的程序必须从激光设备中读取一些信息并将它们保存到一个文件中,代码如下:voidrunFunction(){configure_Scanning(...);while(...){//dosomethingscanFunction();//dosomething}}这是我的“incriminated”功能(我认为问题所在)voidscanFuncti

c# - 从 .NET 应用程序调试 C++ 代码时出现问题

我有使用几个C++库的.NET服务(C#)。我迫切需要进入C++方法,但是当我设置断点时,它们会在运行时被禁用。在哪里看?我在C++项目设置中设置了“附加调试器”,但这似乎没有一点改变。请指教。在哪里看?库是quickfixengine如果有人关心的话。 最佳答案 您需要enableunmanagedcodedebugging为您的项目。为此:在解决方案资源管理器中右键点击您的项目,然后点击“属性”。在“调试”选项卡中,选中标有“启用非托管代码调试”的复选框。默认情况下,针对.NETFramework的项目将仅调试托管代码。您必须明

c++ - 如何使用 pdb 调试现有的 C++ 可执行文件但没有源代码

我在已编译(Debug模式)的C++项目中工作。我有它的exe文件和pdb文件。我可以从命令行运行exe。如何调试项目?(我没有它的.sln文件。)我在VisualStudio中工作,但我的系统中也有一个cygwin。 最佳答案 从VisualStudio打开可执行文件,使用与打开项目或解决方案相同的方式。这将允许您对其进行调试。(它会在您的exe周围创建一个空的占位符解决方案,您可以在运行exe进行调试时使用它来更改环境变量或命令行参数。) 关于c++-如何使用pdb调试现有的C++可

c++ - Valgrind 不会返回源代码行!

我已经尝试在我编写的应用程序上运行valgrind(memcheck和massif),但我得到的只是所执行函数的地址。---------------------------------Contextaccountedfor0.6%ofmeasuredspacetime0x805F29A:(withinprog_name)0x8141740:(withinprog_name)Calledfrom:0.6%:0x812E077:(withinprog_name)---------------------------------Contextaccountedfor0.5%ofmeasure