自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(166)
  • 资源 (9)
  • 论坛 (217)
  • 收藏
  • 关注

原创 CLR运行时GCInfo的读取字段骚操作

在我们GC垃圾回收的时候,需要 GC root 遍历 Local Variable(本地变量,简称LV)。找出当前寄存器或者栈中存储了几个LV,具体的操作代码如下:找出寄存存储变量个数m_NumRegisters = (UINT32) reader.DecodeVarLengthUnsigned(NUM_REGISTERS_ENCBASE);NUM_REGISTERS_ENCBASE=2,也就是寄存的偏移量为2.我们再看DecodeVarLengthUnsigned函数inline size

2021-02-09 22:28:22 1218 1

原创 .Net 6 最新版,你真的了解.Net吗?

当我们编译了一个.Net 程式的时候,生成了一个exe 或者DLL,它会包含以下几部分:1.Module2.Assembly3.类型比如int,string,结构体,类等4.类型里面包含了函数表,空间大小等。这几个的关系是一词包含,比如Module包含了assembly,而assembly 又包含了类型,类型里面包含了函数表。举个例子,比如我有一个C#程式```csharpusing System;namespace ConsoleApp15{ class Program

2021-03-28 21:13:14 328

原创 万物之源,Object到底是个什么东西?

CLR里面规定了,Object是所有类的父类或者基类,有点意思的是貌似是所有的类的祖先都是它,没有它就没有后代子孙繁衍。(如果你有任何问题,可以加入QQ群676817308大家一起讨论交流)其实它到底是啥呢?光看namespace为system的命名空间下的Object类,里面什么都没有namespace System{ /// <summary>Supports all classes in the .NET Framework class hierarchy and provide

2021-02-14 19:03:37 92

转载 4年前的最佳小说回顾

古代有一小姐,遇到一个上京赶考的穷书生避雨,发现其很有才华后,掏出一些银两,并以身相许,次日小姐垂泪送书生:“君若高中莫负妾身。”书生发誓后走了。小姐让丫环把书生的名字纪录在册,丫头说:“这已经是第五十个书生了!”小姐说:“没办法,总有一个会真的考上的。——2016最佳小说《风投》书生让书童把小姐的名字记下,感叹道:这是第一百个了啊。——2016最佳小说《融资》书生的伴读童子问书生:公子,自从三年前你离家,如今已经睡了九十余名女子了,我们在各大赴京路上往复,难道就不去赶考了吗?书生答:赶考当大官不也

2020-12-22 15:38:17 86

原创 C++ 桌面图标(转载)

#include<windows.h>#include<commctrl.h>#include <stdio.h>typedef struct tagLVITEM64A{ UINT mask; int iItem; int iSubItem; UINT state; UINT stateMask; INT64 pszText; int cchText...

2020-12-04 15:09:00 224

原创 Windbg使用和 编译CoreCLR(Runtime)的总结

windbg 下载符号的时候,需要FQ自挂梯子,否则是无法下载的如果调试.net EXE程序,如果是.net core 是无法调试的,ld ConsoleApp的时候提示无法找到Module Symbols。如果是.net framework 是可以的。如果是DLL调试,frameworkd 也是可以的,.net core不行。.net core只能转出之后,再加上.net core sos 以及coreclr 地址,然后才能dump 堆栈的状况关于编译.net clr 。.net core..

2020-11-19 12:50:47 146

原创 .Net 5的 Span结构内存分析

假如说有一下程序使用了Span:static void Main(string[] args){Span span = new byte[10] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };span = span.Slice(5, 2);GC.Collect();Console.WriteLine(span.Length);Console.ReadLine();}分析如下:span数组在内存的存储布局断点到此处,并打印出 rbp 寄存器内容span结构体的地

2020-11-15 12:25:21 100

原创 windbg调试入门(转载)

  好不容易把环境打好了,一定要试试牛刀。我创建了一个极其简单的程序(如下)。让我们期待会有好的结果吧,阿门!  using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApplication1{ class Progra...

2020-11-07 11:04:00 52

原创 Ubuntu 安装 Docker (转载)

在Ubuntu中安装Docker和docker的使用1.在Ubuntu中安装Docker更新ubuntu的apt源索引sudo apt-get update安装包允许apt通过HTTPS使用仓库sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ so...

2020-10-31 21:17:00 44

原创 GC析构对象和列表的处理过程

步骤如下:1.CLR 会判断当前对象是否包含析构函数,2.如果包含,则记录对象的地址到所属区域下的析构对象列表中3.在CLR GC的五个阶段的标记阶段,会判断对象是否存活为14.如果不为1,检查对象头中的一直运行析构函数标记是否为15.如果为1,则删除析构对象列表的中的记录6.如果不为1,则把析构对象列表中的记录移动到析构队列或者重要析构队列7.标记析构队列和重要析构队列的对象为存活对象,即为18.等待被析构函数的调用线程调用它9.移除析构队列或者重要析构队列10.下一轮GC的回收**

2020-10-27 12:21:54 93 1

原创 .Net Core CLR 获取跟对象代码的分析

.Net Core CLR GC 的第一步过程就是标记阶段,其余的分别为,标记,计划,压缩,重定位,清扫。五个阶段。首先来看下标记阶段,所谓的标记阶段,就是CLR 会标记存活的对象,以便于不被清扫掉,而造成程序异常。标记的第一步首先是要获取到跟对象,通过跟对象获取到正在使用的对象,然后进行一个标记,所有代码均为C++如下:CLR的GC阶段的标记函数为:void gc_heap::mark_phase (int condemned_gen_number, BOOL mark_only_p){

2020-10-18 19:12:42 55

原创 天地有情尽白发,人间无意了沧桑

从此,我叫八戒天蓬苍老的面容,几根丝丝白发。爱情之折磨人,以至于斯乎?我自有仙子相配,爱你就会变成猪一语成谶,因果循环,报应轮回,屡试不爽。爱上宝儿,就会成为平凡人。位列上神,就会离开宝儿。当天蓬毫不犹豫的选择宝儿的时候,那根月老的牵丝线已经被取出。结局是悲哀的。然而没有悲哀的结局,何来感人的故事?四百八十年后,高家庄,永世不得位列仙班的天蓬戴着破败的斗笠。被惊呼为妖怪...

2020-07-05 13:44:00 174

原创 狼和羊的故事(安徒生新篇)

从前,有一群羊,在草原上很安定的生活着。由于水草丰盛,羊群很快繁殖了大量的小羊。小羊长大了继续繁殖,羊群的羊越来越多。后面来了几只狼,对羊说:附近好多狮子老虎,我们保护你们,你们尽情吃草。羊说,好的,救世主来了。狼不吃草,隔三差五的偷吃一只羊。羊群慢慢的减少了,狼一看不对劲。这样减少下去,后面我们吃什么。就对羊说,你们要多生小羊,我们狼才能更好的的保护你们。羊群一听,觉得也是,于是...

2020-06-28 11:55:00 191

原创 .Net Core CLR GC的浅度分析

.Net Core CLR 的GC分为两个部分,一个是GC的内存分配,另外一个是GC的垃圾回收。这里我们先讲一下垃圾回收。一.垃圾回收的触发条件1.在C#代码中调用 GC.Collection();2.物理内存不足的情况下3.分配量超过分配阈值4.找不到可分配的内存空间在满足了以上四个条件中的任何一个,CLR都会触发GC的垃圾回收,清理托管堆空间释放内存,以便下次使用。二.垃圾回收的...

2020-06-27 01:03:00 54

原创 CLR GC分析

.Net Core CLR 的GC分为两个部分,一个是GC的内存分配,另外一个是GC的垃圾回收。这里我们先讲一下垃圾回收。一.垃圾回收的触发条件1.在C#代码中调用 GC.Collection();2.物理内存不足的情况下3.分配量超过分配阈值4.找不到可分配的内存空间在满足了以上四个条件中的任何一个,CLR都会触发GC的垃圾回收,清理托管堆空间释放内存,以便下次使用。二.垃圾回收的流程1停止其它线程到并且切换到抢占模式(抢占模式不可访问托管堆代码,只可访问非托管)2.重新定位回收的目标代

2020-06-26 23:57:22 364

原创 .net core 的夸代扫描标记card_table的细节分析

夸代扫描,比如说回收短暂代,但是在短暂代当中有一个被一代引用的变量。这个时候可能会造成了这个变量被回收,程序发生不可与之错误。card table 就是为了预防这种情况的一个数组。 int p = 0; int* card_table= &p;card_table[0] = 1;card_table[1] = 2;card_table[2] = 3;card_table表在...

2020-05-21 18:16:00 140

原创 .net core 处理异常的精髓部分

.net core 里面处理异常无论是在linux 或者是widnows都有一个异常入口函数processclrexception()core里面的异常分为用户异常和硬件异常,前者是代码里面引发的异常,后面是CPU寄存器硬件等引发的异常两者处理不同在于VEH扩展,当硬件异常的时候,会调用注册的VEH处理异常。而后进入processclrexception,用户异常则省略了VEH部分直...

2020-05-05 14:08:00 122

原创 .Net Core监控文件改动

static void Main(string[] args) { IFileProvider fileProvider = new PhysicalFileProvider(Environment.CurrentDirectory); Action<object> callback = null; ...

2020-01-16 15:31:00 505

原创 .Net Core Linux 下面的操作

这里以 Ubuntu 8.04版本为例: 1.注册 Microsoft 密钥注册产品存储库安装必需的依赖项 wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb -O packages-microsoft-pro...

2020-01-09 22:22:00 98

原创 windebug(转载别人的节选)

  问题一:WinDBG分X86和X64两个版本  如果你用的是32位的WinDBG,那直接打开就行;你如果用的是64位的版本,那么如果调试64位代码也直接打开,如果调试x86的代码,要使用Wow64下的WinDBG.exe。  问题二:确定SOS和CLR的位置和版本  如果安装了Visual Studio的机器,可以打开VS的命令行,输入where sos.dll命令,可以...

2019-11-20 14:02:00 88

原创 .Net PE

// ConsoleApplication26.cpp: 定义控制台应用程序的入口点。//#include "stdafx.h"#include <Windows.h>typedef ULONG_PTR TADDR;#define VAL16(x) x#define VAL32(x) x#define DPTR(type) type*#...

2019-11-15 16:01:00 178

原创 wpf 画五角星函数

public void ABC() { var canvas = new Canvas(); Content = canvas; var points = new List<Point>() { new Point(2...

2019-10-11 14:40:00 207

原创 Gradle 编译spring 坑

首先 gradlew.bat其次 import-into-eclipse.bat转换spring-beans文件,将当前目录切换至spring-beans目录,执行命令gradle cleanidea eclipse遇到了一个错误:解决方法:将spring-beans文件夹下面的spring-beans.gradle文件最后三行注释掉去,再在终端执行命令gradle cle...

2019-09-26 10:29:46 581

原创 .Net Core CLR FileFormat Call Method( Include MetaData, Stream, #~)

#include "pch.h"#include <iostream>#include <Windows.h>#define VAL32(x) x#define VAL16(x) x#define DPTR(type) type*typedef DPTR(IMAGE_DOS_HEADER) PTR_IMAGE_DOS_HEADER;typedef ...

2019-08-01 15:41:00 263

原创 Core CLR Host 源码分析(4)

当CLR实例化PEAssembly 的时候,会调用 PEAssemblyHolder pFile(pDomain->BindAssemblySpec(this, fThrowOnFileNotFound, fRaisePrebindEvents, pCallerStackMark));实际上分为三步:Java/Python/Go/.Net讨论交流群:6768173081.通过 ...

2019-05-08 17:14:42 224

原创 逃离996,致敬为Python ,致敬那位伟大的工程师

以下转载自GitHub,地址为:https://github.com/623637646/996.LeaveJava/Python/Go/.Net讨论交流群:6768173081.Python之父发声:一周前左右,来自中国的一些程序员向我抱怨当下的工作条件有多么恶劣。为此,有人创建了 GitHub repo 来阐述这个问题——「工作 996,生病 ICU」(「996」工作制,即每天早 ...

2019-04-28 11:08:29 677

原创 Core CLR Host 源码分析(三)

接上一篇,Core CLR利用LoadDomainAssembly加载程序集,并且运用了.net 或者Java里面的全局注入形式来操作程序集的生成和运作具体代码如下:Java/Python/Go/.Net讨论交流群:6768173081.首先会获取到 AppDomain的实例2.获取到ICLRPrivBinder的实例,这个ICLRPrivBinder可以利用assemblyspec.S...

2019-04-04 16:18:39 372 1

原创 Core CLR Host源码分析 (二)

废话不多说,直接上源码:1.在托管程序集里面执行方法HRESULT CorHost2::ExecuteAssembly(DWORD dwAppDomainId,//通过CreateAppDomainWithManager创造的domainid LPCWSTR pwzAssemblyPath,//要托管的...

2019-03-28 16:39:19 213

原创 Core CLR Host 源码分析(一)

Core CLR Host 源码简单分析在定制 CLR Host的时候,可以通过调用如下代码,来获取当前需要被宿主的程序调用入口:Java/Python/Go/.Net讨论交流群:676817308hr = Host->CreateDelegate(domainId,L"Main,Version=1.0.0.0", L"Main.Program", // Target man...

2019-03-25 17:00:00 447

原创 Core CLR 自定义的Host官方推荐的一种形式(第一种)

Core CLR 自定义的Host官方推荐的一种形式(第一种) .Net Core CLR提供两种Host API访问 托管代码的形式,按照微软官方的说法,一种是通过CoreClr.DLL来直接调用托管生成的DLL程序集,另外一种是通过CoreClr里面的C导出函数GetCLRRuntimeHost获取到IID_ICLRRuntimeHost4然后...

2019-03-21 15:26:00 328

原创 编写自定义 .NET Core 主机以从本机代码控制 .NET 运行时

自定义 .Net Core 主机运行.Net Core代码,以及控制运行时运行状态,是在.Net Core 高级运行环境以及定制.Net Host ,CLR 等必不可少的。注意点:1.必须以 x64形式 Debug程序,否则loadlibrary 运行之后为零2.所有的路径都必须放在(Product\Windows_NT.x64.Debug)下面,因为程序要加载默认DLL,缺少DLL将...

2019-03-13 16:48:09 517

原创 C# 二维码的生成

C# 二维码的生成 nuget 搜索qrcodenet,然后选择下载gma.qrcodenetpublic partial class Form1 : Form { public Form1() { InitializeComponent(); } ...

2019-01-17 14:16:00 201

原创 Common Language Runtime(CLR)C++分配堆段小对象叙述

通常来说,内存中的划归为CLR的堆,在CLR中被分两个对象,分别为小对象和大对象,小对象包含了三代,分别为0代,1代,2代,大对象只有一个代就是3代。CLR分配内存的时候,首先尝试从自由列表(a_fit_free_list_p)分配,如果没有成功,则从堆段中分配。代码如下:BOOL gc_heap::a_fit_free_list_p (int gen_number, ...

2018-12-29 17:17:01 264

原创 .Net Core核心监听模块LibUv

这几天发现,.Net Core核心中的核心,也就是作为服务器的监听部分,居然用的是Node.Js的LibUv。.Net Core 作为微软最新的一款开源技术栈,其最大的创新就是用KestrelHtppServer构建了自己的专属服务器,取代了传统的IIS作为服务器,也是为了对抗Java Tomcat ,Apache的利器。这款KestrelHtppServer的核心正是 LibUv。在.Net...

2018-12-15 20:42:46 1313 1

原创 .Net Core 编译的一些陷进以及各种坑集合

CoreCLR 以及CLI编译: 1.下载CMake(最好最新版) ,添加环境变量(微软利用这个跨平台公共语言运行库生成工具) 2 Python(最好最新版,且用Install形式安装,如果用Zip安装(有两个版本,一个嵌入式,一个EXE.这两个都不行,里面似乎没有自带的Pip,导致整个脚本引导错误) (用到了 Python脚本引导)添加到变量 3.PowerShell 安...

2018-12-11 14:50:54 1988

原创 github 入门

github 入门 生成 秘匙:ssh-keygen-t rsa-C"your_email@youremail.com" 复制id_rsa.pub 里面所有内容到 github 的setting-》 new ssh 里面 然后Add ssh -T "你的邮箱",查看SSH是否设置成功 git config -...

2018-11-17 14:51:00 121

原创 Spring ASM 汇编包:Org.SpringFrameWork.ASM

    在Org.SpringFrameWork.ASM这个包里面,有个类ClassReader,有个方法readclass ,后者主要功能是把流转换成16进制的Byte    代码如下:    private static byte[] readClass(final InputStream is, boolean close)            throws IOExceptio...

2018-11-14 17:01:01 1428

原创 Spring 的限量

    最近研究发现    Spring属性不能超过 2的8次方减1    Spring类的 常量池长两个数 不能超过 2的8次方减1    Spring接口,字段,方法的个数不能超过 2的8次方减1   假如说超过了,字节码会移位,导致不能输出正确的结果,尤其是在使用 @Componet, @Services注解的时候  外加Compont-Scan XML 配置的文件。...

2018-11-08 17:48:05 182

原创 Spring 最简单的注入以及原理分析

spring 是直接读取字节码解析上面的注解,只要是配置了@compponent ,@service注解的类,都会在spring 被解析和实例化,后面可以直接用Context来获取类实例操作。通过配置文件 component-scan 和 在类上注解Component来实现最简单配置包名为: Com.Cn,Bing配置文件Beans.xml :    &lt;?xml versio...

2018-11-07 17:16:29 253

原创 Asp.Net MVC Mobile移动端开发小叙

    Asp.Net MVC 从第四版开始就支持移动端了。通过设置HttpContext.Cahce和HttpContext.Items来调整需要输出设别的现实模式,通过DisplayModel自动识别当前设备是PC端还是Mobile端。PC意是指电脑端,Mobile可以是安卓,塞班,苹果或者已经被淘汰的WinPhone.    当调用ViewResultBase的ExecuteResult...

2018-08-11 17:11:01 3439 2

c# dll注入钩子(全局钩子)

c++ 独立dll钩子,子线程映射,地址保存,api标题头重写。 c#调用从c++ dll挂钩程序,包括计算器,记事本等简单例题描述和功能实现。

2012-06-21

MSCOREE.H CoreClr.DLL 的头文件

CoreClr.DLL的库头文件,主要用于自定制CoreCLR host主机

2019-03-26

拦截记事本[钩子]

钩子,DLL,进程注入,示例拦截记事本,调用C++ DLL

2013-06-25

DLL注入

c# 整合c++远程注入 api重写等 记事本应用实例等 是值得一看的小工具

2012-11-09

webbrowser 仿制 天涯社区:国际观察版(未完)

仿制国际观察版本,提供搜索,发帖扥功能齐全。

2013-01-15

Java Spring MVC 简单的例子

Spring MVC 入门的简单例子,适合新手学习和研究,简单易懂。

2017-11-12

wondows 程序设计 MFC源码

windows MFC 框架全面剖析和TLS系统的详细运用

2014-01-16

hosting.zip

.net core 宿主程式,可以用这个来定制runtime 运行时,以及做一些其他tpalist 等动作

2019-11-22

编译好的CoreClrdll

利用python,cmake,powershell编译好的coreclr.dll,可以作为.net core 程序的宿主,自定制主机文件

2019-03-26

来聊聊妹子吧,这里好像都没啥人了

发表于 2021-04-15 最后回复 2021-04-15

昨晚好像遇到了怪异事件,一夜没睡好

发表于 2021-03-29 最后回复 2021-03-29

外面到处放鞭炮,声震欲耳。好热闹啊

发表于 2021-02-10 最后回复 2021-02-10

今天南方小年了,一点年味都没有啊

发表于 2021-02-05 最后回复 2021-02-05

到年底了,两件事又开始了相亲与扫黄

发表于 2021-01-02 最后回复 2021-01-02

装修工程---打架篇

发表于 2020-12-29 最后回复 2020-12-29

装修处处是坑,今天被坑了交了智商税

发表于 2020-12-26 最后回复 2020-12-26

赶考书生与大家小姐的“风投”韵事

发表于 2020-12-22 最后回复 2020-12-22

装修篇之--------装修前期需处理问题

发表于 2020-12-14 最后回复 2020-12-14

装修篇之-----装修前期需要的各种准备(以此记录下今天的行程)

发表于 2020-12-14 最后回复 2020-12-14

装修轶事-----之出轨篇

发表于 2020-12-13 最后回复 2020-12-13

那个女的叫我请她吃饭,咋整

发表于 2020-12-01 最后回复 2020-12-01

最近做了一件多年想做,而又没做的事情

发表于 2020-11-29 最后回复 2020-11-29

Tiobe排行榜,Python 超过了Java, 后者还有戏吗?

发表于 2020-11-19 最后回复 2020-11-19

.Net 5 正式版今天发布,没有关注吗?

发表于 2020-11-11 最后回复 2020-11-11

CSDN 一打开,就一堆红包是咋回事

发表于 2020-11-11 最后回复 2020-11-11

住在进博会附近,这几天发现个有意思的事情

发表于 2020-11-05 最后回复 2020-11-05

昨天程序员节日,今天个人的生日,好事需要成双

发表于 2020-10-26 最后回复 2020-10-26

两处相思同淋雪,此生也算共白头

发表于 2020-10-22 最后回复 2020-10-22

早上在高铁站一个女的那个残疾证,叫给钱她

发表于 2020-10-10 最后回复 2020-10-10

回去过中秋了,已经在车上

发表于 2020-09-28 最后回复 2020-09-28

今天的学车经历,说说经历的坏事和好事

发表于 2020-09-25 最后回复 2020-09-25

同志们,我在学车,有什么建议

发表于 2020-09-22 最后回复 2020-09-22

寒灯纸上梨花雨,我等风雪又一年

发表于 2020-09-20 最后回复 2020-09-20

那人好像条狗啊

发表于 2020-09-17 最后回复 2020-09-17

最新消息,字节跳动拒绝卖给微软,甲骨文成了唯一收购者

发表于 2020-09-14 最后回复 2020-09-14

刚看了快乐大本营,越来越感觉是个弱智的节目

发表于 2020-09-12 最后回复 2020-09-12

休息太久了,都不想动了

发表于 2020-09-08 最后回复 2020-09-08

又开始周一了,大家周末都过得好吗

发表于 2020-08-31 最后回复 2020-08-31

最近一段时间懒得一笔,什么都不想学,不想动

发表于 2020-08-27 最后回复 2020-08-27

坐高铁去客户那边谈个项目,旁边两女的,我坐中间,该怎么办,在线等

发表于 2020-07-27 最后回复 2020-08-22

每天下午到这个时候,就特别困想睡觉。有木有同感的

发表于 2020-07-23 最后回复 2020-08-22

又到了周一,开始了苦逼的工作

发表于 2020-07-20 最后回复 2020-08-22

周末没啥事情,重新看了一遍绣春刀2,说一说一些感悟

发表于 2020-08-16 最后回复 2020-08-16

吐槽下,有些人的智商真的很感人

发表于 2020-08-12 最后回复 2020-08-12

这地方还有的救吗?感觉没几个人了

发表于 2020-06-01 最后回复 2020-07-10

520酒店满员,情人节程序猿晚上都干些啥

发表于 2020-05-20 最后回复 2020-07-10

端午快乐,CSDN的同仁们

发表于 2020-06-25 最后回复 2020-07-10

天地有情尽白发,人间无意了沧桑

发表于 2020-07-07 最后回复 2020-07-10

这个江湖不在属于你我的了,是时候退出江湖了

发表于 2020-07-07 最后回复 2020-07-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除