codeproject 调试技巧 学习笔记

http://www.codeproject.com/KB/trace/mytracer.aspx

A simple solution to see the inside of your code

KEYWORD:  ipc,

大概意思是,在目标程序使用trace输出,然后在自己的程序使用IPC技术,获取输出。之后又查了一下什么是trace,其实和console差不多,不过他默认输出到console,也可以配置输出到文本。

放在程序代码中间,会对代码性能有点影响。

 

http://www.codeproject.com/KB/trace/debugwriter.aspx 

DebugWriter - A simple property value dumper

无聊。。。浪费我5分钟去度。就是用反射获取对象的值,然后打印出来,这样就不需要一个个去写。

Debug.WriteLine(finalResult); 

 

http://www.codeproject.com/KB/trace/minememoryreader.aspx

Minesweeper, Behind the scenes

算是有点难度的文章,就是读取另外一个进程的内存数据。 整篇文章废话了40%,之后才出现关键词:the answer resides in an API called ReadProcessMemory

在kernel32.dll里面,提供了读取内存数据的方法,不过需要指定内存的偏移量。 

kernel32.dll是Windows 9x/Me中非常重要的32位动态链接库文件,属于内核级文件。它控制着系统的内存管理、数据的输入输出操作和中断处理,当Windows启动时,kernel32.dll就驻留在内存中特定的写保护区域,使别的程序无法占用这个内存区域。

System.Diagnostics.Process.GetProcessesByName("winmine"); 读取指定的进程。

 

这边文章之后,找到了一篇更加恐怖的

http://www.codeproject.com/KB/cs/sojaner_memory_scanner.aspx

How to write a Memory Scanner using C#

大概介绍了一种内存扫描的方法,就是逐个去扫描,直到得到需要的数字、结果。 

 

http://www.codeproject.com/KB/trace/releasemodebreakpoint.aspx

A Release Mode Breakpoint Using Reflection Emit

这个不解释了,就是用emit制造一个breakpoint

 

http://www.codeproject.com/KB/trace/tracking_of_bugs.aspx

Bug Fix Tracking in C# Executable Files

这篇文章提到了一个有趣的名词: Defect Tracking System。 google了一下,找到了一张图:

 

 

 

http://www.codeproject.com/KB/trace/XTraceCS.aspx

XTrace.cs - C# trace with printf formatting

一篇很简单的文章,但是给出了个不错的体验,当使用debug.write的时候,输出点击会自动导航到对应的位置。 

 

 

posted @ 2010-03-08 05:44    阅读(453)  评论(2编辑  收藏  举报
IT民工