08 2009 档案

摘要: 我们知道32为系统下,用户态程序只能访问2G的内存,特别是.NET程序在这种情况下,内存一旦超过1.2G后,就很容易出 OutofMemeryException异常,有一个选择就是为打开3G开关,那么我们的程序理论上就可以找访问到3G的内存,但是由于32系统寻址的限制,最多4G内存地址,如果打开3G开关,那么留给操作系统内核的的寻址空间之只有1G了。这其实是比较危险的,比较容易出一下莫名其妙的错误。那么怎么在这之间寻找一个平衡点呢。阅读全文
posted @ 2009-08-14 10:23 启点 阅读(419) | 评论 (6) 编辑
摘要: 使用Windbg查看内存中DataTable的值时,其实方法和查看普通对象是一样的,唯一要注意的时,DataTable对象中值的存储方式有些特别,DataRow中的值是存存放在DataTable的columnCollection中的阅读全文
posted @ 2009-08-04 19:12 启点 阅读(278) | 评论 (1) 编辑
摘要: 本节主要介绍一下如何通过Windbg来查看静态变量的值,由于静态对象是被CLR直接引用的,因此在使用windbg查看无法从根对象逐级找到待查看对象,因此我的思路是用windbg在有引用到静态变量的函数内打上断点,在windbg在断点停下时,通过查看当前堆栈数据来查找到这个静态变量。阅读全文
posted @ 2009-08-04 18:32 启点 阅读(2000) | 评论 (5) 编辑