博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
无法捕获的C++异常
阅读量:2341 次
发布时间:2019-05-10

本文共 676 字,大约阅读时间需要 2 分钟。

今天遇到一个奇怪的现象, 同一个程序在一台机器上运行能捕获代码抛出的c++异常,   在另外一台机器上无法捕获异常直接abort出来,

堆栈如下:
#0  0xf77c6430 in __kernel_vsyscall ()
#1  0x002b6df0 in raise () from /lib/libc.so.6
#2  0x002b8701 in abort () from /lib/libc.so.6
#3  0x00615acc in _Unwind_Resume () from /lib/libgcc_s.so.1
#4  0x086bacbb in XXXXXXXXXXXXXXXXX
经过gdb单步跟踪基本怀疑是运行库的兼容性问题,  分别检查两台机器的gcc/glibc/libstdc++版本, 果然发现了端倪。
没问题的机器:  ls -lt /lib/libgcc_s.so.1
lrwxrwxrwx. 1 root root 28 Oct 31 09:01 /lib/libgcc_s.so.1 -> libgcc_s-4.4.6-20120305.so.1
有问题的机器: ls -lt /lib/libgcc_s.so.1
lrwxrwxrwx 1 root root 28 Sep 11 08:29 /lib/libgcc_s.so.1 -> libgcc_s-4.1.2-20080825.so.1
在备份之后, 果断把libgcc_s-4.4.6-20120305.so.1拷贝到有问题的机器上没覆盖之。  
再试, 竟然没问题了。

转载地址:http://njzvb.baihongyu.com/

你可能感兴趣的文章
写自己的ASP.NET MVC框架(上)
查看>>
C++和C在linux下编程和与在WINDOWS下有什么区别
查看>>
CSS 的优先级机制[总结]
查看>>
linux shell 数组建立及使用技巧
查看>>
IEnumerator 协程 全称协同程序
查看>>
java实现冒泡排序
查看>>
spring boot 初试,springboot入门,springboot helloworld例子
查看>>
Spring中配置和读取多个Properties文件--转
查看>>
使用JNI进行Java与C/C++语言混合编程(1)--在Java中调用C/C++本地库
查看>>
Mac 终端命令连接mysql
查看>>
Lua中的数学库
查看>>
多态小结
查看>>
Java连MySQL的驱动mysql-connector-java-5.1.21-bin.jar的安装方法
查看>>
java基础小结
查看>>
线程概念及死锁的理解
查看>>
数据结构之红黑树
查看>>
android学习之——界面 控件 体系 布局
查看>>
Eclipse开发Android程序在手机上运行
查看>>
ListView深入理解
查看>>
Activity的四种launchMode
查看>>