net 高级调试之八:代码审查及杂项命令-编程思维

一、简介    今天是《Net 高级调试》的第八篇文章。这篇文章设计的内容挺多的,比如:如何查看方法的汇编代码,如何获取方法的描述符,对象同步块的转储,对象方法表的转储,托管堆和垃圾回收器信息的转储,CLR 的版本,GC 模式,等等,内容挺多的。内容虽然挺多,但是这些都是高级调试的基础。虽然这些都是基础,如果这些掌握不好,以后的高级调试的道路,也不好走。当然了,第一次看视频或者看书,是很迷糊的,

net 高级调试之七:线程操作相关命令介绍-编程思维

一、简介    今天是《Net 高级调试》的第七篇文章。上一篇文章我们说了值类型,引用类型,数组等的内存表现形式。有了这个基础,我们可以更好的了解我们的程序在运行时的状态,内存里有什么东西,它们的结构组成是什么样子的,对我们调试程序是更有帮助的。今天,我们要说一些和线程有关的话题,虽然和线程相关,但是不是多线程的知识,不是线程安全的知识。今天我们讨论的是如何查看线程,它的表现形式,以及线程的调用

net 高级调试之六:对象检查之值类型、引用类型、数组和异常的转储-编程思维

一、简介     今天是《Net 高级调试》的第六篇文章。记得我刚接触 Net 框架的时候,还是挺有信心的,对所谓的值类型和引用类型也能说出自己的见解,毕竟,自己一直在努力。当然这些见解都是书本上的,并没有做到眼见为实,所以总是有些东西说不清楚。今天,我们就好好的说说 C# 的类型,是从内存级别、从底层来说一下值类型、引用类型到底是什么,它们在内存中的形态,还有也说说数组的内存形态,如何内部布局

net 高级调试之五:如何在托管函数上设置断点-编程思维

一、简介    今天是《Net 高级调试》的第五篇文章。今天这篇文章开始介绍如何在托管方法和非托管方法设置断点,我们要想调试程序,必须掌握调试的一些命令,动态调试的命令,我们在上一篇文章已经讲过了。光有命令也是不行的,要让这些调试命令有用,必须可以在方法上设置断点,然后,再使用调试命令,才能完成我们的调试任务。当然了,第一次看视频或者看书,是很迷糊的,不知道如何操作,还是那句老话,一遍不行,那就

net 高级调试之四:windbg 动态调试-编程思维

一、简介    今天是《Net 高级调试》的第四篇文章。到今天为止,也有三篇文章了,对 Windbg 也有初步的认识了,当然,一个工具流畅、熟练的使用,对于我们调试 Net 程序是至关重要的。在前几篇文章的基础上,我们这篇文章主要介绍一些和使用 Windbg 有关的命令和操作。就我个人而言,第一次接触这个东西,还是挺难的,以前从来没有用过 Windbg,用的最多的就是 Visual Studio

net 高级调试之三:类型元数据介绍(同步块表、类型句柄、方法描述符等)-编程思维

一、简介    今天是《Net 高级调试》的第三篇文章,压力还是不小的。上一篇文章,我们浅浅的谈了谈 CLR 和 Windows 加载器是如何加载 Net 程序集的,如何找到程序的入口点的,有了前面的基础,我们今天看一点更详细的东西。既然 Windows 操作系统已经加载了 CLR,初始化了应用程序域,加载了我们的 Net 程序,那我们就看看Net 类型在内存中的具体样子。这一篇文章还是有一点难

cyclical learning rates-编程思维

学习率的设置是深度学习中一个比较重要的问题,Cyclical Learning Rates(CLR)提出了一种新的方法,即让学习率周期性的变化,而不是像之前的方法那样让学习率单调递减变化. Cyclical learning rates其实比较简单,只需要3个参数:   (1)base_lr:学习率的最小值; (2)max_lr:学习率的最大值; (3)stepsize:变化周期的一半. 如何

知识在与温故、总结-再读clr_eric zhou-编程思维

序 CLR,通用语言运行时,每个.Net 程序猿,都会第一时间接触到。记得2008年,第一次学习Jeffrey Richter的CLR Via C#,读的懵懵懂懂,大抵因为编码太少,理解的只是概念和皮毛。10年之后,再次找出Jeffrey Richter的CLR Via C#这本书,重读CLR。归纳总结,同时加深自我的底层技术理解和深度。分享给大家自己的总结笔记: 讲在前面的话: 合抱之木,生于

有关clr的初学小整理(可能理解不深刻,望大牛指出)_王庆东mas-编程思维

1. .Net程序通过CLR去加载运行管理代码, 加载CLR的进程成为“宿主”,通常操作系统加载。 加载CLR的进程也可以为某个DLL,也成为“宿主” 2. 宿主接口使宿主能够对运行库的更多方面进行控制,从而能够在 CLR 和宿主的执行模型之间进行更紧密的集成。在.NET Framework 1 版中,宿主模型使非托管宿主能够将 CLR 加载到进程中、配置某些设置以及接收事件通知。但在通常情况下

有关clr的初学小整理2(可能理解不深刻,望大牛指出)_王庆东mas-编程思维

针对原文有用的段落,写一写自己的理解,注释: 1. 托管exe文件被启动的时候,首先被PE Loader载入。PE Loader载入exe文件之后,会分析PE文件头的data directory table,如果CLR_Header内的值不为0, 表示该文件是托管PE文件,PE Loader 会立即载入 MsCorEE.dll,并且执行 MsCorEE.dll内的_CorExeMain()函数。

clr_via_c#学习笔记之枚举_踏浪帅-编程思维

枚举类型(Enum)定义的一组"符号名称/值"配对;因为枚举类型使用程序更容易编写、阅读和维护,而且它是强类型; 枚举是值类型;由System.Enum-->System.ValueType-->System.Object;有别于其他值类型是Enum不能定义任何方法、属性、或事件; 枚举都有一个基础类型:byte,sbyte,short,ushort,int(C#默认选择的,

clr_via_c#学习笔记之clr的执行模型_踏浪帅-编程思维

1:公共语言运行时(Common Language Runtime,CLR)是一个可由多种编程语言使用的“运行时”。CLR的核心功能(比如内存管理、程序集加载、安全性、异常处理和线程同步)可由面向CLR的所有语言使用; 2:C#源代码文件---》C#编译器---》托管模块(中间语言IL和元数据);无论选用哪个编译器,结果都是一个托管模块;托管模块是一个标准的32位可移植执行体(PE32)文件,或

简单创建与布署clr存储过程_insus.net-编程思维

今天的博文是学习CLR存储过程,一个简单的例子,学会怎样创建,编译,布署在SQL中。CLR能做一些T-SQL无法做的事情,很多情况之后,它比T-SQL快。打开VS2013,创建一个新专案,参考下面5个步骤:   如果你想写好的CLR存储过程布署在SQL2008上,上面标记2选择.NET Framework3.5。 创建一个新item:创建一个存储过程的类别:   点击标记12的铵钮之后,在VS中

带参数的clr存储过程_insus.net-编程思维

 昨天有学习《简单创建与布署CLR存储过程》http://www.cnblogs.com/insus/p/4371762.html,知道怎样创建以及布署至SQL中去。 下面这个范例是实现CLR存储过程附带参数: 可复制代码: SqlConnection connection = new SqlConnection("Context connection=true"); con

带output参数的clr存储过程_insus.net-编程思维

前面写了一篇《带参数的CLR存储过程》http://www.cnblogs.com/insus/p/4373605.html ,如果我们需要创建一个带OUTPUT返回值。实现它,可以先了解一下C#的OUT关键词 out (C# Reference) 打开刚才前面我们写好的SQL DataBase project,添加一个方法: 可复制代码: public static void GetFr

sql server db type and clr type_insus.net-编程思维

这段时间学习SQL Server CLR编程,但是SQL CLR编程,里面所使用的数据类型为CLE TYPE,它多少与 Db TYPE有些区别,在网上找到一个列表http://geekswithblogs.net/manjunath.k/archive/2013/09/11/sqldbtype-to-clr-type.aspx,转载于此,方便查阅。 SqlDbType CLR Type

clr table-valued函数_insus.net-编程思维

这几天来,努力学习了CLR的存储过程,创建与部署。从普通的存储过程,带参数,以及Output返回值等。Insus.NET今天学习一个例子,怎样实现CLR Table-Valued函数。在数据库中,我们可以看到很多种函数类型,Table-falued function,Scalar-valued function 等等。   这篇练习的CLR中编写的函数就是table-valued functio

返回标量clr自定义函数_insus.net-编程思维

昨天有学习了返回表自定义函数《CLR Table-Valued函数》http://www.cnblogs.com/insus/p/4378354.html。今天学习另一个,实现返回标量(Scalar-valued) function。  这个标量函数获取分类全名。 SELECT [CategoryName] + '--' + [KindName] + '--' + [FruitName] F

编写clr存储过程中使用sqldatarecord_insus.net-编程思维

温习一下这些天学习的CLR编程,存储过程,函数。 编写CLR的存储过程,运行起来的效率,果然比普通的SQL语句,存储过程或是函数均高。以后专案需求,或是执行效率较高的SQL,得写成CLR程序,再部署至SQL中去,这样可以解决问题。  可复制代码: [Microsoft.SqlServer.Server.SqlProcedure] public static void GetFrui