主线程退出前请先退出子线程 2014-11-10 Tips 我们知道理论上如果一个进程的主线程退出,整个进程就会销毁,子线程自然也是要退出的。但是这并不意味着,程序退出的时候我们就能不问不管自己创建的子线程,因为不管他还真有可能出问题。下面是一个典型的主线程退出过程中,而子线程未退出,造成死锁整个进程的分析图,死锁在c runtime里,...
ClipMonitor 简单的剪切板监控工具 2014-11-02 Tips 周末花了点时间写了个剪切板监控工具,他会记录剪切板里面的数据,并且支持用HEX和TEXT对数据进行分析。涉及到的技术很简单,网上已经有一堆了,没什么可说的,我这里主要是加入了HEX的模块,方便对未知的剪切板数据进行分析而已。 下载:ClipMonitor ...
利用Windbg脚本监控DLL加载状态 2014-10-27 Tips 开发过大型程序的人都遇到过这样的问题,一个版本Release后,发现有的功能怎么也不对。但是每个模块在开发人员单独的环境下又是正常运行。那么遇到这样的问题,其中一个能想到的就是DLL模块没有加载正确。一般情况下,这种时候我们可以使用depends这样的工具查看模块的依赖情况,以判...
用Windows Event监控前台窗口变化 2014-10-19 Tips 网络上有这样一种小工具,号称可以提高计算机响应速度。简单看了下其中的一款工具,实现原理很简单,就是监控前台窗口的变化,设置进程线程的优先级。设置进程线程的优先级无非就是SetPriorityClass和SetThreadPriority这两个函数,主要问题就是要获得前台窗口的情况...
更新Windbg扩展0cchext 2014-09-20 Debugging 更新了pe_export和pe_import两个命令,功能如图 Commands for 0cchext.dll: !autocmd - Execute the debugger commands.(The config file is ...
Dump stl的vector,list,map的三个windbg脚本 2014-08-16 Debugging 用Windbg查看stl的容器实在是已经让人悲伤的事情,为了方便,所以写了这么3个脚本vector: r? $t0 = ${$arg1} .if (${/d:$VectorType}) { r? $t0 = @@C++(...
使用ATLTRACE打造轻量级Debug Log 2014-07-18 Debugging 众所周知,Debug Log是非常好的调试手段。所以我经常也尝试各种各样的第三方Log库。Log库分很多类型,例如可以给服务器使用的功能完备Log,也有轻量级的Log库,只是为Debug所设计。作为客户端开发,我还是比较喜欢后者这种Log库。不过使用第三方库有一个这样的麻烦事,走...
Dump右键菜单的小工具——RightMenuDump 2014-06-29 Tips 最近没空更新blog,只能把以前写的小工具拿出来充数,表明这个blog还是活着的。这个挺无聊的小工具,主要是看看电脑里右键菜单的情况。 直接运行后当前目录下出现rm.log,内容大概是: 下载:RightMenuDump ...
更新:Windbg扩展0cchext.dll 2014-06-23 Debugging Commands for 0cchext.dll: !autocmd - Execute the debugger commands.(The config file is autocmd.ini) !dpx ...
系统进程创建管理员进程的方法 2014-05-06 Tips 代码如下: namespace ProcessHelper { typedef BOOL (__stdcall *CREATEENVIRONMENTBLOCK)(LPVOID *lpEnvironment, HANDLE hToken, ...