草庐IT

as调试SystemUI

全部标签

c++ - 调试 C++ 代码 : Catch first NaN appearance

这个问题在这里已经有了答案:StoppingthedebuggerwhenaNaNfloatingpointnumberisproduced(1个回答)关闭6年前。是否有一种简单的方法可以在调试器中检查C++代码是否首次出现NaN值?

C++ 模板复制构造函数,编译器说 "passing const as this argument discards qualifiers"

我正在尝试创建动态矩阵的模板类。凭借我目前对C++的了解,我设法解决了一些问题,但我被复制构造函数和重载operator=;困住了。换句话说,我无法创建对象的拷贝。在我看来这应该可行,但我的编译器friend告诉我有1个错误:错误:将“constMatrix”作为“intMatrix::getElement(int,int)[withT=int]”的“this”参数传递会丢弃此行的限定符[-fpermissive]:m[i][j]=original.getElement(i,j);当我想创建一个对象时:Matrixm=Matrix(3,3);我的模板类在这里:templateclass

c++ - (C++14) lambda 数组 : error: 'name' declared as array of 'auto'

我很难解决这个错误。我承认,我是C++的新手,我的困难来自于不理解错误消息。代码如下:autoselectionFuncs[8]={[&](constVector3&min,constVector3&max){returnmax.x_==seamValues.x_||max.y_==seamValues.y_||max.z_==seamValues.z_;},[&](constVector3&min,constVector3&max){returnmin.x_==seamValues.x_;},[&](constVector3&min,constVector3&max){returnm

c++ - 在 C++ 中调试 GUI 应用程序

背景:我目前正在调试一个应用程序,该应用程序是用C++自定义构建的GUI框架编写的。我已经设法确定了大多数错误,但我遇到最多麻烦的错误往往有一个共同的主题。所有这些似乎都与屏幕刷新、重绘或更新以匹配提供的数据有关。调试起来很痛苦,因为我不能在每次刷新时都中断,而且大部分这些东西都是时间敏感的,所以断点偶尔会“修复”错误。问:有没有人对调试基于Windows的GUI有任何提示,尤其是关于刷新单个组件的提示? 最佳答案 我同意双显示器甚至远程调试以减少对消息的干扰。我还强烈推荐Spy实用程序。这些可让您查看系统中正在发送的消息。一个这样

c++ - 如何防止 strncpy_s 在调试版本中填充目标缓冲区?

我维护了相当多的遗留代码,这些代码仍然大量使用strncpy。我现在已经开始将strncpy的用法替换为其安全的对应项strncpy_s。我注意到strncpy_s正在用-2值填充目标缓冲区-但仅在调试版本中!在发布版本中不会发生填充。例如:charbuffer[3];//bufferbecomes000000000000000000000000memset(buffer,0,sizeof(buffer));//bufferbecomes011000010000000011111110//97('a')0-2strncpy_s(buffer,sizeof(buffer),"a",_TR

c++ - "Unable to start program"(调试版本)

MicrosoftVisualStudioUnabletostartprogram'theprogram.exe'.Thisapplicationhasfailedtostartbecausetheapplicationconfigurationisincorrect.Reviewthemanifestfileforpossibleerrors.Reinstallingtheapplicationmayfixthisproblem.Formoredetails,pleaseseetheapplicationeventlog.OK问题程序是一个C++项目,没有MFC,没有AFX,使用的库

c++ - 如何在执行期间停止 C++ 应用程序以调试到 dll?

我有一个我没有代码的应用程序和一个我有代码的dll。我需要能够调试到dll,但缺少exe的源代码,我该怎么做?dll代码为mfcc++;我相信主应用程序也是一样。我试过做一个“设置目标应用程序”的交易,我在其中设置将从中调用dll的应用程序,当以这种方式调用时,应用程序崩溃了,非常可怕。我不知道问题出在这个dll上还是出在该行为的可执行文件上,这只是我想解决的无数问题之一。我在想,应该有一些调用允许dll无限期地旋转,直到调试器附加到进程,此时我应该能够通过附加到进程来调试dll。那有意义吗?有更好的方法吗? 最佳答案 我曾经使用D

c++ - 如何在 C++ 编译期间去除调试代码?

假设我有一个C++函数debugPrint(intfoo)。我怎样才能最方便地从发布版本中删除它?我不想用#ifdefs包围对debugPrint的每次调用,因为这真的很耗时。另一方面,我想100%确定编译器会从发布版本中删除对该函数的所有调用以及函数本身。如果使用函数调用产生的参数调用它,剥离也应该发生。例如,debugPrint(getFoo());。在那种情况下,我还希望删除getFoo()调用。我了解函数内联可能是一种选择,但不保证内联受到支持。 最佳答案 使用条件编译和宏:#ifdef_DEBUG#defineLOG(x)

c++ - 关于调试,多线程的面试题

我昨天有电话面试问题。面试官问我是否遇到过任何具有挑战性的调试问题?我告诉他我曾经在调试别人的代码时遇到过问题,我花了3-4天的时间才解决这个问题。我使用Windbg、符号和故障转储来解决问题。现在这足以说明问题了吗?面试官期望什么?我不知道还能说些什么,我很久以前就遇到过这个问题,无法解释所有细节......这个问题很常见,我不确定正确答案是什么?还有一个很常见的问题:您是否处理过多线程应用程序?你怎么能找出死锁?答:要找到死锁,我们可以查看内存中进程的快照,并查看正在等待的线程。那么下一个问题:如何避免死锁?使用waitformultipleobjects维护关键部分的顺序你们怎么

C++ Data-Url as String to const byte *

我有一个Data-Url文件的std:string。必须对base64编码数据进行解码,然后将其传递给此函数:open(constbyte*data,longsize)所以首先我提取编码数据size_tpos=dataurl.find_first_of(',');std::stringencoded=dataurl.substr(spos+1);然后我用这个base64decoderstd::stringdecoded=base64_decode(encoded);那么,我如何将字符串类型的“解码”转换为字节*?以下代码产生错误open((byte*)decoded.c_str(),d