中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-10 06:56
47,811 主题排行 / 349,897 发帖 / 今日 2 篇 / 48,255 会员排行
DOS批处理 & 脚本技术(批处理室) » [求助]ntsd关闭进程的问题?
可打印版本  2,290 / 19
第16楼 everest79 发表于 2008-10-29 11:46
金牌会员 发帖 1,127 积分 2,564
NTSD 调试程序在启动时要求用户指定一个要连接的进程。使用 TLIST 或 PVIEWER,您可以获得某个现有进程的进程 ID,然后键入 NTSD -p pid 来调试这个进程。NTSD 命令行使用如下的句法:

NTSD [options] imagefile

其中,imagefile 是要调试的映像名称,options 是下面选项之一:

表 1. NTSD 映像文件选项

选项 说明
-2 打开一个用于调试字符模式的应用程序的新窗口
-d 将输出重定向到调试终端
-g 使执行自动通过第一个断点
-G 使 NTSD 在子程序终止时立即退出
o 启用多个进程的调试,默认值为由调试程序衍生的一个进程
-p 指定调试由进程 ID 标识的进程
-v 产生详细的输出


例如,假设 inetinfo.exe 的进程 ID 为 104。键入以下命令将 NTSD 调试程序连接到 inetinfo 进程 (IIS)。

NTSD -p 104

也可使用 NTSD 启动一个新进程来进行调试。例如,NTSD notepad.exe 将启动一个新的 notepad.exe 进程,并与它建立连接。

一旦连接到某个进程,您就可以用各种命令来查看堆栈、设置断点、转储内存,等等。

表 2. 常用命令

命令 含义
~ 显示所有线程的一个列表
KB 显示当前线程的堆栈轨迹
~*KB 显示所有线程的堆栈轨迹
R 显示当前帧的寄存器输出
U 反汇编代码并显示过程名和偏移量
D[type][<range>] 转储内存
BP[#] <address> 设置断点
BC[<bp>] 清除一个或多个断点
BD[<bp>] 禁用一个或多个断点
BE[<bp>] 启用一个或多个断点
BL[<bp>] 列出一个或多个断点


做个实验看看
例如你系统进程 1234为notepad.exe
执行ntsd -p 1234打开调试窗口
输入q
ntsd退出,被关联的进程也跟着退了了

ntsd不能终止的进程是其进程根本就不充许连接或丢弃这样的请求,再有就是最低需要administrator才有80%的保障会结束你选择的进程,system权限大概会有95%吧,嘿嘿
ntsd其实是一个debug程序,关闭进程是利用了ntsd退出时会终止与其关联的程序
第17楼 kgdetg1127 发表于 2008-10-29 15:22
初级用户 发帖 89 积分 158
批处理使用了NTSD.EXE命令,问题出在你的批处理的命名,使用了"NTSD"字眼,命名为1.bat试试。
第18楼 newsuper 发表于 2008-10-29 19:47
新手上路 发帖 15 积分 18
为了跟楼主保持一致,我用6楼的代码测试了一遍,只是加了一条打开记事本的语句。
结果跟HAT版主的一样啊。

第19楼 newsuper 发表于 2008-10-29 19:50
新手上路 发帖 15 积分 18
Originally posted by kgdetg1127 at 2008-10-29 15:22:
批处理使用了NTSD.EXE命令,问题出在你的批处理的命名,使用了"NTSD"字眼,命名为1.bat试试。


这个问题我也有同感,前天写了一个小东西,里面就一条 msg /w %username% 呵呵
保存为msg.bat,结果怎么也运行不了,后来换了文件名才可以运行了,真是需要注意啊。
第20楼 HAT 发表于 2008-10-29 19:53
版主 发帖 5,017 积分 9,023
Re 18楼
为节约论坛空间以及加快他人访问速度,上传图片时请勿使用bmp格式,推荐使用png/jpg/gif等格式。
上一页  1 2
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023