草庐IT

DEBUGGING

全部标签

c++ - VS 2012 : Debugger: "Break all in 5 seconds"

当我选择文本时,我的程序使用了过多的CPU资源。我不知道为什么。通常我只是按“全部中断”来查看程序当前正在做什么。但在这种情况下,我正忙于用鼠标选择文本。有什么技巧可以延迟“全部中断”命令几秒钟吗? 最佳答案 您可以使用Sleep(5000)启动一个单独的线程;DebugBreak(); 关于c++-VS2012:Debugger:"Breakallin5seconds",我们在StackOverflow上找到一个类似的问题: https://stackove

C++ Hello World 不工作?

我是C++的新手,我正在自学。我正在使用code::blocks,有一个问题。当我写helloworld时,什么也没有发生。这是调试器窗口中显示的内容:Buildingtoensuresourcesareup-to-dateSelectingtarget:DebugERROR:Youneedtospecifyadebuggerprograminthedebuggers'ssettings.(ForMinGWcompilers,it's'gdb.exe'(withoutthequotes))(ForMSVCcompilers,it's'cdb.exe'(withoutthequotes)

c++ - googletest:如果测试失败则执行附加操作

我希望能够将数据保存到磁盘以防测试失败。有没有办法在googletest框架内做到这一点?TEST_F(test_similarity,are_similar){ASSERT_GT(1e-10,norm(im0,im1));//Iftestfailssaveimagestodiskforcomparison:imwrite("im0.png",im0);imwrite("im1.png",im1);} 最佳答案 有Test::HasFailure()、Test::HasNonfatalFailure()和Test::HasFatal

c++ - 为什么数据断点对未对齐的地址不起作用

在VisualStudio中调试C++项目时,一些数据断点从未命中。所以我写了一些代码进行测试:#include#includevoidtest(uint32_t*p){*p=0;//setadatabreakpointonp*((char*)p+2)=0x1;std::cout如你所见,在函数测试中,*p的值会先归零,然后它将被隐式更改,我有一个小端CPU所以它必须是65536。如果在p(4个字节)上设置数据断点来检测变化,你会得到两种不同的结果:命中与否。这取决于p指向的地址。在我上面的测试代码中,测试#1会命中而测试#2不会,#1和#2之间的区别是返回的地址分配(0)和分配(2)

c# - 如何在 VS 2013 中调试 Windows Phone (8) 运行时组件或 C++ DLL 中的 C++ 代码

对于使用VisualStudio2013Pro创建并包含WindowsPhone应用程序(C#)、WindowsPhone运行时组件(C++)和WindowsPhone动态链接库(C++)的解决方案,是否可以调试C++代码运行时组件还是DLL?如果是这样,必须做什么才能启用它?我创建了这样一个项目-一个简单的测试应用程序,其中应用程序调用运行时组件中的代码,而运行时组件又调用DLL中的代码。我可以验证它是否正常工作,因为在它通过运行时组件反馈到应用程序中的C#代码后,我可以检查DLL中C++函数的返回值,但我无法让调试器进入在运行时组件中实现的方法。虽然我可以在任何代码(C#或C++)

c++ - Visual Studio 2017,C++,单步执行代码时指向错误的行

在某些文件中,调试器在单步执行代码时指向错误的行。准确的说是(一直)差了一行我已经尝试过的:1)normlizedline-endingsinallofthefiles2)wipedoutallofthePDBfiles3)wipedouttheentiredebugfolder4)rebuilttheentireproject5)ensuredthatoptimisationfortheentiresolutionandprojectswithinititisturned-off(/Odswitchenabled)6)ensuredthatlibraries(*.LIB)towhic

c++ - 程序崩溃并显示 0xC000000D 并且没有异常 - 我该如何调试它?

我有一个使用第三方库的VisualC++9Win32应用程序。当使用一组特定参数调用该库中的函数时,程序崩溃并显示“异常代码0xC000000D”。我尝试附加VisualStudio调试器-没有抛出任何异常(既没有C++也没有类似访问冲突的结构),也没有调用terminate()。程序仍然默默地结束了。程序只是异常结束,而在调试器中却没有停止,这是怎么回事?如何定位问题? 最佳答案 这是STATUS_INVALID_PARAMETER,使用WinDbg追踪是谁扔的(即附加WinDbg,sxeeh然后g。

c++ - 描述和发现导致看似随机崩溃的状态破坏错误

我目前正面临着我的团队正在处理的大型复杂项目中遇到过的最严重的错误之一。我们使用C++作为编程语言,目前使用VisualStudio进行开发,尽管最终产品旨在跨平台运行。漏洞:我们的系统中存在一个错误,它会在看似随机的执行点触发崩溃。崩溃的原因通常是地址的读取访问冲突,每次执行程序时地址都会发生变化。有时我们也会遇到堆损坏错误。调用堆栈将我们引向代码库中的变化点,并且很少引向某些外部库(在我们的例子中是Lua),而错误显然并不存在。似乎这个错误在过去4个月内一直在发展。那段时间之前,大致上,我的一些团队成员看到前端程序崩溃的方式和位置与现在发生的情况非常相似。更多细节:我们的代码库大约

c++ - 如何 "decrypt"链接器方法名称?

我正在使用回溯来打印应用程序的堆栈跟踪,我得到类似的东西libQtCore.so.4(_ZN11QMetaObject8activateEP7QObjectPKS_iPPv+0x843)[0x7f889d20cf33]libQtGui.so.4(_ZN7QAction9triggeredEb+0x32)[0x7f889d76c2f2]libQtGui.so.4(_ZN7QAction8activateENS_11ActionEventE+0xb0)[0x7f889d76d670]libQtGui.so.4(+0x6242f4)[0x7f889db862f4]有没有办法将“链接器名称”转

c# - VS2010 模块列表中缺少 DLL

我真的一直在用这个问题撞墙。我有一个包含C#和C++代码项目的解决方案。我经常调用C++DLL,它们是通过P/Invoke从C#编译到这个项目中的。没问题。据我所知,通过*.sln文件以及C++和C#文件的所有必要调试器设置都已正确设置。注意:我经常能够毫无问题地调试类似的P/InvokedC++代码!自然地,我想也许符号没有加载——然而,在打开模块窗口时,我发现我试图进入的DLL甚至没有列出!在我的C#程序中运行函数确实使用了DLL(我得到了正确的输出),但是,在观察模块窗口时,DLL仍然没有出现。有人知道发生了什么事吗?tl;dr-->我在调试P/InvokedC++方面有相当多的