摘要: cc682/NetRoc
http://netroc682.spaces.live.com/
.readmem (Read Memory from File)
.readmem 命令从指定文件中读取原始二进制数据并复制到目标机内存中。
语法
.readmem FileName Range
参数
FileName
指定要读取的文件名。可以...
阅读全文
posted @
2008-07-03 16:19 NetRoc/cc682 阅读(60) |
评论 (1) |
编辑 收藏
摘要: cc682/NetRoc
http://netroc682.spaces.live.com/
.srcfix, .lsrcfix (Use Source Server)
.srcfix 和.lsrcfix 命令自动设置源码路径以指示使用了源码服务器。
语法
.srcfix[+] [Paths] .lsrcfix[+] [Paths]
...
阅读全文
posted @
2008-07-03 16:19 NetRoc/cc682 阅读(52) |
评论 (0) |
编辑 收藏
摘要: cc682/NetRoc
http://netroc682.spaces.live.com/
.netuse (Control Network Connections)
.netuse 命令添加一个到网络共享的连接。
语法
.netuse /a "[Local]" "Remote" "[User]" "[Password]"&n...
阅读全文
posted @
2008-07-01 14:09 NetRoc/cc682 阅读(63) |
评论 (0) |
编辑 收藏
cc682/NetRoc
http://netroc682.spaces.live.com/
.ignore_missing_pages (Suppress Missing Page Errors)
.ignore_missing_pages 命令禁止当内核内存转储出现缺页时显示错误信息。
语法
.ignore_missing_pages {1|0}
.ignore_missing_pages
环境
|
模式
|
仅内核模式
|
|
目标
|
仅dump文件调试
|
|
平台
|
所有
|
注释
.ignore_missing_pages 1 命令使得在调试内核内存转储时禁止缺页错误信息。.ignore_missing_pages 0 则会显示这些命令。默认情况下调试器会显示错误信息。
如果不带参数,.ignore_missing_pages 显示当前的设置。
附加信息
关于如何调试这些Dump文件的更多信息,查看内核模式Dump。
.imgscan (Find Image Headers)
.imgscan 命令在虚拟内存中查找映像头。
语法
.imgscan [Options]
参数
Options
任意下面的选项:
/r Range
指定要搜索的范围。该语法的更多信息,查看地址和地址区域语法。如果仅指定一个地址,则调试器搜索从该位置开始的0x10000字节范围。
/l
为任何已找到的映像头加载模块信息。
/v
显示详细信息。
环境
|
模式
|
用户模式、内核模式
|
|
目标
|
活动目标、崩溃转储
|
|
平台
|
所有
|
注释
如果不使用/r参数,调试器会搜索所有虚拟内存区域。
.imgscan 命令显示找到的任何映像头和头类型。映像头类型包括可移植映像文件头(PE)和Microsoft MS-DOS MZ头。
下面是.imgscan命令的示例。
0:000> .imgscan
MZ at 00400000, prot 00000002, type 01000000 - size 2d000
MZ at 77f80000, prot 00000002, type 01000000 - size 7d000
Name: ntdll.dll
MZ at 7c570000, prot 00000002, type 01000000 - size b8000
Name: KERNEL32.dll
.kdfiles (Set Driver Replacement Map)
.kdfiles 命令读取一个文件并将它的内容作为驱动替换映射。
语法
.kdfiles MapFile
.kdfiles -m OldDriver NewDriver
.kdfiles -s SaveFile
.kdfiles -c
.kdfiles
参数
MapFile
指定要读取的驱动替换映射文件。
-m
在当前关联列表(association list)中添加驱动替换关联。
OldDriver
指定目标机上的旧驱动的路径和文件名。OldDriver和语法和驱动替换文件中map之后的第一行相同。该语法的更多信息,查看映射驱动文件。
NewDriver
指定新驱动的路径和文件名。该驱动可以在主控机上或者其他的网络路径中。NewDriver 的语法和驱动替换文件中map之后的第二行相同。该语法的更多信息,查看映射驱动文件。
-s
创建一个文件并将当前的驱动替换连接写入进去。
SaveFile
指定要创建的文件名。
-c
删除已存在的驱动替换映射。 (该选项并不改变映射文件本身,而是清除调试器的当前映射设置。)
环境
可以在Microsoft Windows XP和之后版本的Windows中使用.kdfiles 命令。如果在之前的Windows中使用,命令不会产生错误但是也不会有任何作用。
|
模式
|
仅内核模式
|
|
目标
|
仅活动调试
|
|
平台
|
仅x86和Itanium处理器
|
注释
如果不带参数使用 .kdfiles ,调试器显示当前的驱动替换映射文件的路径和名字以及当前的替换关联的集合。
运行该命令时,会读取指定的MapFile文件。如果找不到文件或者没有包含适当格式的文本,调试器会显示一个状态信息"Unable to load file associations"。
如果指定文件是以正确的驱动替换映射文件格式的,调试器加载该文件并将它们作为驱动替换映射。该映射一直保持到退出调试器或者执行了另一个.kdfiles 命令为止。
读取该文件后,后来对它的改变不会作用于驱动替换映射。 (除非改变之后再次使用.kdfiles 命令)。
需求
版本: 在Windows XP之后的Windows操作系统中支持。
附加信息
驱动替换和其他内核模块的示例、驱动替换映射文件格式的说明,以及使用该功能的限制,查看映射驱动文件。
.kframes (Set Stack Length)
.kframes 命令设置堆栈回溯显示的默认长度。
语法
.kframes FrameCountDefault
参数
FrameCountDefault
指定当使用堆栈回溯命令时要显示的堆栈帧个数。
环境
|
模式
|
用户模式、内核模式
|
|
目标
|
活动目标、崩溃转储
|
|
平台
|
所有
|
注释
可以使用.kframes 命令来 设置堆栈回溯显示的默认长度。该长度会控制k、kb、 kp、kP和 kv命令显示的帧个数,以及kd命令显示的 DWORD_PTR个数。
可以在这些命令中使用FrameCount 或WordCount 参数来覆盖默认长度。
如果没有执行过.kframes 命令,默认数量为20 (0x14)。
参见
k, kb, kd, kp, kP, kv (Display Stack Backtrace)
.kill (Kill Process)
用户模式下, .kill 命令结束调试会话并关闭目标程序。
内核模式下,.kill 命令结束目标机上的一个进程。
语法
用户模式
.kill
内核模式
.kill Process
参数
Process
指定要结束的进程的地址。如果省略Process或者指定为0,调试器结束当前系统状态下的默认进程。
环境
内核模式下,该命令仅在Microsoft Windows Server 2003和之后版本的Windows中支持。
|
模式
|
用户模式、内核模式
|
|
目标
|
仅活动调试
|
|
平台
|
所有
|
注释
用户模式下,.kill命令结束调试会话、关闭目标程序并且将调试器返回到静止模式。
内核模式下,该命令为了终止选定进程,会在目标机上调度它。下一次目标可以运行时(例如使用g (Go) 命令),指定进程就会结束。
本地内核调试时不能使用该命令。
需求
版本: (内核模式) 在Windows Server 2003和之后的系统中支持。
附加信息
关于如何结束用户模式目标或者停止附加的更多信息,查看结束调试会话。
.lastevent (Display Last Event)
.lastevent 命令显示最近一次发生的异常或事件。
语法
.lastevent
环境
|
模式
|
用户模式、内核模式
|
|
目标
|
活动目标、崩溃转储
|
|
平台
|
所有
|
注释
中断到调试器总是会产生一个异常。当调试器能够接受输入时总是存在一个最近事件(last event)的。如果使用CTRL+C、 CTRL+BREAK或Debug | Break中断到调试器,总是会产生一个of 0x80000003异常代码。
附加信息
关于异常和事件的更多信息,查看控制异常和事件。
.lines (Toggle Source Line Support)
.lines 命令启用或者禁用对源码行信息的支持。
语法
.lines [-e|-d|-t]
参数
-e
启用源码行支持。
-d
禁用源码行支持。
-t
打开或关闭源码行支持。如果.lines没有指定参数,.lines 命令的默认行为就是在是否支持源码行之间切换。
环境
|
模式
|
用户模式、内核模式
|
|
目标
|
活动目标、崩溃转储
|
|
平台
|
所有
|
注释
进行源码调试前必须先启用源码行支持。这种支持使得调试器加载源码行符号。
可以通过.lines 命令或-lines 命令行选项启用源码行支持。如果已经打开了源码行支持,可以使用.lines 命令来禁用。
默认情况下,如果不使用.lines 命令,WinDbg打开源码行支持,而命令行调试器 (KD、CDB、 NTSD) 是关闭的。关于如何改变该设置的更多信息,查看设置符号选项。
附加信息
源码调试以及相关命令的更多信息,查看源码模式调试。
.load, .loadby (Load Extension DLL)
.load 和.loadby 命令将一个新的扩展DLL加载到调试器中。
语法
.load DLLName
!DLLName.load
.loadby DLLName ModuleName
参数
DLLName
指定要加载的调试器扩展DLL。如果使用.load 命令,DLLName 需要包含完整路径。如果使用.loadby 命令,DLLName 应该只包含文件名。
ModuleName
指定位于DLLName 指定的扩展DLL相同目录下的模块的模块名。
环境
|
模式
|
用户模式、内核模式
|
|
目标
|
活动目标、崩溃转储
|
|
平台
|
所有
|
注释
使用.load命令时必须指定全路径。
使用.loadby 命令时不需要指定路径。调试器会找到ModuleName 参数指定的模块,然后使用它的路径来加载扩展DLL。如果调试器找不到该模块或者找不到扩展DLL,会收到一条提示这个问题的错误信息。指定的模块和扩展DLL之间不需要任何关系。使用.loadby 命令是可以避免输入很长的路径的简便方法。
.load 或 .loadby 命令完成后,就可以访问该扩展中的命令了。
要加载一个扩展DLL,可以使用下面的方法之一:
- 使用 .load 或 .loadby 命令。
- 使用完整的!DLLName.ExtensionCommand 语法。如果调试器还没有加载DLLName.dll,则会在这个时候加载。
附加信息
关于如何加载、卸载和控制扩展的更多信息,查看加载调试器扩展DLL。
.locale (Set Locale)
.locale 命令设置或显示当前区域。
语法
.locale [Locale]
参数
Locale
指定需要的区域设置。如果省略该参数,调试器显示当前区域设置。
环境
|
模式
|
用户模式、内核模式
|
|
目标
|
活动目标、崩溃转储
|
|
平台
|
所有
|
注释
区域化设置控制Unicode字符串如何显示
下面是.locale命令的示例。
kd> .locale
Locale: C
kd> .locale E
Locale: English_United States.1252
kd> .locale c
Locale: Catalan_Spain.1252
kd> .locale C
Locale: C
附加信息
关于区域设置的更多信息,查看MSDN Library中的setlocale函数。
.logappend (Append Log File)
.logappend 命令将调试器命令窗口中的事件和命令添加到指定的日志文件末尾。
语法
.logappend [/u] [FileName]
参数
/u
以Unicode格式写入日志文件。如果省略该参数,调试器以ASCII (ANSI) 格式写入日志。
注意 如果添加到已存在的日志文件末尾,只有当该文件是使用/u 选项创建时才能使用/u 参数。否则日志文件中会同时包含ASCII和Unicode字符,造成阅读困难。
FileName
指定日志文件名。可以是全路径或者仅仅是文件名如果文件名包含空格,将FileName 用引号括起来。如果没有指定路径,调试器使用当前目录。如果省略FileName,调试器使用Dbgeng.log 作为名字。
环境
|
模式
|
用户模式、内核模式
|
|
目标
|
活动目标、崩溃转储
|
|
平台
|
所有
|
注释
如果运行.logappend 命令时已经打开了日志文件,调试器会关闭它。如果指定已存在的文件,调试器会将新的信息添加到末尾。如果文件不存在,调试器会创建它。
附加信息
关于其他作用于日志文件的命令的更多信息,查看记录日志文件。
.logclose (Close Log File)
.logclose 命令关闭任何已打开的日志文件。
语法
.logclose
环境
|
模式
|
用户模式、内核模式
|
|
目标
|
活动目标、崩溃转储
|
|
平台
|
所有
|
附加信息
关于其他作用于日志文件的命令的更多信息,查看记录日志文件。
.logfile (Display Log File Status)
.logfile命令查看日志文件是否存在并显示文件状态。
语法
.logfile
环境
|
模式
|
用户模式、内核模式
|
|
目标
|
活动目标、崩溃转储
|
|
平台
|
所有
|
附加信息
关于其他作用于日志文件的命令的更多信息,查看记录日志文件。
.logopen (Open Log File)
.logopen 命令将调试器命令窗口 中的事件和命令写入一个新的日志文件。
语法
.logopen [Options] [FileName]
.logopen /d
参数
Options
任意下面的选项:
/t
在日志文件名中添加进程ID、当前日期和时间。这些信息会插入到文件名后,扩展名之前。
/u
以Unicode形式写入日志文件。如果省略该选项,调试器以ASCII (ANSI)格式记录日志。
FileName
指定日志文件名。可以是全路径或者仅仅是文件名如果文件名包含空格,将FileName 用引号括起来。如果没有指定路径,调试器使用当前目录。如果省略FileName,调试器使用Dbgeng.log 作为名字。
/d
基于目标进程的名字或目标机和状态莱自动生成文件名。该文件总是使用.log 扩展名。
环境
|
模式
|
用户模式、内核模式
|
|
目标
|
活动目标、崩溃转储
|
|
平台
|
所有
|
注释
如果运行.logopen 命令时已经打开了日志文件,调试器会关闭它。如果指定已存在的文件,它的内容会被覆盖。
.logopen /t 命令在日志文件名中加入进程ID、日期和时间。下面例子中,进程ID的16进制是0x02BC、日期是February 28, 2005、时间是9:05:50.935。
0:000> .logopen /t c:\logs\mylogfile.txt
Opened log file 'c:\logs\mylogfile_02BC_2005-02-28_09-05-50-935.txt'
附加信息
关于其他作用于日志文件的命令的更多信息,查看记录日志文件。
posted @
2008-06-30 11:23 NetRoc/cc682 阅读(56) |
评论 (0) |
编辑 收藏
摘要: cc682/NetRoc
http://netroc682.spaces.live.com/
.f+, .f- (Shift Local Context)
.f+ 命令将帧序号移动到当前堆栈中的下一帧。.f- 命令将帧序号移动到当前堆栈中的上一帧。
语法
.f+ .f-
环境
...
阅读全文
posted @
2008-06-27 13:38 NetRoc/cc682 阅读(73) |
评论 (0) |
编辑 收藏
cc682/NetRoc
http://netroc682.spaces.live.com/
.effmach (Effective Machine)
.effmach 命令显示或更改调试器使用的处理器模式。
语法
.effmach [MachineType]
参数
MachineType
指定调试器为该会话使用的处理器类型。如果省略该参数,调试器显示当前的机器类型。
可以输入下面的机器类型之一。
|
机器类型
|
说明
|
|
.
|
使用目标机的处理器模式。
|
|
#
|
使用最近一次事件的代码所执行的处理器模式。
|
|
x86
|
使用x86处理器模式。
|
|
amd64
|
使用x64处理器模式。
|
|
ia64
|
使用Itanium处理器模式。
|
|
ebc
|
使用EFI字节码处理器模式。
|
环境
|
模式
|
用户模式、内核模式
|
|
目标
|
活动目标、崩溃转储
|
|
平台
|
所有
|
注释
处理器模式会影响到一些调试器特性:
- 堆栈回溯时使用哪一种处理器分析器(unwinder)。
- 处理使用32位还是64位指针。
- 使用什么处理器寄存器集合。
.enable_long_status (Enable Long Integer Display)
.enable_long_status 命令指定调试器以10进制格式还是默认基数形式显示长整数。
语法
.enable_long_status 0
.enable_long_status 1
参数
0
以10进制形式显示所有长整数。这是调试器的默认行为。
1
以默认基数显示所有长整数。
环境
|
模式
|
用户模式、内核模式
|
|
目标
|
活动目标、崩溃转储
|
|
平台
|
所有
|
注释
.enable_long_status 命令作用于dt (Display Type) 命令的输出。
在WinDbg中,.enable_long_status 也作用于Locals 窗口和 Watch 窗口的显示。这些窗口在执行.enable_long_status后会自动刷新。
该命令仅作用于长整数的显示。使用.force_radix_output (Use Radix for Integers) 命令来控制标准整型以10进制还是默认基数显示。
注意 dv (Display Local Variables) 命令总是以当前基数显示长整数。
使用n (Set Number Base) 命令来改变默认基数。
.enable_unicode (Enable Unicode Display)
.enable_unicode 命令指示调试器是否将USHORT指针和数组作为Unicode字符串来显示。
语法
.enable_unicode 0
.enable_unicode 1
参数
0
将所有16位(USHORT)数组和指针显示为短整型。这是调试器的默认行为。
1
将所有16位(USHORT)数组和指针显示为Unicode字符串。
环境
|
模式
|
用户模式、内核模式
|
|
目标
|
活动目标、崩溃转储
|
|
平台
|
所有
|
注释
.enable_unicode 命令作用于dt (Display Type) 命令的输出。
在WinDbg中,.enable_unicode也作用于Locals 窗口和 Watch 窗口的显示。这些窗口在执行.enable_unicode后会自动刷新
也可以在Locals或Watch窗口的快捷菜单中选择或清除 Display 16-bit values as Unicode 来设置对USHORT数组和指针的显示。
参见
ds, dS (Display String)
.endpsrv (End Process Server)
.endpsrv 命令关闭当前process server 或KD connection server。
语法
.endpsrv
环境
只有在进行通过进程服务器或者KD连接服务器的远程调试时才能使用该命令。
|
模式
|
用户模式、内核模式
|
|
目标
|
活动目标、崩溃转储
|
|
平台
|
所有
|
注释
.endpsrv 命令结束当前连接到灵巧客户端上的进程服务器或者KD连接服务器。
如果希望在运行进程服务器或KD连接服务器的机器上结束他们,可以使用任务管理器来结束进程 (dbgsrv.exe 或 kdsrv.exe)。
.endpsrv 命令可以结束进程服务器或KD连接服务器,但是它不能结束调试服务器。更多信息,查看控制远程调试会话。
附加信息
关于这些服务器的更多信息,查看进程服务器(用户模式) 或 KD 连接服务器(内核模式)
.endsrv (End Debugging Server)
.endsrv 命令使得调试器取消一个活动的调试服务器。
语法
.endsrv ServerID
参数
ServerID
指定调试服务器的ID。
环境
只有当进行通过调试器的远程调试时才能使用该命令。
|
模式
|
仅用户模式
|
|
目标
|
活动目标、崩溃转储
|
|
平台
|
所有
|
注释
必须从调试服务器或者某个连接到调试服务器上的调试客户端上执行.endsrv 命令。
要查看调试服务器的ID,使用.servers (List Debugging Servers) 命令。
.endsrv 命令用于结束调试服务器,但是通常它不能用来结束进程服务器或KD连接服务器。一般来说,进程服务器是由DbgSrv程序启动的,而KD连接服务器由KdSrv程序启动;使用这些方法时,.endsrv 命令不能结束它们 (关于如何结束它们的信息,查看控制进程服务器会话和控制KD连接服务器会话)。但是,如果某个DbgEng程序或者扩展命令通过调用 IDebugClient::StartProcessServer方法来创建进程服务器,则.endsrv 命令可以用来结束它。由于ID号是从0开始连续指派的,所以一般使用.endsrv 0就可以了。
如果取消一个调试服务器,就可以避免之后再有调试客户端附加到它上面。但是,取消调试服务器并不能让任何当前已附加到服务器上的客户端退出。
考虑到以下的情况,假设使用了下面例子的方法来启动调试服务器。
0:000> .server npipe:pipe=rabbit
Server started with 'npipe:pipe=rabbit'
0:000> .server tcp:port=7
Server started with 'tcp:port=7'
之后又决定像下面一样使用密码。
0:000> .server npipe:pipe=tiger,password=hardtoguess
Server started with 'npipe:pipe=tiger,password=hardtoguess'
但是先前的服务器仍然在运行,所以需要像下面一样关闭他们。
0:000> .servers
0 - Debugger Server - npipe:Pipe=rabbit
1 - Debugger Server - tcp:Port=7
2 - Debugger Server - npipe:Pipe=tiger,Password=*
0:000> .endsrv 0
Server told to exit. Actual exit may be delayed until
the next connection attempt.
0:000> .endsrv 1
Server told to exit. Actual exit may be delayed until
the next connection attempt.
0:000> .servers
0 - <Disabled, exit pending>
1 - <Disabled, exit pending>
2 - Debugger Server - npipe:Pipe=tiger,Password=*
最后,要使用.clients (List Debugging Clients) 命令确认没有人再通过先前激活的服务器附加到计算机上。
0:000> .clients
HotMachine\HostUser, last active Mon Mar 04 16:05:21 2002
警告 通过TCP、BPIPE或COM协议使用密码只能提供有限的保护,因为密码是没有加密的。通过SSL或SPIPE协议使用密码时,密码是加密的。如果需要安全的远程会话,必须使用SSL或SPIPE协议。
附加信息
关于远程调试的更多信息,查看通过调试器进行的远程调试。
.enumtag (Enumerate Secondary Callback Data)
.enumtag 命令显示所有次级错误检查回调数据(econdary bug check callback data)和所有数据标签(data tags)。
语法
.enumtag
环境
|
模式
|
仅内核模式
|
|
目标
|
活动目标、崩溃转储
|
|
平台
|
所有
|
注释
只有在产生错误检查后,或者调试内核模式崩溃转储文件时可以使用.enumtag 命令。
对于每个次级错误检查回调数据块,.enumtag 命令显示标签 (以GUID 格式) 和数据(以字节和ASCII 字符形式)。
例如下面这个例子。
kd> .enumtag
{87654321-0000-0000-0000000000000000} - 0xf9c bytes
4D 5A 90 00 03 00 00 00 04 00 00 00 FF FF 00 00 MZ..............
B8 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 ........@.......
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
....
00 00 00 00 00 00 00 00 00 00 00 00 ............
{12345678-0000-0000-0000000000000000} - 0x298 bytes
F4 BF 7B 80 F4 BF 7B 80 00 00 00 00 00 00 00 00 ..{...{.........
4B 44 42 47 98 02 00 00 00 20 4D 80 00 00 00 00 KDBG..... M.....
54 A5 57 80 00 00 00 00 A0 50 5A 80 00 00 00 00 T.W......PZ.....
40 01 08 00 18 00 00 00 BC 7D 50 80 00 00 00 00 @........}P.....
....
00 00 00 00 00 00 00 00 ........
该例子中,第一段次级数据使用GUID ({87654321-0000-0000-0000000000000000})作为标签,第二段数据使用GUID ({12345678-0000-0000-0000000000000000}) 作为标签。但是该数据并不是很有用的格式。
附加信息
关于显示该数据得其他方法的信息,查看解读错误检查回调数据。
.event_code (Display Event Code)
.event_code 当前事件的指令。
语法
.event_code
环境
|
模式
|
用户模式、内核模式
|
|
目标
|
仅活动调试
|
|
平台
|
所有
|
注释
.event_code 命令显示当前事件的指令指针处的16进制指令。如果可能的话,最多显示64字节的指令。
.eventlog (Display Recent Events)
.eventlog 命令显示最近一次Microsoft Win32 调试事件,例如模块加载、进程创建和终止以及线程创建和终止。
语法
.eventlog
环境
|
模式
|
用户模式、内核模式
|
|
目标
|
活动目标、崩溃转储
|
|
平台
|
所有
|
注释
.eventlog 命令仅显示1024个字符。
下面是.eventlog 命令的例子。
0:000> .eventlog
0904.1014: Load module C:\Windows\system32\ADVAPI32.dll at 000007fe`fed80000
0904.1014: Load module C:\Windows\system32\RPCRT4.dll at 000007fe`fe8c0000
0904.1014: Load module C:\Windows\system32\GDI32.dll at 000007fe`fea00000
0904.1014: Load module C:\Windows\system32\USER32.dll at 00000000`76b10000
0904.1014: Load module C:\Windows\system32\msvcrt.dll at 000007fe`fe450000
0904.1014: Load module C:\Windows\system32\COMDLG32.dll at 000007fe`fecf0000
0904.1014: Load module C:\Windows\system32\SHLWAPI.dll at 000007fe`fe1f0000
0904.1014: Load module C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b6414
4ccf1df_6.0.6000.16386_none_1559f1c6f365a7fa\COMCTL32.dll at 000007fe`fbda0000
0904.1014: Load module C:\Windows\system32\SHELL32.dll at 000007fe`fd4a0000
0904.1014: Load module C:\Windows\system32\WINSPOOL.DRV at 000007fe`f77d0000
0904.1014: Load module C:\Windows\system32\ole32.dll at 000007fe`feb10000
0904.1014: Load module C:\Windows\system32\OLEAUT32.dll at 000007fe`feeb0000
Last event: Break instruction exception - code 80000003 (first chance)
.exepath (Set Executable Path)
.exepath 命令设置或显示可执行文件搜索路径。
语法
.exepath[+] [Directory [; ...]]
参数
+
指示调试器将新的目录添加到可执行文件搜索路径末尾 (而不是替换该路径)。
Directory
指定要加入搜索路径的一个或多个目录。如果不指定Directory,则显示当前搜索路径。可以使用分号分隔多个目录。
环境
|
模式
|
用户模式、内核模式
|
|
目标
|
活动目标、崩溃转储
|
|
平台
|
所有
|
附加信息
关于如何改变可执行文件搜索路径的更多信息,查看可执行映像路径。
.expr (Choose Expression Evaluator)
.expr 命令指定默认的表达式求值器。
语法
.expr /s masm
.expr /s c++
.expr /q
.expr
参数
/s masm
将默认表达式类型改变为Microsoft Assembler expression evaluator (MASM)。这是调试器启动时的默认类型。
/s c++
将默认表达式类型改变为C++ 表达式。
/q
显示可用的表达式类型的列表。
环境
|
模式
|
用户模式、内核模式
|
|
目标
|
活动目标、崩溃转储
|
|
平台
|
所有
|
注释
不带参数使用 .expr 时,调试器显示当前的默认表达式类型。
?? (Evaluate C++ Expression) 命令Watch窗口、和 Locals窗口总是使用C++表达式语法。所有其它命令和调试器信息窗口使用默认的表达式求值器。
关于如何控制使用哪一种语法的信息,查看表达式求值。语法的更多信息,查看 数值表达式语法。
.exptr (Display Exception Pointers)
.exptr 命令显示一个EXCEPTION_POINTERS结构。
语法
.exptr Address
参数
Address
指定EXCEPTION_POINTERS结构的地址。
环境
|
模式
|
用户模式、内核模式
|
|
目标
|
活动目标、崩溃转储
|
|
平台
|
所有
|
.exr (Display Exception Record)
.exr 命令显示某个异常记录的内容。
语法
.exr Address
.exr -1
参数
Address
指定异常记录的地址。如果指定–1作为地址,调试器显示最近一次异常。
环境
|
模式
|
用户模式、内核模式
|
|
目标
|
活动目标、崩溃转储
|
|
平台
|
所有
|
注释
.exr 命令显示调试器在目标机上遇到的异常的相关信息。该信息包括异常地址、异常代码、异常标志和异常的各种参数的列表。
可以通过!pcr 扩展命令来得到Address。
.exr 命令常常用来调试错误检查0x1E。更多信息和示例,查看Bug Check 0x1E (KMODE_EXCEPTION_NOT_HANDLED)。
.extpath (Set Extension Path)
.extpath 命令设置或显示扩展DLL搜索路径。
语法
.extpath[+] [Directory [; ...]]
参数
+
指示调试器应该把新的目路添加到扩展DLL搜索路径末尾 (而不是替换该路径)。
Directory
指定一个或多个要添加的搜索路径。如果不指定Directory,则显示当前搜索路径。可以用分号分隔多个目录。
环境
|
模式
|
用户模式、内核模式
|
|
目标
|
活动目标、崩溃转储
|
|
平台
|
所有
|
附加信息
关于扩展DLL的搜索和加载的更多信息,查看加载调试器扩展DLL。
posted @
2008-06-26 10:24 NetRoc/cc682 阅读(70) |
评论 (0) |
编辑 收藏