![提示调查 strace 时不再发生的某些 SEGFAULT](https://linux22.com/image/211417/%E6%8F%90%E7%A4%BA%E8%B0%83%E6%9F%A5%20strace%20%E6%97%B6%E4%B8%8D%E5%86%8D%E5%8F%91%E7%94%9F%E7%9A%84%E6%9F%90%E4%BA%9B%20SEGFAULT.png)
我得到一个应用程序(8.8 版本中的 webcamoid),该应用程序曾经工作顺利,现在在启动时系统地出现段错误(kde-plasma/X11 甚至没有机会打开一些关联的窗口。)
只能记录一些非常短的日志在内核日志中发现:
Sep 29 13:15:16 [kernel] [10021.734124] webcamoid[3236]: segfault at 0 ip 0000000000000000 sp 00007fffffffd3c8 error 14 in webcamoid[555555554000+d000]
Sep 29 13:15:16 [kernel] [10021.734128] Code: Bad RIP value.
没有堆栈转储,没有核心转储(后者可能是因为我的内核配置)
当然,我首先尝试运行它strace
,但未能获得任何有价值的信息,因为……问题根本就没有发生。 (关联窗口打开并且应用程序正常运行)
我理解日志的直接含义。
1/这一切是否意味着这是一个时序问题?
2/ 有什么办法strace
可以让我获得更多的见解吗?
3/ 最终允许 core-dumps 和 sdb-ing 是唯一可能的路径吗?
顺便说一句,这个应用程序在我的备份系统下完美运行的同一版本,它位于某些较低版本的内核和包的依赖项下。
我尝试从源代码重建应用程序并运行一些旧版本的内核(因此 v4l 驱动程序,因为它们内置于内核中),降级了自(alsa-lib & gstreamer & ffmpeg)以来更新的 1 级包的依赖项,但没有任何运气。
当然,我知道 webcamoid_9.0 已经出来了,但是升级并不是一个选择,并不是说这个问题的领域比网络摄像头。
编辑1:也尝试过数据库: 与斯特雷斯:没有段错误,一切运行正常。