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

西安建筑网站建设建设部网站电子政务

西安建筑网站建设,建设部网站电子政务,毕业设计题目怎么选题,周浦做网站最近遇到个比较经典的案例#xff0c;在c#中调用yara进行文件检测#xff0c;yara是c编写的一个非常强大库#xff0c;github有个大佬用c#对其进行了封装#xff0c;使其能在跨平台下#xff0c;只需编译yara的so或dll就能直接跑。但总是在Release版本下时不时就崩溃…最近遇到个比较经典的案例在c#中调用yara进行文件检测yara是c编写的一个非常强大库github有个大佬用c#对其进行了封装使其能在跨平台下只需编译yara的so或dll就能直接跑。但总是在Release版本下时不时就崩溃而且崩的位置非常奇怪在Debug版本下不会崩分析了好久终于找到了原因 https://github.com/airbus-cert/dnYara 然后它提供了官方demo看起来是没有问题的但实际隐藏了个非常难排查的bug。 根据yara的调用说明需要做全局初始化而dnyara把初始化封装在了YaraContext中并实现了Idisposable。可以看到在它的demo中对ctx没有任何的引用成为了一个悬置的变量。在下面Compile或者ScanFile的时候就总是报内存访问异常。 起初还以为是yara c代码上的问题但看了下它源码发现这一段调用没有明显的逻辑或者内存上的错误那么就往.net上排查。突然想到有个GC线程然后猜测是gc线程在函数内部对ctx进行了回收在Release下回收的机制可能更快速因为yara的规则编译和扫描都是比较耗时的。顺便在chatgpt上进行了些求证 证明我的猜测基本是对的GC的行为受编译器优化而未引用变量会被编译器标记导致gc在函数体内部进行回收。 这个地方显然是dnyara封装的锅正确的封装方式为不实现Idispose写一个Release函数让别个在外面手动调用。这样既保证了释放处对ctx有引用不会被gc回收又在没有引用的情况下被回收也不会造成c库的内存错误。如果不改dnyara源码随意增加一处对ctx的强引用就可以避免这个问题了
http://www.dnsts.com.cn/news/231869.html

相关文章:

  • 常州网站建设培训网站建设哪个部门管理
  • 网站建设 软件有哪些wordpress 鼠标移动到标题会显示图片
  • 国外做游戏评测的视频网站公司网站建设考核
  • 西安网站建设的软件网站建设 知乎
  • 健康养生网站模板深圳建设营销型网站
  • 手机网站大全免费下载内蒙古建设网官网查询中心
  • dz网站开发绵阳商城网站建设
  • 企业网站建设合同书标准版oto网站开发
  • 国外网站dns在线解析wordpress 聚美主题
  • 网页设计网站网站流量下降的原因
  • 做网站通常又什么开发完成免费设计房屋的软件
  • 徐汇网站建设推广网络推广的网站有哪些
  • 免费简历制作网站推荐房产网站设计公司
  • 微商手机网站制作公司石家庄有什么好玩的地方
  • 可以免费做网站吗国内有奖活动第一分享平台
  • 百度网盘网站开发文档模板品牌设计与策划
  • 物流网站建设网wordpress内外网访问
  • p2p网站制作流程青岛市建设工程质量安全监督站官方网站
  • 可信赖的宜昌网站建设网站建设咨询推荐
  • wordpress站点标题删除企业导航网站源码
  • ftp如何上传网站毕业设计做网站还是系统
  • 哪家网站建设公司深圳航空公司官网
  • 跨境网站有哪些平台制作旅游景点介绍网页
  • 国外数码印花图案设计网站平台公司实体化转型
  • 代做企业网站什么亲子网站可以做一下广告词
  • 国外响应式网站模板模版网站商城
  • 临沂网站建设 百度优化网页设计与制作实训总结3000字
  • 延安市城乡建设局网站wordpress安装成功后怎么进后台
  • 网站的优化与推广分析wordpress禁止更新代码
  • 国外可以做自媒体的网站互联网装修公司加盟