!logexts.loge
开启监控,如果之前没有调用logexts.logi,这个扩展命令会先初始化监控,然后启动。
!logexts.logd
停止监控。这个命令会摘掉所有的Hook,从而让程序自由运行。不过COM的Hook并不会被摘除。
!logexts.logo
显示或者修改输出选项,这里有三种输出方式:1.在调试器中显示,2.输出到一个文本文件,3.输出到lgv文件。其中lgv文件会包含更多的信息,我们可以使用LogViewer进行查看。
!logexts.logc
显示或者控制监控的API分类。
!logexts.logb
显示或者刷新输出缓存。由于如果在监控过程中发生异常,那么扩展可能无法将记录的日志写入文件中,这个时候我们就需要这个命令,手动的将缓存中的数据写入文件。
!logexts.logm
显示和创建模块的包含/排除列表。这可以帮助我们指定记录那些特定模块中的API调用。
http://msdn.microsoft.com/en-us/library/windows/hardware/ff560170(v=vs.85).aspx
category ActivationContext: module KERNEL32.DLL: FailOnFalse ActivateActCtx(HANDLE hActCtx, [out] PULONG_PTR lpCookie); FailOnFalse DeactivateActCtx(DWORD dwFlags, ULONG_PTR upCookie);在%windbg_dir%winextmanifestmain.h文件的最后加入一行 #include “Context.h”
.printf /D "<link cmd=\"!logexts.loge c:\\cmdtree\\log\\ \">Enables logging</link>\n" .printf /D "<link cmd=\"!logexts.logo e *\">sets Logger output</link>\n" .printf /D "<link cmd=\"!logexts.logc e *\">Displays available API categories</link>\n" .printf /D "<link cmd=\"!logexts.logb p;!logexts.logb f\">Displays current output buf</link>\n" .printf /D "<link cmd=\"!logexts.logd\">Disables logging</link>\n" .printf /D "<link cmd=\"!logexts.loge c:\\cmdtree\\log\\;!logexts.logc e *;!logexts.logo e *;!logexts.logb p;!logexts.logb f\">trace api calls</link>\n"