草庐IT

variable_heap_stack

全部标签

windows - 什么是 "double stack fault"?

我最近阅读了以下有关Windows异常处理的内容。Incertainunhandledexceptions,suchasadoublestackfault,theoperatingsystemwillimmediatelyterminatetheapplicationwithoutcallingtheunhandledexceptionfilteroraJITdebugger.什么是双栈错误?它与常规堆栈错误有何不同? 最佳答案 这句话大概出自这个Codeprojectarticle.该站点在技术审查方面并不为人所知。“双重故障”的

windows - STATUS_STACK_BUFFER_OVERRUN 和 STATUS_STACK_OVERFLOW 有什么区别?

我刚刚发现有一个STATUS_STACK_BUFFER_OVERRUN和一个STATUS_STACK_OVERFLOW。这两个有什么区别?我刚找到Stackoverflow(stackexhaustion)notthesameasstackbufferoverflow但要么它没有解释它,要么我不明白。你能帮帮我吗?问候托拜厄斯 最佳答案 考虑以下在内存中向下增长的堆栈:+----------------+|somedata||+----------------+|growthofstack|20-bytestring|V+-----

Windows 8 : Doing heap analysis on 32 bit application running through WOW64

首先,这不是关于如何进行堆分析的一般性问题,因为我在早期版本的Windows中对此非常熟悉。但我想知道的是,是否有人成功地对在64位Windows8上通过WOW64层运行的32位应用程序执行堆分析,Windows8是这里的关键词?运行Windows7和Windows调试工具我通常对WOW64层本身不感兴趣)。堆信息完美显示。在Windows8上,执行相同的过程,添加gflags并启动我的进程,启动后内存使用量从40MB增加到140MB,表明gflags已经启动。但是,无论我如何尝试,WinDbg或umdh都无法获取任何堆信息。在通过WOW64运行时,通过运行x64版本并将.effmac

c++ - Visual Studio : how do I have the debugger stop when a member variable is modified?

我的程序有一个永远不应该改变的变量。然而,不知何故,它正在被改变。当特定成员变量被修改时,有没有办法让调试器停止? 最佳答案 设置数据断点以在某些变量发生变化时停止执行。在变量的初始化处中断,或者在变量可见的地方中断-您需要能够获取它在内存中的地址。然后,从菜单中选择调试->新断点->新数据断点。输入“&var”(将var替换为您的变量名称。)这将在修改您的变量的确切代码行上打断调试器。更多文档在这里:http://msdn.microsoft.com/en-us/library/350dyxd0.aspx

windows - GFlags 设置以捕获堆损坏(Page Heap 除外)?

在一个生产站点上,我们的应用程序(*)反复崩溃,但无法重现。分析崩溃转储清楚地表明它是堆损坏:崩溃发生在不同的位置,但始终在kernel32!HeapFree/ntdll!RtlpLowFragHeapFree内访问冲突。WinDbg!analyze-v也报告堆损坏。到目前为止我们尝试的是使用GFlags运行应用程序选项PageHeap.问题是页面堆的内存开销使得应用程序将不再运行(达到32位进程的虚拟内存限制)。所以,我们不能使用页面堆。还有哪个flags添加将很有用,这样我们要么在腐败现场撞车或者至少可以从我们在HeapFree中崩溃时最终生成的故障转储中获取更多信息?我们目前正在

windows - Stack (Haskell) 在 Windows 中抛出 TlsException

Stack(在Windows下)有时会在尝试下载文件时抛出以下异常(例如,在stacksetup期间或下载构建计划时):TlsException(HandshakeFailed(Error_Protocol("certificatehasunknownCA",True,UnknownCa))).如果发生此错误,如何解决?(这已在https://github.com/commercialhaskell/stack/issues/234上讨论并解决,我重新发布问题以使解决方案更可用。) 最佳答案 这是由于在访问各种网站时stack没有找

windows - 批处理文件 : What's the best way to declare and use a boolean variable?

在批处理文件中声明和使用bool变量的最佳方式是什么?这就是我现在正在做的:set"condition=true"::Somecodethatmaychangetheconditionif%condition%==true(::Somework)是否有更好、更“正式”的方式来做到这一点?(例如,在Bash中,您可以只执行if$condition,因为true和false是它们自己的命令。) 最佳答案 set"condition="和set"condition=y"其中y可以是任何字符串或数字。这允许ifdefined和ifnotde

Windows 命令提示符 : Using a variable set in the same line of a one-liner

好吧,我了解到可以使用&或&&将多个命令组合成一行,但似乎set的变量code>实际上不适用于同一行中的插值:C:\Users\Andrew>setfoo=hello,world!&&echo%foo%%foo%C:\Users\Andrew>echo%foo%hello,world!为什么我不能让它工作,有没有办法让它在一行中工作?我需要单行代码的原因是我正在使用的外部程序接受单个命令作为预运行Hook,当然,我需要运行多个命令。先发制人的防御"hello,world!应该用双引号括起来!"实际上,这样做似乎是在变量中存储文字双引号,这我不想,例如C:\Users\Andrew>se

c - 错误 C4996 : 'scanf' : This function or variable may be unsafe in c programming

我创建了一个小型应用程序,通过使用带参数的用户定义函数来查找最大数。当我运行它时,它会显示此消息Error1errorC4996:'scanf':Thisfunctionorvariablemaybeunsafe.Considerusingscanf_sinstead.Todisabledeprecation,use_CRT_SECURE_NO_WARNINGS.Seeonlinehelpfordetails.我该怎么做才能解决这个问题?这是我的代码#includevoidfindtwonumber(void);voidfindthreenumber(void);intmain(){i

windows - %variable% 和 !variable! 之间的区别在批处理文件中

我正在编写一个批处理文件,我需要在其中输出一个包含“!”的字符串到另一个文件。但是当我将该字符串回显到另一个文件时,它会删除“!”从输出。例如:输入:setLINE=Hithisis!outputecho!LINE!>>new_file.txtnew_file.txt中的输出是:Hithisisoutput此外,如果输入是setLINE=Hello!!thisisoutput!!echo!LINE!>>new_file.txtnew_file.txt中的输出:Hello因此,它跳过了!(感叹号)从输出到new_file。如果我使用%LINE%,那么它只会在输出文件中显示“回声打开”。请