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

网站优化推广软件抖音上做我女朋友网站

网站优化推广软件,抖音上做我女朋友网站,互联网营销软件,河南建设银行招聘网站最近遇到个比较经典的案例,在c#中调用yara进行文件检测,yara是c编写的一个非常强大库,github有个大佬用c#对其进行了封装,使其能在跨平台下,只需编译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.yayakq.cn/news/980793/

相关文章:

  • 国外外贸网站汕头网站建设小程序
  • 公司建网站网站备案号信息
  • 深圳网址排名aso优化排名违法吗
  • ps做登录网站网站搜索结果页面怎么做
  • 网站建设编程时注意事项展示页网站怎么做排名
  • 做明星网站创建网站的目的是什么意思
  • 专业的网站设计师米能花型设计师服务平台
  • 上海做网站seo企业网d1net的功能
  • 肇庆市专注网站建设平台国内软件上市公司排行榜
  • 网站官网建设成品网站1688入门网
  • 南宁在那里推广网站wordpress页面视频播放器
  • 网站怎么在移动端推广苏州建站方法
  • 网站建设优化服务方案模板足球世界排名一览表
  • 网站访问量什么意思南川网站制作
  • 成都个人网站开发wordpress删除版权信息
  • 毕业设计购物网站怎么做什么公司能做网站建设
  • 做旅游网站的写手做网站常用的小语种有哪些
  • 哪个做企业网站问答 WordPress
  • 罗村建网站品牌宣传策略有哪些
  • 长春网站建设phpjz公共交通公司网站建设方案
  • 湖州网站建设服务公司产品外观设计用什么软件
  • 免费网站制作成品h5页面制作软件电脑版
  • 网站建设有哪些岗位电商是什么一般是干嘛的
  • 广东工厂网站建设wordpress建站站长之家
  • 石家庄网站建设兼职网站制作q
  • 好利蛋糕店官方网站网站域名商代理商
  • wordpress改论坛鞍山seo公司
  • 深圳优化网站排名十大销售管理软件排行榜
  • 天津网站建设方案策划南宁网站建设设计
  • 企业网站优化与推广php网站建立教程