进程与线程
来源:互联网 发布:win10关于windows在哪 编辑:程序博客网 时间:2024/06/17 20:31
3 进程与线程
既可以显示进程和线程列表,又可以显示指定进程或线程的详细信息。调试命令可以提供比taskmgr更详尽的进程资料,在调试过程中不可或缺。
3.1 进程命令
进程命令包括这些内容:显示进程列表、进程环境块、设置进程环境。
进程列表
多个命令可显示进程列表,但一般只能在特定情况下使用,它们是:|、.tlist、!process和!dml_proc。
竖线命令显示当前被调试进程列表的状态信息,这个命令在本章开头已作过介绍,命令格式如下:
| [进程号]
请注意这里的定语:被调试进程列表。大多数情况下调试器中只有一个被调试进程,但可以通过.attach或者.create命令同时挂载或创建多个调试对象。当同时对多个进程调试时,进程号是从0开始的整数。下图中显示了两个被调试的进程。
如何在多个进程间进行切换呢?使用s参数即可,这一点前文已然讲过。
.tlist [选项] [模块名]
.tlist命令显示当前系统中的进程列表,他是目前唯一可在用户模式下显示系统当前进程列表的命令。它有两个可选项:-v显示进程详细信息,-c只显示当前进程信息。
内核模式下同样可以使用.tlist,但更好的命令是!process。!process在内核模式下显示进程列表,和指定进程的详细信息,也能显示进程中的线程和调用栈内容。典型格式如下:
!process: 显示调试器当前运行进程信息
!process 0 0: 显示进程列表
!process PID: PID是进程ID,根据进程ID显示此进程详细信息。
此外,还有一个DML版本的进程列表命令,如下:
!dml_proc [进程号|进程地址]
此命令可以看成“|”和“!process”命令的DML合并版本,可在用户与内核模式下使用。显示的进程信息偏重于线程和调用栈。用户模式下此命令和“|”一样,只能显示被调试进程的信息。右图是内核模式下使用此命令的效果:
进程信息
进程环境块(Process Enviroment Block)是内核结构体,使用!peb命令参看其信息,但也可以用dt命令查看完整的结构体定义。格式如下:
!peb [地址]
如果未设置PEB地址,则默认为当前进程。内核模式下可通过!process命令获取PEB结构体地址;用户模式下只能显示当前进程的PEB信息,故而一般不带参数。
dt nt!_peb 地址
此命令显示系统nt模块中所定义的内核结构体PEB详细内容。使用之前必须先熟悉结构体定义。
进程切换
- 进程与线程线程
- 进程与线程
- 进程与线程
- 进程与线程
- 进程与线程
- 进程与线程
- 进程与线程
- 进程与线程
- 进程与线程
- 进程与线程
- 进程与线程
- 进程与线程
- 线程与进程
- 线程与进程
- 进程与线程
- 进程与线程
- 线程与进程
- 进程与线程
- 为什么用内部类,java的垃圾回收机制
- POJ 2594
- 2014届百田校招笔试
- 纯忽悠程序员的开发要求(5):开发语言不重要,重要的是思想! .
- 二叉树的遍历
- 进程与线程
- js关闭当前页面(窗口)的几种方式总结
- 10 个你需要了解的最佳 javascript 开发实践
- Your build settings specify a provisioning profile with the UUID, no provisioning profile was
- 打成jar包 在命令行下执行java工程
- cocos2d-x动作原理
- android soundrecorder之二 应用层到HAL实现
- 二叉树系列文章之一 二叉树的性质
- IOS 6 自动布局 入门-1