草庐IT

bug调试

全部标签

windows - 编写自己的 "mixed mode"调试器时如何与 Visual Studio native 调试器交互?

过去几天我一直在谷歌、博客和MSDN上搜索有关如何在VisualStudio中实现“互操作”或“混合模式”调试的任何小信息。我正在尝试为自定义VM实现我自己的调试器(实际上,它将JIT编译为native代码,这意味着只要正常native调试器输入JIT代码,我就必须为它重建调用堆栈),但我找不到任何关于如何实际与VS的native调试器交互并执行花哨的“native/托管”的信息,例如VS的混合模式调试所实现的转换。到目前为止,我发现了一些可以提供有用花絮的东西,但还不足以真正与调试器交互。我发现的最好、最有用的文章是:MikeStall的各种博客文章(主要是thesetwo)虽然提供

c++ - 如何调试程序在 main() 之前崩溃

我在windows8.1上使用QtCreator和visualstudio2015工具包来构建我在Linux上开发和测试的程序,在linux上它工作正常,但在windows上它立即崩溃,我不知道该看什么为。除了QT,我使用的唯一外部库是opengl和glew,所以我不认为是那些。有没有已知的在GNUC++中工作但在MSVC中立即崩溃的东西? 最佳答案 通常这种崩溃与你的程序完全没有关系。这是一个外部库链接问题。我最近在使用OpenSpliceDDS库时遇到了这个问题。在任何事情开始之前,我链接到一个导致段错误的库。我通过一对一链接预

windows - 无法在 Visual Studio 2017 : "Access is denied." 下使用或不使用调试器运行 CMake 可执行文件

我正在尝试在VisualStudio2017的调试器下运行使用CMake生成的解决方案文件构建的程序以调试问题。但是,每当我尝试选择StartDebugging或StartWithoutDebugging时,我都会收到以下错误弹出窗口。Unabletostartprogram'E:\build\someprogram\build\x64\Debug\ALL_BUILDAccessisdenied.乍一看,问题听起来像描述的问题here.然而,据称该错误已在VS201715.5中修复,我目前使用的是15.6.7。编译后的可执行文件的位置不在RAM磁盘或网络驱动器上,而是在物理驱动器上。并

windows - 阻止 MSVC++ 调试错误阻止当前进程?

Windows上任何失败的ASSERT语句都会导致出现以下调试消息并卡住应用程序执行。我意识到这是预期的行为,但它会在headless机器上定期运行,因此可以防止单元测试失败,而是无限期地等待用户输入。是否有注册表项或编译器标志可用于防止此消息框请求用户输入,同时仍允许测试在ASSERT下失败?基本上,我想在不修改任何代码的情况下执行此操作,只需更改编译器或Windows选项。谢谢!MicrosoftVisualC++DebugLibraryASSERThttp://img519.imageshack.us/img519/853/snapshotbu1.png

windows - 通过网络连接到 Visual Studio 远程调试器 (msvsmon) 所需的设置

我们正在尝试跨域进行远程调试,从Windows7机器到WindowsXP家用机器。这些机器使用LogMeInHamachi通过VPN连接在一起。我已经查看了关于彻底设置远程调试的MSDN指南,并且已经克服了很多错误,但我总是遇到障碍。我可以让它进入native调试,但无法进行托管调试以进行身份​​验证。这是我已经完成的事情--Visualstudio和调试监视器以相同的管理员用户身份在各自的计算机上运行--调试/调试。调试器最初拒绝在xp机器上运行,所以我这样运行它:runas/user:debug"c:\josh\msvsmon.exe-nosecuritywarn-noauth-a

C++过滤调试事件

在C++/Windows中是否有内置的方法来过滤WaitForDebugEvent捕获的事件?WaitForDebugEvent会忽略吗? 最佳答案 不,我认为您不能过滤任何调试事件。调用WaitForDebugEvent的应用程序将获得所有事件。但是,您可以在应用程序中收到任何特定事件后忽略它。 关于C++过滤调试事件,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/458001

c++ - 在 WinDbg 中开始调试的基本设置+任务是什么?

引用我自己的话,来自问题Arethereanybooksthat“teach”WinDbg?:WiththeVisualStudiodebugger,IknowwhereIamatagivenpoint,thatisitisveryeasyandconvenienttosetitupsothatthecurrentbreakpoint(sourcecode)+disassembly+callstack+localvariables+...allmakesensetogether.It'satthispointthatI'dneedsomeadvancesWinDbgcommands,b

windows - COFF 符号表与导入/导出/调试部分

据我了解,Microsoft的PortableExecutable格式的COFF符号表用于存储导出、导入和调试符号。但是既然我们已经有了.edata、.idata和.debug部分,为什么我们还需要另一个这样的结构呢? 最佳答案 参见此处:http://msdn.microsoft.com/en-us/library/ms809762.aspx[COFF符号表]仅用于带有COFF调试信息的OBJ文件和PE文件。"“.rdata部分至少用于两件事。[...](在TLINK32EXE中,调试目录位于名为.debug的部分中。)[...]

windows - 如何调试 H264 DirectShow 过滤器?

我正在开发一个h264directshow过滤器。我有一个有效的硬件源,可以正确输出NAL单元。我有一个DirectShow过滤器,它宣传h264并成功连接到默认的windows7解码器microsoftdtv-dvd视频解码器。当我将渲染器连接到解码器时,渲染器没有收到任何数据包,因此我假设解码器无法正确解码我的数据包。[h264来源]->[dtv-dvd解码器]->[增强视频渲染器]有什么方法可以让我检查微软解码器哪里出了问题吗?任何其他信息可能会有帮助 最佳答案 您遇到的困难是您没有dtv-dvd解码器的代码,这使得它在某种程

windows - 易于使用的可移植可执行恶意软件调试器

我正在寻找每个类别的推荐免费收费适用于可移植可执行文件(native/非.NET)恶意软件分析的易于使用的调试器。 最佳答案 在免费类别中,Olly是国王。如果您使用的是WinXP或更早版本,SoftICE也很棒,尽管现在很难找到它的副本。在付费类别中是IDAPro,Handlebars放下。克里斯·伊格尔wroteanexcellentbook向您展示如何使用IDA进行高级逆向工程。还要澄清一下Marco,UPX只能用于解压最初用UPX打包的可执行文件。许多非常复杂的恶意软件二进制文件使用自定义打包技术,无法使用UPX逆转。