c - 如何查找由于信号 SIGSEGV、Segmentation failure 导致的错误?

标签 c

我已经为实时项目创建了 C 代码。我使用的是 Ubuntu 15.04,代码崩溃的结果是(gdb):

     Program received signal SIGSEGV , Segmentation fault.
     [Switching to thread 0x7fffeb7fe700 (LWP 4072)]
     __GI___pthread_mutex_lock (mutex=0xfffffffeb5c6dcb0)
     at ../nptl/pthread_mutex_loxk.c:67
     67       ../nptl/pthread_mutex_lock.c: File o directory non esistente

小费: (gdb) x/i $pc 屏幕上出现以下消息:

     => 0x7ffff7bc4c84 <__GI___pthread_mutex_lock+4>:   move  0x10(%rdi),%edx

问题是否是由 stackoverflow 引起的?我该如何解决这个问题? 是否可以知道出现崩溃的确切代码行?

最佳答案

我建议使用Valgrind帮助追踪此类错误。另外,请务必将 -g 选项传递给 gcc,以便在调试时显示行号和源代码行。

关于c - 如何查找由于信号 SIGSEGV、Segmentation failure 导致的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32893196/

相关文章:

c - 需要帮助理解位图、位运算和 C

c - 如何在 C 中实现将名称与 void 函数相关联的映射?

c - 读入文件,段错误

c - 查找热量指数和冷风的程序(C程序)

c - 在 C 程序中使用 Valgrind

c - 将文件的每一行作为字符串存储在数组中

c - 将数组传递给函数

c - 如何排除 'for' 内的数字

html - 如何保存 CGI 应用程序的服务器状态?

c - 在linux中打印源mac地址时遇到问题