当前位置: 首页 > news >正文

led论坛网站建设备案时网站名称怎么写

led论坛网站建设,备案时网站名称怎么写,厦门网站制作策划,怎样可以快速增加网站的反链一#xff1a;背景 1.讲故事前几天 B 站上有位朋友让我从高级调试的角度来解读下 .NET7 新出来的 AOT#xff0c;毕竟这东西是新的#xff0c;所以这一篇我就简单摸索一下。二#xff1a;AOT 的几个问题 1. 如何在 .NET7 中开启 AOT 功能在 .NET7 中开启 AOT 非常方便…一背景 1.讲故事前几天 B 站上有位朋友让我从高级调试的角度来解读下 .NET7 新出来的 AOT毕竟这东西是新的所以这一篇我就简单摸索一下。二AOT 的几个问题 1. 如何在 .NET7 中开启 AOT 功能在 .NET7 中开启 AOT 非常方便先来段测试代码。internal class Program{static void Main(string[] args){Console.WriteLine(hello world!);Debugger.Break();}}然后在项目配置上新增 PublishAottrue/PublishAot 节点如下输出Project SdkMicrosoft.NET.SdkPropertyGroupOutputTypeExe/OutputTypeTargetFrameworknet7.0/TargetFrameworkImplicitUsingsenable/ImplicitUsingsNullableenable/NullablePublishAottrue/PublishAot/PropertyGroup /Project接下来在项目中右键选择 发布选择一个输出地这样一个 AOT 程序就完成了。2. SOS 可以调试 AOT 程序吗这是很多朋友关心的话题我们都知道 SOS 是用来撬开 CoreCLR 的只要能看到 CoreCLR.dll那 SOS 就能用接下来用 WinDbg 附加到 ConsoleApp2.exe 上使用 lm 观察。0:000 lm start             end                 module name 00007ff611680000 00007ff61196f000   ConsoleApp2 C (private pdb symbols)  C:\test\ConsoleApp2.pdb 00007ffe692b0000 00007ffe692c3000   kernel_appcore   (deferred)              00007ffe6b3e0000 00007ffe6b47d000   msvcp_win   (deferred)              00007ffe6b480000 00007ffe6b4ff000   bcryptPrimitives   (deferred)              00007ffe6b660000 00007ffe6b687000   bcrypt     (deferred)              00007ffe6b690000 00007ffe6b6b2000   win32u     (deferred)              00007ffe6b720000 00007ffe6b82a000   gdi32full   (deferred)              00007ffe6b830000 00007ffe6b930000   ucrtbase   (deferred)              00007ffe6b9e0000 00007ffe6bca7000   KERNELBASE   (deferred)              00007ffe6bcb0000 00007ffe6bd5a000   ADVAPI32   (deferred)              00007ffe6be50000 00007ffe6be7a000   GDI32      (deferred)              00007ffe6be80000 00007ffe6bf1b000   sechost    (deferred)              00007ffe6c180000 00007ffe6c2a3000   RPCRT4     (deferred)              00007ffe6c440000 00007ffe6c470000   IMM32      (deferred)              00007ffe6c600000 00007ffe6c729000   ole32      (deferred)              00007ffe6c730000 00007ffe6c7ce000   msvcrt     (deferred)              00007ffe6cc50000 00007ffe6cfa4000   combase    (deferred)              00007ffe6d160000 00007ffe6d300000   USER32     (deferred)              00007ffe6d410000 00007ffe6d4cd000   KERNEL32   (deferred)              00007ffe6dc50000 00007ffe6de44000   ntdll      (pdb symbols)          c:\mysymbols\ntdll.pdb\63E12347526A46144B98F8CF61CDED791\ntdll.pdb从上面的输出中惊讶的发现居然没有 clrjit.dll 和 coreclr.dll前者没有很好理解后者没有就很奇怪了。。。既然没看到 coreclr.dll 这个动态链接库那至少目前用 sos 肯定是无法调试的即使你强制加载也会报错。0:000 .load  C:\Users\Administrator\.dotnet\sos64\sos.dll 0:000 !t Failed to find runtime module (coreclr.dll or clr.dll or libcoreclr.so), 0x80004002 Extension commands need it in order to have something to do. For more information see https://go.microsoft.com/fwlink/?linkid2135652到这里我的个人结论是目前SOS无法对这类程序进行调试如果大家用在生产上出现各种内存暴涨CPU爆高问题就要当心了。3. AOT 真的没有 CoreCLR 吗其实仔细想一想这是不可能的C# 的出发点就是作为一门托管语言而存在再怎么发展也不会忘记这个初衷所谓不忘初心方得始终。我们回过头看下 ConsoleApp.exe 这个程序有没有发现它居然有 3M 大小。聪明的朋友应该猜到了对就是把 CoreCLR 打包到 exe 中了这个太牛了那怎么验证呢可以用 IDA 打开一下。从图中可以清晰的看到各种 gc_heap 相关的函数这也验证了为什么一个简简单单的 ConsoleApp.exe 有这么大Size的原因。4. 真的无法调试 AOT 程序吗在 Windows 平台上就没有 WinDbg 不能调试的程序所以 AOT 程序自然不在话下毕竟按托管不行大不了按非托管调试这里我们举一个 GC.Collect() 的源码调试吧。一段简单的测试代码。internal class Program{static void Main(string[] args){Debugger.Break();GC.Collect();}}下断点熟悉 GC 的朋友应该知道我只需用 bp coreclr!WKS::GCHeap::GarbageCollect 下一个断点就可以了但刚才我也说了内存中并没有 coreclr 模块下面的 x 写法肯定会报错。0:000 x coreclr!WKS::GCHeap::GarbageCollect^ Couldnt resolve x coreclr那怎么下呢先输个 k 观察下调用栈有没有什么新发现。0:000 k# Child-SP          RetAddr               Call Site 00 000000115e52f628 00007ff67f288c5a     ConsoleApp2!RhDebugBreak0x2 [D:\a\_work\1\s\src\coreclr\nativeaot\Runtime\MiscHelpers.cpp  45]  01 000000115e52f630 00007ff67f2f0e28     ConsoleApp2!S_P_CoreLib_System_Diagnostics_Debugger__Break0x3a [/_/src/coreclr/nativeaot/System.Private.CoreLib/src/System/Diagnostics/Debugger.cs  17]  02 000000115e52f6c0 00007ff67f1fe37e     ConsoleApp2!ConsoleApp2__Module___StartupCodeMain0x118 03 000000115e52f720 00007ff67f1f9540     ConsoleApp2!wmain0xae [D:\a\_work\1\s\src\coreclr\nativeaot\Bootstrap\main.cpp  205]  04 (Inline Function) ----------------     ConsoleApp2!invoke_main0x22 [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl  90]  05 000000115e52f770 00007ffe6d426fd4     ConsoleApp2!__scrt_common_main_seh0x10c [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl  288]  06 000000115e52f7b0 00007ffe6dc9cec1     KERNEL32!BaseThreadInitThunk0x14 07 000000115e52f7e0 0000000000000000     ntdll!RtlUserThreadStart0x21我去,int 3 函数也换了成了 ConsoleApp2!RhDebugBreak0x2不过也能看出来应该将 coreclr 改成 ConsoleApp2 即可输出如下0:000 bp ConsoleApp2!WKS::GCHeap::GarbageCollect breakpoint 0 redefined 0:000 g Breakpoint 0 hit ConsoleApp2!WKS::GCHeap::GarbageCollect: 00007ff67f1a9410 48894c2408      mov     qword ptr [rsp8],rcx ss:000000115e52f5f00000000000000000源码也看的清清楚楚路径也是在 gc 目录下。如下图所示4. AOT 的实现源码在哪里观察刚才的线程栈中的 D:\a\_work\1\s\src\coreclr\nativeaot\Bootstrap\main.cpp 可以发现新增了一个名为 nativeaot 的目录这在 .NET 6 的 coreclr 源码中是没有的。如果有感兴趣的朋友可以研究下源码。三总结 总的来说AOT 目前还是一个雏形阶段大家慎用吧一旦出了问题可不好事后调试哦希望后续加强对 SOS 的支持。
http://www.zqtcl.cn/news/629855/

相关文章:

  • 做体育的网站c2c跨境电商平台有哪些?
  • 山西响应式网站建设推荐全国企业信用信息公示系统浙江
  • 西安做网站维护的公司百度百科官网入口
  • 网站网站建设公司贵阳网站设计阳光创信好吗
  • 网站广告投放收费标准长沙公司制作网站费用
  • 网站建设有哪些环节做一个产品网站要多少钱
  • 公司网站建设价格河北网站制作 网站开发
  • 适合新手做的网站项目职业技术培训
  • 提高网站流量原则昆山做百度网站
  • 怎样设计自己的网站长春制作门户网站的公司
  • 亚马逊商标备案是否必须做网站Wordpress做APP后端
  • 主办单位性质与网站名称不符网站域名怎么买
  • 帝国cms下载类网站怎么做广州外贸营销网站建设公司
  • 网站开发软件开发流程免费做外贸的网站平台有哪些
  • 教育培训网站开发广告公司怎么设置网站关键字
  • 绩溪建设银行网站济南网站建设 刘彬彬
  • 网站开发是打代码吗建网站来做什么
  • 制作网站需要什么软件wordpress建站程序
  • 做网站网站怎么赚钱软件工程师证书报考时间
  • 手机和电脑网站分开做炒股软件下载
  • 网站建设需要注意哪些关键细节杭州做商务网站
  • 做网站,图片显示不出来网站图标代码
  • 理财网网站开发源码h5淘宝网网页版入口
  • 免费网站商城模板宁波企业网站搭建图片
  • 上海网站备案查询建站图标素材
  • 贵州省住房和建设厅网网站网站页面设计报告
  • 做网站友汇网快速建设网站视频教程
  • 物流公司做网站注重什么官网的网站设计公司
  • 网站备案 2016电子商务平台起名
  • 济南建站详情房地产市场分析