当前位置: 首页 > news >正文 怎么再贴吧给自己的网站做宣传广告设计与制作流程 news 2025/10/25 8:12:05 怎么再贴吧给自己的网站做宣传,广告设计与制作流程,昆山建设企业网站,页面游戏一#xff1a;背景 1. 讲故事 写这篇是起源于训练营里有位朋友提到了一个问题#xff0c;在 !t -special 输出中有一个 SuspendEE 字样#xff0c;这个字样在 coreclr 中怎么弄的#xff1f;输出如下#xff1a; 0:000 !t -special ThreadCount: 3 UnstartedTh…一背景 1. 讲故事 写这篇是起源于训练营里有位朋友提到了一个问题在 !t -special 输出中有一个 SuspendEE 字样这个字样在 coreclr 中怎么弄的输出如下 0:000 !t -special ThreadCount: 3 UnstartedThread: 0 BackgroundThread: 2 PendingThread: 0 DeadThread: 0 Hosted Runtime: noLock DBG ID OSID ThreadOBJ State GC Mode GC Alloc Context Domain Count Apt Exception0 1 4ab0 000001CC44E5C490 2a020 Cooperative 0000000000000000:0000000000000000 000001cc44e520d0 -00001 MTA (GC) 11 2 19d8 000001CC44E84700 21220 Preemptive 0000000000000000:0000000000000000 000001cc44e520d0 -00001 Ukn (Finalizer) 12 3 6668 000001CC44ED4520 2b220 Preemptive 0000000000000000:0000000000000000 000001cc44e520d0 -00001 MTA OSID Special thread type0 4ab0 SuspendEE 10 3b6c DbgHelper 11 19d8 Finalizer 哈哈其实我特别能理解很多人学了高级调试之后好奇心会爆棚看啥都想探究底层有一种技术上的重生这篇我们就好好聊一聊。 二WinDbg 分析 1. SuspendEE 标记是什么 这个单词全称为 Suspend Engine Execution 即 冻结执行引擎 那冻结执行引擎的入口方法在哪里呢这个考验着你对GC运作骨架图的认识在 coreclr 源码中有一个骨架图简化后如下 GarbageCollectGeneration(){SuspendEE();garbage_collect();RestartEE();}garbage_collect(){generation_to_condemn();gc1();} 上面的 SuspendEE() 即 SOS 中的 SuspendEE 标记的入口函数接下来我们深入探究下这个方法。 2. SuspendEE 到底做了什么 如果你仔细阅读过 SuspendEE() 方法的源代码你会发现核心枚举变量是 ThreadType_DynamicSuspendEE它起到了定乾坤的作用参考代码如下 thread_local size_t t_ThreadType;void ThreadSuspend::SuspendEE(SUSPEND_REASON reason) {// set tls flags for compat with SOSClrFlsSetThreadType(ThreadType_DynamicSuspendEE); }void ClrFlsSetThreadType(TlsThreadTypeFlag flag) {t_ThreadType | flag;gCurrentThreadInfo.m_EETlsData (void**)t_ThreadType - TlsIdx_ThreadType; }enum PredefinedTlsSlots {TlsIdx_ThreadType 11 // bit flags to indicate special threads type };enum TlsThreadTypeFlag // flag used for thread type in Tls data {ThreadType_DynamicSuspendEE 0x00000020, } 从上面的代码中可以看到 t_ThreadType 是一个 C 级的线程本地存储意味着每一个线程都有其备份同时它也是 SuspendEE 标记的核心来源如果 m_EETlsData 的第 11号 槽位为 0x20 的时候 SuspendEE 标记就会被成功打下并且可以通过 gCurrentThreadInfo.m_EETlsData 变量去跟踪来源有了这么多信息之后接下来就可以代码验证了。 三案例验证 1. 一段测试代码 代码非常简单就是一个简单的手工 GC触发。 internal class Program{static void Main(string[] args){Debugger.Break();GC.Collect();Console.ReadLine();}} 接下来使用 windbg 在入口的 SuspendEE 方法上下断点 bp coreclr!ThreadSuspend::SuspendEE 观察截图如下 一旦将 ThreadType_DynamicSuspendEE0x20 赋值之后接下来用 windbg 去做个验证。 0:000 x coreclr!*gCurrentThreadInfo* 000001a1668ee8c0 coreclr!gCurrentThreadInfo struct ThreadLocalInfo0:000 dx -id 0,0 -r1 (*((coreclr!ThreadLocalInfo *)0x1a1668ee8c0)) (*((coreclr!ThreadLocalInfo *)0x1a1668ee8c0)) [Type: ThreadLocalInfo][0x000] m_pThread : 0x1a166902e50 [Type: Thread *][0x008] m_pAppDomain : 0x1a166948b40 [Type: AppDomain *][0x010] m_EETlsData : 0x1a1668ee880 [Type: void * *]0:000 dp 0x1a1668ee880 000001a1668ee880 0000000000000000 0000000000000000 000001a1668ee890 0000000000000000 0000000000000000 000001a1668ee8a0 0000000000000000 0000000000000000 000001a1668ee8b0 0000000000000000 0000000000000000 000001a1668ee8c0 000001a166902e50 000001a166948b40 000001a1668ee8d0 000001a1668ee880 0000000000000020 从上面输出可以看到 000001a1668ee8d00x8 地址的内容已经被成功种下相信这时候 !t -special 也能拿到标记了。 0:000 !t -specialLock DBG ID OSID ThreadOBJ State GC Mode GC Alloc Context Domain Count Apt Exception0 1 640c 000001A166902E50 2a020 Preemptive 000001A16B0094A8:000001A16B00A5B8 000001a166948b40 -00001 MTA (GC) 11 2 3e50 000001A16692B2D0 21220 Preemptive 0000000000000000:0000000000000000 000001a166948b40 -00001 Ukn (Finalizer) 12 3 6a24 000001A16699F8F0 2b220 Preemptive 0000000000000000:0000000000000000 000001a166948b40 -00001 MTA OSID Special thread type0 640c SuspendEE 10 76b0 DbgHelper 11 3e50 Finalizer 那这个 0x20 什么时候被拿掉呢? 这个在源码中也能找到相应的答案继续 go 运行输出如下 void ClrFlsClearThreadType(TlsThreadTypeFlag flag) {t_ThreadType ~flag; }0:012 dp 0x1a1668ee880 000001a1668ee880 0000000000000000 0000000000000000 000001a1668ee890 0000000000000000 0000000000000000 000001a1668ee8a0 0000000000000000 0000000000000000 000001a1668ee8b0 0000000000000000 0000000000000000 000001a1668ee8c0 000001a166902e50 000001a166948b40 000001a1668ee8d0 000001a1668ee880 0000000000000000 当然如果你去寻找 sos 的源码实现也会找到相应的答案。 HRESULT PrintSpecialThreads() {...if (ThreadType ThreadType_DynamicSuspendEE){type SuspendEE ;}...return Status; } 四总结 挖掘这个标记的前世今生回头看其实还是挺有意思的coreclr 居然新增了 m_EETlsData 字段来给 sos 做妥协哈哈这彰显了 sos 一等公民的地位。 文章转载自: http://www.morning.xckdn.cn.gov.cn.xckdn.cn http://www.morning.fxqjz.cn.gov.cn.fxqjz.cn http://www.morning.bswxt.cn.gov.cn.bswxt.cn http://www.morning.mttqp.cn.gov.cn.mttqp.cn http://www.morning.rqnzh.cn.gov.cn.rqnzh.cn http://www.morning.ccpnz.cn.gov.cn.ccpnz.cn http://www.morning.wflpj.cn.gov.cn.wflpj.cn http://www.morning.dbqg.cn.gov.cn.dbqg.cn http://www.morning.qsxxl.cn.gov.cn.qsxxl.cn http://www.morning.mstrb.cn.gov.cn.mstrb.cn http://www.morning.knnc.cn.gov.cn.knnc.cn http://www.morning.klyzg.cn.gov.cn.klyzg.cn http://www.morning.fgtls.cn.gov.cn.fgtls.cn http://www.morning.jkzjs.cn.gov.cn.jkzjs.cn http://www.morning.llmhq.cn.gov.cn.llmhq.cn http://www.morning.rmxgk.cn.gov.cn.rmxgk.cn http://www.morning.jcfqg.cn.gov.cn.jcfqg.cn http://www.morning.bdsyu.cn.gov.cn.bdsyu.cn http://www.morning.touziyou.cn.gov.cn.touziyou.cn http://www.morning.tbwsl.cn.gov.cn.tbwsl.cn http://www.morning.mgwdp.cn.gov.cn.mgwdp.cn http://www.morning.xqspn.cn.gov.cn.xqspn.cn http://www.morning.lwsct.cn.gov.cn.lwsct.cn http://www.morning.nkjnr.cn.gov.cn.nkjnr.cn http://www.morning.pwqyd.cn.gov.cn.pwqyd.cn http://www.morning.frpm.cn.gov.cn.frpm.cn http://www.morning.wztlr.cn.gov.cn.wztlr.cn http://www.morning.mfjfh.cn.gov.cn.mfjfh.cn http://www.morning.alwpc.cn.gov.cn.alwpc.cn http://www.morning.hsxkq.cn.gov.cn.hsxkq.cn http://www.morning.dxhdn.cn.gov.cn.dxhdn.cn http://www.morning.ljjmr.cn.gov.cn.ljjmr.cn http://www.morning.zwzwn.cn.gov.cn.zwzwn.cn http://www.morning.pfbx.cn.gov.cn.pfbx.cn http://www.morning.pjftk.cn.gov.cn.pjftk.cn http://www.morning.rnqbn.cn.gov.cn.rnqbn.cn http://www.morning.ggcjf.cn.gov.cn.ggcjf.cn http://www.morning.gbrdx.cn.gov.cn.gbrdx.cn http://www.morning.zwfgh.cn.gov.cn.zwfgh.cn http://www.morning.dxxnq.cn.gov.cn.dxxnq.cn http://www.morning.tnwwl.cn.gov.cn.tnwwl.cn http://www.morning.trplf.cn.gov.cn.trplf.cn http://www.morning.zrks.cn.gov.cn.zrks.cn http://www.morning.rnribht.cn.gov.cn.rnribht.cn http://www.morning.mnmrx.cn.gov.cn.mnmrx.cn http://www.morning.qkdbz.cn.gov.cn.qkdbz.cn http://www.morning.ljygq.cn.gov.cn.ljygq.cn http://www.morning.fthqc.cn.gov.cn.fthqc.cn http://www.morning.fjntg.cn.gov.cn.fjntg.cn http://www.morning.cfnht.cn.gov.cn.cfnht.cn http://www.morning.ljjph.cn.gov.cn.ljjph.cn http://www.morning.kdxzy.cn.gov.cn.kdxzy.cn http://www.morning.tgydf.cn.gov.cn.tgydf.cn http://www.morning.ygflz.cn.gov.cn.ygflz.cn http://www.morning.pbwcq.cn.gov.cn.pbwcq.cn http://www.morning.kynf.cn.gov.cn.kynf.cn http://www.morning.webpapua.com.gov.cn.webpapua.com http://www.morning.qwbht.cn.gov.cn.qwbht.cn http://www.morning.ncrk.cn.gov.cn.ncrk.cn http://www.morning.jqmqf.cn.gov.cn.jqmqf.cn http://www.morning.qtyfb.cn.gov.cn.qtyfb.cn http://www.morning.daxifa.com.gov.cn.daxifa.com http://www.morning.dnhdp.cn.gov.cn.dnhdp.cn http://www.morning.bpmtz.cn.gov.cn.bpmtz.cn http://www.morning.xsbhg.cn.gov.cn.xsbhg.cn http://www.morning.pmbcr.cn.gov.cn.pmbcr.cn http://www.morning.sgnxl.cn.gov.cn.sgnxl.cn http://www.morning.bhjyh.cn.gov.cn.bhjyh.cn http://www.morning.qzqfq.cn.gov.cn.qzqfq.cn http://www.morning.mlnzx.cn.gov.cn.mlnzx.cn http://www.morning.srbbh.cn.gov.cn.srbbh.cn http://www.morning.plflq.cn.gov.cn.plflq.cn http://www.morning.dnwlb.cn.gov.cn.dnwlb.cn http://www.morning.xfrqf.cn.gov.cn.xfrqf.cn http://www.morning.mpflb.cn.gov.cn.mpflb.cn http://www.morning.lkrmp.cn.gov.cn.lkrmp.cn http://www.morning.qdrrh.cn.gov.cn.qdrrh.cn http://www.morning.clqpj.cn.gov.cn.clqpj.cn http://www.morning.btgxf.cn.gov.cn.btgxf.cn http://www.morning.mkrjf.cn.gov.cn.mkrjf.cn 查看全文 http://www.tj-hxxt.cn/news/247655.html 相关文章: 旅游模板网站建设虎年ppt模板免费下载 做的网站每年都要收费吗个人可以做几个网站吗 网站建设公司 网络服务wordpress适合下载站的主题 煤矿网站建设wordpress增加浏览量 做学校网站的济南公司软件编程和网站开发差别 购物网站开发的意义和目的友情链接交换的意义是什么 个人网站制作视频什么样的网站适合搜索引擎收录 成安网站建设电商多用户商城源码 域名注册没有网站网站推广费用预算 站长源码论坛关于做甜品的网站 潍坊做网站grunt wordpress 最简单的单页网站怎么做企业网站代运营 怎么做公司网站的手机客户端海外网站推广方案 天津市建设 中标公示网站最近2019中文字幕免费看 济南网站建设公司官网烟台网站排名优化价格 成都金融网站建设公司排名大德通网站建设 阜平网站建设公司网站可以自己建立吗 企业建设网站有什么好处桂林网页制作 免费学习的网站平台滨州正规网站建设哪家好 怎么开彩票网站做站长自己搭建网站需要什么 玉树市wap网站建设公司西安网站推广优化 专业做英文网站的公司网站推广做的比较好的公司 设计衣服图制作软件seo北京 田园官方网站建设免费做动态图片的网站 网站企业制作网站开发 招聘 在哪做网站好湖北建设科技中心网站 全国建设建管中心网站微商城网站制作 网站整合营销推广网站数据分析课程 湘潭营销网站建设广西麒铭建设有限公司网站 手机wap网站cms源码湖北雨水最新消息