草庐IT

虚拟调试

全部标签

windows - 调试 WFP 标注驱动程序的选项有哪些

我是内核模式Windows驱动程序开发的新手,在从WFP标注示例中获取调试信息时遇到问题。我正在寻找更多选项或关于我一直在尝试的选项做错了什么的提示。首先,我下载了WFPsampler并按照其描述中的说明进行操作。我正在使用通过模拟串行电缆连接的Windows8.1x64主机和Windows7x64目标。它们都是VirtualBoxVM。我调试的主要命令是WFPSampler.Exe-sPROXY-lFWPM_LAYER_ALE_BIND_REDIRECT_V4-aaid"C:\ProgramFiles(x86)\InternetExplorer\iexplore.exe"-pla10

windows - 在 Windows 8.1 中将调试器附加到 Services.exe

我已尝试将调试器附加到Windows8.1中的Services.exe,但我始终收到“访问被拒绝”。即使在确保WinDbg以“管理员身份”运行(以提升启动)之后也是如此。只是为了测试,我尝试从任务管理器创建一个内存转储文件,但我得到了同样的错误。我还尝试使用Sysinternals(ProcExp)中的ProcessExplorer创建转储,但我遇到了同样的错误。上图为services.exe所在的进程树(使用procexp查看)。有趣的是,我们可以为wininit.exe和svchost.exe创建转储文件,但不能为services.exe创建转储文件。我让一些同事在Windows7

c++ - 如何在 C++ 中将 x64 机器代码写入虚拟内存并在 Windows 中执行

我一直想知道V8JavaScript引擎和任何其他JIT编译器如何执行生成的代码。以下是我在尝试编写小型演示时阅读的文章。http://eli.thegreenplace.net/2013/11/05/how-to-jit-an-introductionhttp://nullprogram.com/blog/2015/03/19/我对汇编知之甚少,所以我最初使用http://gcc.godbolt.org/编写了一个函数并获得反汇编输出,但代码在Windows上无法运行。然后我写了一小段C++代码,用-g-Og编译,然后用gdb得到反汇编的输出。#includeintsquare(in

windows - 符号如何解决在 x86 调试中使用 FPO 遍历堆栈?

在这个答案中:https://stackoverflow.com/a/8646611/192359,解释了在调试x86代码时,即使使用了FPO(帧指针省略),符号也允许调试器显示调用堆栈。给出的解释是:Onthex86PDBscontainFPOinformation,whichallowsthedebuggertoreliablyunwindacallstack.我的问题是这些信息是什么?据我了解,仅知道函数是否具有FPO并不能帮助您找到堆栈指针的原始值,因为这取决于运行时信息。我在这里错过了什么? 最佳答案 从根本上说,总是可以

python - 在 Windows 上激活 Python 虚拟环境

这个问题在这里已经有了答案:Pythonvirtualenvquestions(6个答案)关闭4年前。注意:人们将此标记为与另一个问题重复,但事实并非如此。我的virtualenv有问题,我无法解决它。这可能与VisualStudio的设置方式有关。我一直在关注这个优秀的tutorialonflask我尝试在Windows上激活虚拟环境时遇到问题。你如何执行$venv\Scripts\activate?这应该来自命令提示符还是Powershell?我使用VisualStudio作为我的IDE。它为您创建了一个VS解决方案,该解决方案具有一个基本的flask应用程序。在创建应用程序的过程

Windows 32 位虚拟内存页面映射问题

我正在从这里学习Windows32位虚拟内存页面映射,(我的目标是现代Windows版本,例如Vista、Win7、Server2003/200832位版本。)http://blogs.msdn.com/ericlippert/archive/2009/06/08/out-of-memory-does-not-refer-to-physical-memory.aspx两个困惑,用户空间虚拟内存空间通常限制为2G,但物理磁盘页面存储可能远大于2G。由于磁盘页面的数量多于虚拟内存页面的数量,因此理论上可以将多个磁盘页面映射到一个虚拟地址页面。如果用户请求访问某个虚拟地址,如果多个磁盘页面映

windows - 为什么在 Windows Vista x64 上调用 GlobalMemoryStatus 时可用物理内存 (dwAvailPhys) > 可用虚拟内存 (dwAvailVirtual)

我正在使用MSDN样本进行内存压力测试(请参阅:http://msdn.microsoft.com/en-us/magazine/cc163613.aspx)和专门占用物理内存的该工具的扩展(请参阅http://www.donationcoder.com/Forums/bb/index.php?topic=14895.0;prev_next=next)。我显然对虚拟内存和物理内存之间的区别感到困惑。我以为每个进程都有2GB的虚拟内存(虽然我也读了1.5GB因为“开销”)。我的理解是这个虚拟内存的一些/全部/没有可能是物理内存,而一个进程使用的物理内存量进程可能会随着时间的推移而改变(内

c++ - 调试器主循环

我正在尝试在c++/Windows中实现本文中描述的“调试器主循环”:WritingtheDebugger'sMainLoop但我希望任何抛出的异常都能在屏幕上显示错误消息并被调试器捕获。我知道我可以通过给ContinueDebugEvent一些DBG_值来做到这一点???但我不知道它是什么。这个值是多少?我还注意到,当有内容写入控制台时,控制台应用程序会通知调试器异常。我怎样才能从这些东西中过滤出实际的异常?跟“第一次机会”值有关系吗?谢谢:) 最佳答案 调试器会为被调试者中发生的每个异常接收一个异常事件。如果将DBG_CONTI

c++ - 从客户端应用程序调试动态库

假设我在Debug模式下编译了一个动态库(WindowsDLL和/或Linux共享对象文件,.so),供动态链接到它的客户端应用程序使用。我的源代码可供客户端应用程序开发人员使用。我需要对以下调试场景进行一些说明。我一直理解/假设为了让客户端应用程序调试到我的库中(例如,为了让客户端应用程序开发人员在调试时进入我的源代码,比如在MSVC++中使用F10),他们必须实际构建一个我的库本身的本地拷贝(可以访问我的源代码),或者至少可以在本地访问我的源代码而无需构建它(不确定这是否足够?)。我说得对吗?换句话说,如果客户端应用程序动态链接到我的应用程序,我认为仅仅提供带有调试符号的库(MSV

windows - MFC .dll 调试断言

我正在尝试创建一个shell扩展,但我在这行代码中得到了一个调试断言:_AFXWIN_INLINEHINSTANCEAFXAPIAfxGetResourceHandle(){ASSERT(afxCurrentResourceHandle!=NULL);//herereturnafxCurrentResourceHandle;}它有什么问题?我创建了这个类classCMyExtShellExtApp:publicCWinApp{public:virtualBOOLInitInstance();virtualintExitInstance();DECLARE_MESSAGE_MAP()};