---------------------------BUG修复及改进--------------------------------------
2008.05.05
已修复:2个可能导致程序崩溃的BUG
已修复:1个导致换行不正常的BUG
已改进:1个可能丢失输出信息的逻辑代码
2008.05.06
已升级:版本升级为2.0,支持32位浮点显示!借用了HAM 的代码,特此说明及感谢!
Again Log View 2.0
集成的日志输出和查看工具
by Aga!n 2008.5.6
一直以来大家在调试程序或者写一些试探性的小程序的时候,往往会感觉一些不便,
那就是不知道怎么才能简洁的显示一些重要的信息!
先要生成窗体,接着格式化变量,麻烦多多 ....... MessAgeBox虽可简单的显示
一点东西,调用起来也还算简单,然局限之处大家也深有体会!
终于烦恼可以少一些了,看看Aga!n带给大家的小礼物,让你不再为此烦心,你可以
把精力集中在更重要的工作中。重要的是不会干扰到你代码的可读性和可维护性!
使用方法,在 .code(或者 .data 段,不推荐)中用include 加载 m_log.inc
大概就是这个模样 :)
.code
include m_log.inc
已经足够了,你可以使用 m_log 函数了!
这是几个基本的例子,帮助你熟悉:
_m_log "Hello,world!"
_m_log "ebx中32位浮点数值为: ,%f ebx"
_m_log "列出eax,ebx,ecx,edx,edi,esi16进制值--,%enter,%x eax ,%x ebx ,%x ecx ,%enter,%x edx ,%x edi ,%x esi "
_m_log "列出eax,ebx,ecx,edx,edi,esi10进制值--,%enter,%d eax ,%d ebx ,%d ecx ,%enter,%d edx ,%d edi ,%d esi "
调用的样子和VB中有点相识,是的,这正是我写该工具的意思,你可以随意的输出字串,当然
更重要的是支持将寄存器中的值格式化为2进制或者10进制或者16进制或者10进制浮点的格式
显示出来!至少我已经在使用此工具时受益,希望对你也能有所帮助。
要格式化的变量可以是以下几种:
1. ,%x eax 用16进制格式化
2. ,%d eax 用10进制格式化
3. ,%b eax 用 2进制格式化
4. ,%enter 换行,用于排版
5. ,%f eax 用32位浮点格式化 ---2.0 版已支持
6.* ,%F eax 用64位浮点格式化 (暂时不支持)
7.* ,%s eax 用于内存短字串的显示 (暂时不支持)
8.* ,%S eax 用于内存宽字串的显示 (暂时不支持)
当然EAX可以是 eax,ebx,ecx,edx,edi,esi 中的任意一个,对大小写不敏感
而标识符 ,%x 等对大小写敏感。
该集成工具采用的是DB机器码的方式封装,
无需头文件和声明。
函数会自动重定位,动态获取API,生成窗体,最后按你的要求显示信息。
可能是问得最多的问题:
A:为什么这窗体关不掉?为什么关闭窗体不能结束程序?
Q:该工具只是辅助显示一些重要的信息,所以不应该影响到主程序,不应该控制主程序,
更不能结束主程序。但实际上有时候你的主程序并没有生成一个窗体来和你交互,
要结束这样的的程序话就只有用到进程管理工具,可能你会感觉到一些不方便(实际上已经有人这样抱怨过了)
,现在你可以在“窗体的标题栏”先按下左键,同时按下右键,然后先释放左键,
再释放右键,在这一连串的略带技巧的动作发生后,log窗体会理解你,随后便自杀进程。。。。
废话我就不想多说了,试一试!
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课