登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

herb

喜欢写博,喜欢安静,喜欢挑战!

 
 
 

日志

 
 

NTSD详解  

2009-07-25 22:01:49|  分类: Windows Support |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

ntsd从2000开始就是系统自带的用户态调试工具。被调试器附着(attach)的进程会随调试器一起退出,所以可以用来在命令行下终止进程。使用ntsd自动就获得了debug权限,从而能杀掉大部分的进程。只有System、SMSS.EXE和CSRSS.EXE不能杀。前两个是纯内核态的,最后那个是Win32子系统,ntsd本身需要它。ntsd会新开一个调试窗口,本来在纯命令行下无法控制,但如果只是简单的命令,比如退出(q),用-c参数从命令行传递就行了
【ntsd -c q -p pid】
如果能知道进程的pid,比如explorer.exe的pid为196,运行cmd后输入"ntsd -c q -p 136"即可杀掉
【ntsd -c q -pn 进程名】
只要知道了进程的名称,比如explorer.exe,运行cmd后输入"ntsd -c q -pn explorer.exe"即可杀掉
但是,如果同一个进程(比如iexplorer.exe)开了多个,就会出现错误
所以,ntsd 每次只能结束一个单独出现的进程

下面为ntsd的用法和帮助

ntsd
usage: ntsd [-?] [-2] [-d] [-g] [-G] [-myob] [-lines] [-n] [-o] [-s] [-v] [-w]
             [-r BreakErrorLevel]   [-t PrintErrorLevel]
             [-hd] [-pd] [-pe] [-pt #] [-pv] [-x | -x{e|d|n|i} <event>]
             [-- | -p pid | -pn name | command-line | -z CrashDmpFile]
             [-zp CrashPageFile] [-premote transport] [-robp]
             [-aDllName] [-c "command"] [-i ImagePath] [-y SymbolsPath]
             [-clines #] [-srcpath SourcePath] [-QR \\machine] [-wake <pid>]
             [-remote transport:server=name,portid] [-server transport:portid]
             [-ses] [-sfce] [-sicv] [-snul] [-noio] [-failinc] [-noshell]

以下为翻译的帮助文件,仅供参考。需要源文件的,直接cmd下ntsd/?就可以了


【command-line】 在dubugger模式下运行
【--】 默认为执行【-G -g -o -p -1 -d -pd】参数
【-aDllName】设置默认的扩展dll
【-c】执行后面的dubugger命令
【-clines】 number of lines of output history retrieved by a remote client
【-failinc】失败时产生不完全的符号和模型
【-d】 通过DbgPrint向kernel(核心)发送debugger输出信息
     注: -d   不可与debugger remoting同用
          -d   只能在kernel(核心)debugger 可以用时才能使用
【-g】在debuggee下忽略初始化断点
【-G】忽略程序结束时的最终断点
【-hd】规定debug命令集不能用于(dubuggee)创建的程序。该参数只能作用在Windows Whistler(windows xp的测试版本)系统上
【-o】 debug所有由debuggee载入的程序
【-p pid】指定要绑定的进程的十进制ID(就是pid)
【-pd】 指定debugger自动与绑定的程序分离
【-pe】 规定任何绑定都要对应一个存在的debug端口
【-pt #】指定中断超时时间
【-pv】 指定任何绑定都是封闭的,不对外共享
【-r】 指定0-3等级的中断(SeeSetErrorLevel)
【-robp】允许在只读内存中设置断点
【-t】 指定显示0-3级的错误(SeeSetErrorLevel)
【-w】 指定在一个单独的VDM(DOS虚拟机)中debug 16位应用程序
【-x】 在AV排除项中设置第二个可选断点
      -x{e|d|n|i} <event> 为指定的事件设置中断状态
【-2】 为debuggee创建一个单独核心的窗口

 

  评论这张
 
阅读(591)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018