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的时候,输出点击会自动导航到对应的位置。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述