我最近开始尝试为Windows开发文件系统驱动程序,并开始研究VisualStudio2013中提供的内核调试器。内核开发器是一款了不起的软件——它能够调试实时内核(断点、堆栈跟踪、内存访问和所有内容)通过RS232连接连接的远程机器。我不明白的一件事是——如何通过RS232端口进行这种调试?我对内核的理解是,它是直接针对硬件组件的软件,是系统中最底层的软件之一。某些东西怎么能在内核“之上”运行,从而允许远程调试内核本身?内核如何可以纯粹在软件中进行调试?不干扰响应机器本身调试请求的软件(可能在内核下运行)? 最佳答案 内核调试器既
我在Windows8.1上安装了EclipseCDT和MinGW,可以启动“HelloWorld”项目,但没有反向调试控件。我在网上看到我必须在“自定义透视”对话框中激活它们。当我尝试在“工具栏可见性”选项卡中激活不同的命令(如“反向恢复,反向进入”)时,我收到错误消息thecommandcannotbemadevisibleinthisdialog如何在Eclipse(CDT)中启用反向调试控件? 最佳答案 我在Linux下遇到了同样的问题(和错误消息)。我关注了thisEclipseFAQentry这似乎有点过时了。我实际上最终
我正在尝试调试我编写的应用程序的转储文件。我将以下符号路径添加到WinDbg我假设这会下载调试它所必需的Windows符号。然后我在WinDbg中运行以下命令“!analyze-v”这开始分析,然后由于找不到符号而失败。当我查看C:\MyServerSymbols时,我看到以下内容我希望看到的不仅仅是kernelbase.dll分析命令提示找不到ntdll符号。下面是它给我的完整输出。有谁知道如何获取它需要的符号吗?0:001>!analyze-v**********************************************************************
本质上,我正在寻找的是一个允许我做这样的事情的函数:自卸车(some_obj);/*输出some_objs的数据结构*/谢谢。 最佳答案 C不支持开箱即用的任何类型的反射。从某种意义上说,它也不是硬类型的,一旦它被编译为机器代码,类型就不再存在了(与某些高级语言不同)。您需要使用所有符号和调试信息构建可执行文件,然后使用一些调试工具或库来检索这些数据。我想只使用已建立的调试器(例如VisualStudio调试器或gdb)会简单得多。 关于c-Data::Dumper中是否有与Perls的
是否有适用于Windows7的操作系统或用户帐户级别的修改,我可以使用它来使已终止进程的控制台窗口保持打开状态?背景:我喜欢使用控制台程序进行简单测试。这些东西往往需要调试和分析,而最简单的方法是使用printf或等价物-几乎任何语言都可以使用。不幸的是,当控制台程序终止时,包含文本缓冲区的窗口退出-我失去了那个简单的反馈。但是,当您从VisualStudio中启动一个程序(没有调试)时,VisualStudio会设法启动程序并在进程终止后让控制台窗口保持打开状态-这种行为很方便!不幸的是,我无法从visualstudio启动所有进程。那么,有没有办法启动所有程序或至少一些程序,使它们
我有一个混合模式应用程序,如果在内部数据结构中发现错误,我想在其中启动调试器。奇怪的是,DebugBreak和__debugbreak函数似乎没有按预期工作(.Net框架似乎拦截了断点异常,导致各种讨厌的副作用)。我之前的问题的解决方案(参见BehaviorofDebugBreakdiffersbetweenunmanagedandmixed(unmanaged+managed)application?)似乎适用于非常简单的情况,但不适用于我的应用程序(它只会让我的应用程序挂起)。幸运的是,我发现执行System::Diagnostics::Debugger::Launch似乎可以解决
我正在开发一个多平台C++模糊测试应用程序。该应用程序生成一个子进程并检查它是否意外停止。我已经设法在linux上做到这一点,但是,windows异常处理机制让我很难做。我的代码现在执行以下操作:-调用CreateProcess生成进程。-WaitForSingleObject等待它终止。-然后调用GetExitCodeProcess并检查退出代码是否对应于异常。一切正常,我已经用空解引用测试应用程序对其进行了测试,我可以优雅地捕获异常。但是,每次我对此进行测试时,都会出现一个Windows错误消息框,告诉我发送或不发送错误报告。由于模糊器应该是一个自动测试应用程序,我需要以某种方式禁
我有一个网站在IE9中触发了一些JavaScript错误。使用F12打开调试控制台并重新加载页面时,问题消失,一切运行正常。这显然很烦人,因此很难检测到错误消息来解决问题。这是一个带有Googlemap的页面。通常,map上应该有标记。在IE9中,没有。打开控制台时,一切正常。有谁知道如何调试这个烦恼? 最佳答案 在IE中,除非控制台打开,否则console对象不可用。这就是关闭时导致错误的原因。从您的代码中删除所有对console的引用,您应该没问题。 关于javascript-在IE
如标题所述,我认为pdb文件是map文件的超集。我问这个问题的原因是因为我现在负责维护一个旧系统,该系统将同时生成pdb和map文件。我想知道有pdb文件的时候是不是就不需要map文件了!谢谢 最佳答案 我也对此感到疑惑,并决定看看JohnRobbins在他的“调试应用程序”一书中所说的话。他说map文件是“程序全局符号、源代码和行号信息的唯一文本表示”,可以在没有任何支持程序的情况下读取。他接着说,微软会定期更改符号表格式,如果您的客户运行的是非常旧版本的程序,可能很难找到可以解释符号表的旧版本符号引擎在那个非常古老的程序的PDB
我正在尝试分析在我的应用程序发生挂起后从我的一位最终用户那里收到的内存转储。它似乎与我的应用程序的音频播放部分有关。我相信涉及两个线程,即将开始播放声音的主线程,以及一个更新程序线程,它迭代链表中的声音以不断更新它们的状态。但是,我不明白挂起的来源是什么。我的WinDbg知识有限,但我设法弄清楚挂起似乎发生在音频库的SetLoop方法中(具体在静态声音代码中)。我使用DirectSound,在这种情况下应用程序在Windows732位上运行(我自己在XP上开发,我从来没有遇到过这样的问题)。静态声音类在检查声音是否正在播放之前锁定关键部分,如果不是,则将循环标志设置为true或fals