草庐IT

c++ - 隔离容易崩溃的 (SEGV) 但将关键的遗留代码加速到单独的二进制文件中

我有一个经过良好测试且没有崩溃的代码库(主要是C++)。大多。代码的一部分——不可替代、难以维护或改进并链接到一个二进制库*——导致所有崩溃。这些不会经常发生,但一旦发生,整个程序就会崩溃。+----------------------+|Shinynewsane||codebase||||+-----------------+|Ifthelegacycodecrashes,||||theentireprogramdoes,too.||LegacyCode||||*Crashprone*||||intabc(data)|||+-----------------+|||+--------

c++ - 崩溃转储的最佳标志

我目前有一些代码会在我的应用程序崩溃时生成故障转储,但是我无法弄清楚哪些是最好的标志。目前我使用全内存(MiniDumpWithFullMemory),但这会产生32mg的崩溃文件。我应该使用哪些标志,既不会使崩溃文件变大,又能在使用它进行调试时提供最大的功能?有关标志的更多信息,请访问:http://www.debuginfo.com/articles/effminidumps.html 最佳答案 这并不总是如此笼统的答案。所需的标志在某种程度上取决于您要完成的任务或您可能要搜索的内容。也许您有线程问题,MiniDumpWithT

c++ - 当我什至无法进入代码时如何调试 "This application has requested the Runtime to terminate it in an unusual way."?

我有一个C++程序,它在进程启动后立即给出此错误-显然是在任何用户代码执行之前。它仅在启用内联时发生。即使内置了调试符号,我也无法进入代码。当我在VisualStudio中按下F10时,我收到了错误并且程序停止了。我在“调试/异常”中检查了所有异常/检查,但仍然没有休息。通常我会认为这样的事情是由于缺少运行时依赖项造成的,但我很肯定这不是这里的情况(已通过DependencyWalker验证)。编辑:我使用了SteveTownsend对CDB的推荐,现在我能够单步执行程序的预用户代码部分。最终的堆栈跟踪是:Child-SPRetAddrCallSite00000000`0008e308

c++ - 找出调用 __fastfail 的原因

我有一个我不熟悉的巨大代码库,程序异常终止,因为某个地方的线程正在调用__fastfail。这是基于以结尾的消息...Fatalprogramexitrequested.调用堆栈没有符号,因为它位于C++2015运行时(ucrtbase.dll)中。该调用似乎是在我的主线程以外的线程上进行的。这个神秘的线程只在问题发生之前启动,所以我无法在调试器中捕捉到它启动的行为-我不知道是什么启动了它,也不知道是什么导致了整个过程。我在我的main()中使用__try/__catch有SEH,所以任何未处理的异常都应该被困在那里。相反,我猜测某些地方会冒泡到运行时并导致__fastfail。我试过

c++ - SSE 与类(class)保持一致

有一些非常奇怪的问题,作为c++的初学者,我不知道为什么。structDeviceSettings{public:....somevariablesDXSizeBackbufferSize;....somemethods};structDXPoint;typedefDXPointDXSize;__declspec(align(16))structDXPoint{public:union{struct{intx;inty;};struct{intwidth;intheight;};intdataint[2];__m128im;};DXPoint(void);DXPoint(intx,in

计算机速成课Crash Course - 27. 3D 图形

今天继续计算机速成课CrashCourse的系列讲解。更多技术文章,全网首发公众号“摸鱼IT”锁定-上午11点-,感谢大家关注、转发、点赞!计算机速成课CrashCourse-27.3D图形(qq.com)27.3D图形在过去五集,我们从基于电传打字机的命令行界面,讲到图形怎么显示到屏幕上,再到上集的图形用户界面(GUI),以及图形界面的美味。之前的例子都是2D,但我们生活的世界是3D的,所以今天,我们讲3D图形的基础知识,以及如何渲染3D图形到2D屏幕上。24集中说过可以写一个函数,从A到B画一条线,通过控制A和B的(X,Y)坐标,可以控制一条线。在3D图像中,点的坐标不再是两点,而是三点X

c++ - 崩溃检测、日志记录和 C++

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭8年前。Improvethisquestion我有一个用QTC++编写的应用程序,它在Ubuntu下对我来说运行良好,无论是在VirtualBox中还是在“目标机器”(一个小的ZotacMAG盒子)上。我已经运行了几个小时,通过它进行输入(头脑NumPy的工作),我无法让这个SCSS崩溃,但用户一直告诉我它每天可能崩溃4次。该应用程序并没有做太多事情,它是一个HTML5应用程序,只是一个加载网站的webkit小部

c++ - 通过调用 CreateRemoteThread : crash 弹出 dll

我正在尝试为自己制作一个从进程中提取/释放dll的工具。我已经体验过LoadLibrary和注入(inject),但这次逻辑似乎不适用。这是我的代码:HMODULEfindModuleOffset(HANDLEproc,char*mod_name){//Findsmoduleaddressinspecifiedprocess.0ifnotfoundHMODULEhMods[2048];DWORDmodules_byte_size;if(EnumProcessModules(proc,hMods,sizeof(hMods),&modules_byte_size)){for(unsigne

c++ - 删除向上转换为基指针的对象数组

开始将一些库从msvc移动到mingw,并发现当有人想要删除一个arrayupcastedobjects时msvc的非常有趣的行为。即msvc做了一些黑魔法(它似乎喜欢这样做)并且波纹管代码执行得很好,但是在mingw中(4.7.2(崩溃。我相信mingw正在正确执行并且它的msvc巫术就是制作睡虫。代码:#includeclassfoo{staticintidgen;protected:intid;public:foo(){id=idgen++;std::coutmsvc2010的输出Hello(foo-0)Hello(bar-0)Hello(foo-1)Hello(bar-1)By

c++ - 与主线程相比,辅助线程崩溃是否有优势?

我在一个大型代码库中看到这段代码DWORDWINAPIThreadFunc(LPVOIDlpParam){int*x=0;*x=1234;//Accessviolationreturn0;}voidManager::Crash(){Log("ReceivedaremotecommandtocrashServer.");DWORDdwThreadId,dwThrdParam=1;HANDLEhThread=::CreateThread(NULL,0,ThreadFunc,&dwThrdParam,0,&dwThreadId);}我的问题是:为什么要使用线程?如果ThreadFunc中的代