zoukankan      html  css  js  c++  java
  • 使用Visual Studio调试用户模式进程(Debugging a User-Mode Process Using Visual Studio)

    由于本人能力有限,翻译不足之处敬请谅解,欢迎批评指正:sunylat@163.com

    Visual Studio版本:Visual Studio 2015企业版,中文环境。

    MSDN原文:https://msdn.microsoft.com/zh-cn/library/windows/hardware/hh406273(v=vs.85).aspx

         在Visual Studio里,你可以使用Windows用户模式调试器 (Windows User Mode Debugger),把一个正在运行的进程或者产物附加到一个新进程。进程能够运行在正在运行调试器的同一台电脑上,也可以运行在不同的电脑上。

    在同一台电脑上附加一个正在运行的进程

    1. 在Visual Studio 2015里,从“调试”菜单,选择“附加到进程”;其它版本Visual Studio从“工具”菜单,选择“附加到进程”。
    2. 在“附加到进程”对话框中,把“传输”设为“Windows User Mode Debugger”,随后设置“限定符”为“Localhost”。
    3. 在“可用进程”列表中,选择要附加的进程。
    4. 点击“附加”按钮。

    非侵入性调试

         如果你像调试一个正在运行的进程,并且想把对它运行的影响限制在最小程度,你应该非侵入性调试这个进程noninvasively

    在同一台电脑上产生一个新进程

    1. 在Visual Studio里,从“工具”菜单,选择“Launch Under Debugger”。
    2. 在"Launch Under Debugger"对话框中,在”Path to the executable file“文本框中输入要附加程序路径信息,你可以在"Arguments"文本框里面输入参数,在"Working directory"文本框中输入工作目录。
    3. 点击"Launch"按钮。

    调试器创建的进程(also known as spawned processes)和不是调试器创建的进程表现有一些不同。

    代替使用标准堆API,调试器创建的进程使用一种特殊的调试堆。你可以强制一个(spawned processes)使用标准堆来替换调试堆,通过使用 _NO_DEBUG_HEAP 环境变量实现。

     另外,因为目标程序是调试器的一个子进程,它继承了调试器的权限,这种权限可能让目标程序能够执行某些在其它时候不允许的行为,例如:目标程序可能会影响到保护进程。

     从分开的电脑上附加一个正在运行的进程

          有时候,调试器和要被调试的代码运行在不同的电脑上。运行调试器的电脑叫主机(host computer),运行被调试代码的电脑叫目标机(target computer)。你可以配置目标机从主机上的Visual Studio里。配置目标机也被叫做(provisioning)目标机,更多信息,查看: Provision a computer for driver deployment and testing (WDK 8.1).

    配置完目标机之后,你可以在主机的Visual Studio里附加一个正运行在目标机中的进程。

    1. 在Visual Studio 2015里,从“调试”菜单,选择“附加到进程”;其它版本Visual Studio从“工具”菜单,选择“附加到进程”。
    2. 在“附加到进程”对话框中,把“传输”设为“Windows User Mode Debugger”,随后设置“限定符”为目标机。
    3. 在“可用进程”列表中,选择要附加的进程。
    4. 点击“附加”按钮。

    注意:如果你使用不同电脑作为主机和目标机,不要在目标机中安装Visual Studio和WDK,如果Visual Studio和WDK安装到目标机上了就支持调试了。

  • 相关阅读:
    数学之美系列十八 矩阵运算和文本处理中的分类问题
    数学之美系列一 统计语言模型
    数学之美系列十三 信息指纹及其应用
    数学之美系列十六 谈谈最大熵模型
    数学之美系列十五 繁与简 自然语言处理的几位精英
    数学之美系列十七 谈谈搜索引擎作弊问题(Search Engine AntiSPAM)
    数学之美系列三 隐含马尔可夫模型在语言处理中的应用
    数学之美系列十四 谈谈数学模型的重要性
    数学之美系列十二 余弦定理和新闻的分类
    数学之美系列十一 Google 阿卡 47 的制造者阿米特.辛格博士
  • 原文地址:https://www.cnblogs.com/sunylat/p/6246714.html
Copyright © 2011-2022 走看看