记一次C#windows上闪退系统日志报MSVCR120.dll的问题排查

我们C#运行在.NET Framework上,如果异常没被捕获到,在系统日志里面会有具体的报错。但是如果调用了C++编写的dll,库里面做了什么操作调用了什么我们也不可知晓,这种时候就不会有具体的提示。

首先,我们需要知道都调用了哪些库,从库到具体的调用函数一步步排查,从没出问题的版本到出问题的版本一步步对比。这针对的是极端条件下:没有函数说明、没有Demo。如果有就简单多了,有个参照对照就好。最近碰到的情况是供应商没有提供了最新的库,简单说了一下新增的函数调用的作用,但是没有Demo,出现问题后,要去对比函数的调用关系,有时候得多次调用某个函数会偶现闪退,这种可能是C++库内部索引数组超限什么的。

        [DllImport("z.dll", CallingConvention = CallingConvention.StdCall)]
        public static extern uint ClearDatas(IntPtr channel_handle);



        Method.ClearDatas(channel_handle_);

总之,碰到这种问题一定要把目光聚集到C++库身上。再有复杂的问题,比如闪退了,连系统日志都没有,那这个时候就要考虑环境问题了,操作系统该排查的也要排查。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值