jjzjj

breakpoints

全部标签

c++ - 如何全局设置返回语句的条件断点?

我有一个充满功能的代码,例如:boolf_i(){if(!f_0()){returnfalse;}if(!f_1()){returnfalse;}//...if(!f_n()){returnfalse;}returntrue;}//etc...在某些执行步骤中,一些被调用者可以返回false,并且false会传播到所有调用者。目前很难编写错误消息(代码变化很快)。在调试期间,在每次returnfalse;之前都有错误消息是过多的。是否可以使用GDB在全局的return语句上设置条件(条件:比如说,函数返回false)断点? 最佳答案

c++ - Xcode 断点仅在调试期间设置时命中

我正在将C++SDK从Windows移植到MacOSX10.5。我在Xcode中遇到问题,我在某些文件中的断点只有在调试时设置它们时才会命中。如果我停止调试然后重新启动,断点将不再命中。如果我在不调试的情况下添加它们,它们就不会受到影响。这仅在某些文件中,我的断点总是深蓝色。即,我无法区分会被击中的断点和不会被击中的断点。具体来说,我的sdk是由各种动态库组成的。这些是使用Perforcejam构建的,它根据我的操作系统和编译器版本(例如VisualStudio的cl.exe和link.exe)调用各种编译和链接可执行文件。我有一个简单的(单元测试)命令行应用程序,它链接到这些动态库并

c++ - 达到特定内存限制后中断

如果exe达到一定的内存限制,是否有办法让visualstudio中断c++项目?假设exe使用了200mb,那么它将中断并向我显示它所在的代码行。 最佳答案 您是在谈论工作集大小还是堆内存?堆内存很简单:调试VC++运行时有_CrtSetAllocHook,它在每次内存分配/重新分配/释放调用时调用用户提供的函数。http://msdn.microsoft.com/en-us/library/820k4tb8.aspx您可以安装钩子(Hook),然后对内存分配求和。如果达到阈值,您可以调用_debugbreak()进入调试器。

c++ - 定位事件处理程序

我有一个非常大的MFC应用程序的源代码,但文档很差。我试图在代码执行时对其进行跟踪,以了解它在做什么。不幸的是,一旦用户获得对应用程序的控制权,我就需要在事件处理程序上设置一个断点,以便在调试器中再次开始跟踪。如果我尝试逐行执行代码,那么用户将永远无法控制应用程序,因为它开始逐步执​​行空闲例程。我需要的是在单击按钮之前确定与该按钮关联的事件处理程序的名称。这样,我就可以在该事件处理程序上设置一个断点,并在按下时立即遍历相关代码。由于应用程序的大小,在每个事件处理程序中手动设置断点是不可行的。如果有一种简单的方法可以在包含特定模式的所有行上设置断点,那也可以。我可以在(alt+e+f+

C++ Eclipse 调试器 : "Cannot find bounds of current function" and doesn't stop at breakpoints

我是第一次使用Ubuntu,而eclipse的调试器给我带来的麻烦超出了我的处理能力。目前我只想弄清楚如何让“无法找到当前函数的边界”停止,这样我就可以看到我的控制流在哪里出错了。我知道这是一个模糊的问题,但我愿意快速提供任何类型的必要信息。我在谷歌上搜索了大约2个小时的信息,打开和关闭不同的东西都无济于事。我正在使用版本:3.4.1(我相信是最新的)另外,我的断点并不总是有效(成功率可能约为25%),即使我在构建之前设置它们也是如此。在程序崩溃之前,我的cout如果有任何帮助,我将不胜感激。我会在附近。 最佳答案 不是unhear

c++ - gdb python编程: how to write code that will set breakpoints to every method of a C++ class?

我希望能够在gdb中为C++类的每个方法设置断点。我认为最简单的方法可能是python,因为现在python可以完全访问gdb。我对python知之甚少,而在它上面加上gdb,它就更难了。我想知道是否有人知道如何编写一个类python代码来为gdb中命名类的每个方法设置断点。 最佳答案 假设您使用调试符号进行编译,您甚至不需要python:rbreaksource.cpp:. 关于c++-gdbpython编程:howtowritecodethatwillsetbreakpointsto

c++ - 只有在 Visual C++ 2008 中遇到另一个中断时才会中断的任何方法?

我发现自己多次遇到这种情况,我需要中断一个函数,该函数仅在命中特定断点后才被调用数百次。假设有一个更新对象状态的函数。这被多次调用框架。我正在测试一个编辑对象的功能。一旦命中该函数,我就可以进入UpdateStatus函数。显然,如果我在UpdateStatus中放置一个断点,它将始终中断并且我将永远无法与该程序交互。如果我可以在断点上设置条件以仅在其他函数中的断点命中时中断,那该有多好。请注意,这只是一个示例。我正在使用VisualC++2008。 最佳答案 我记得自己遇到过这样的情况。我相信您可以将VisualStudiotra

c++ - 如何在 visual studio 2015 中更改条件断点上的变量值

有什么方法可以在条件断点上将变量的值更改为并继续执行。我的代码是这样的switch(var){//conditionalbreakpointonthislinecase1:break;...}我把条件断点如下(var==0)||(var==1)为真所以当这个断点命中时,我想改变var=2,然后继续执行。我的发现:我也找到了Action,但它只记录消息。有什么方法可以执行像var=2这样的语句作为在此条件断点上采取的操作。我不想更改代码,因为构建它需要大量时间。注意:我在VisualStudio2015上使用C++ 最佳答案 在Log

c++ - 从 0X7c90120120e 处的代码调用的用户断点

我正在VS中调试我用C编写的代码。出于某种原因,在某些时候它会跳转到带有以下行的程序集窗口:int3然后会出现一个弹出消息框,其中包含以下消息:UserBreakpointCalledFromCodeAt0X7c90120120e我查看了堆栈,导致它的命令是MALLOC!在输出窗口中:Heapmissinglastentryincommittedrangenear22549c0奇怪的是,当我在收到消息时按OK,然后按F5键继续调试时,一切都100%正常运行。但是当我尝试执行代码时,我收到一条消息,指出我的项目遇到了一些问题。我尝试清理我的项目、重建、删除所有断点..没有任何效果。

C++ 控制台 Application1.exe 已触发断点

当我尝试设置时cub.SetArray(cube);我得到一个错误ConsoleApplication1.exehastriggeredabreakpoint我做错了什么?当我尝试调试cub->cubesarray时,我得到大小-842150451。我不明白为什么。这是我的所有代码classCube{public:staticconstintChange_ARRAY=5;private:stringcolor;intsize;int*walls;intn;//currentsizeofarrayintmaximumsize;//maximumsizeofarrayvoidIncreas