linux下So覆盖导致coredump问题的分析
来源:互联网 发布:md5解密算法java代码 编辑:程序博客网 时间:2024/04/30 01:35
我们的公共组件绝大部分都支持so形式的自定义插件,比如s++,qzhttp,ttc。在不停进程更新so的时候往往会产生coredump,并且肯定core得莫名其妙,core得让人心碎。
先看一下用cp的方式更新so的时候发生了什么事情
strace cp new.so old.so #strace是人间利器
发现老的so被trunc了,这个过程发生的具体的事情是:
所以,如果用相同的so去覆盖
所有问题的产生都是因为so被trunc了一把,所以如果不用turnc的方式就避免这个问题。Ok,该我们的install 上场了。
strace install new.so old.so
install 的方式跟cp不同,先unlink再creat,当unlink的时候,已经map的虚拟空间vma中的inode结点没有变,只有inode结点的引用计数为0是,kernel才把它干掉。
也就是新的so和旧的so用的不是同一个inode结点,所以不会相互影响。这时只有得启程序才会使用到新的so。所以采用这种方式的话就可以避免先stop进程,更新so,再重启进程这样比较耗时的操作。- linux下So覆盖导致coredump问题的分析
- linux下So覆盖导致coredump问题的分析
- linux下so覆盖导致coredump问题的分析
- linux下的coredump
- 协议文件不一致导致的coredump问题
- linux下coredump的使用
- GDB分析PHP连接Memcached 导致coredump问题
- [问题解析] 记一次__do_global_ctors_aux导致的coredump
- Linux下使用coredump时的注意事项
- Linux下coredump文件的查看
- Linux下设置生成apache的coredump
- Linux下coredump文件的查看
- Linux下coredump文件的查看
- linux下coredump的配置与调试
- Linux下coredump
- linux下cp,mv进行动态库覆盖问题分析
- Linux下TCP延迟确认(Delayed Ack)机制导致的时延问题分析
- Linux下TCP延迟确认(Delayed Ack)机制导致的时延问题分析
- CentOS 6 NFS的安装配置
- HTML5预测 取代本地App将成为可能
- 关于LayoutSubviews何时被调用
- php程序模拟一个栈
- 伤离别,无处话凄凉
- linux下So覆盖导致coredump问题的分析
- 解决undefined reference to `__aeabi_uidivmod'、 `__aeabi_uidiv'错误
- 剖析Linux系统启动过程
- php反射的使用例子
- linux下webcam进行录像, gstreamer架构
- JMEditor安装使用教程
- 孔子为什么不算卦
- Linux 替换运行中的程序
- java图片裁切工具类