- 论坛徽章:
- 0
|
多线程程序运行一段时间产生core文件,gdb调试的时候显示发生了段错误,但定位不错段错误的位置,显示如下:- Program terminated with signal 11, Segmentation fault.
- #0 0x47e10000 in ?? ()
- (gdb) bt
- #0 0x47e10000 in ?? ()
- #1 0x47e10000 in ?? ()
- Backtrace stopped: previous frame identical to this frame (corrupt stack?)
复制代码 程序使用的动态库都已经通过set solib-absolute-prefix和set solib-search-path 命令设置好了,gdb的时候也没有提示找不到的符号之类的信息。但函数名却一直是问号,搞不懂什么原因。
还有就是程序中没有递归调用为什么frame 0 与 frame 1的地址是一样的?除了使用gdb还有没有其他方法可以定位到出错的位置呢?
我小心检查了多线程函数,没有发现使用了非线程安全的函数,但用来usleep,前阵子cu在讨论usleep的线程安全性,会是它不安全吗? |
|