c++ - 我如何解释 X 程序回溯报告?

标签 c++ linux

我正在玩 X 开发。我有一个基本的 proto-WM 可以运行一段时间,然后在相当随机的时间后产生这些错误。

[编辑]

Locking assertion failure.  Backtrace:
#0 /usr/lib/libxcb-xlib.so.0 [0x7f71dcf9a9ac]
#1 /usr/lib/libxcb-xlib.so.0(xcb_xlib_unlock+0x24) [0x7f71dcf9aa54]
#2 /usr/lib/libX11.so.6 [0x7f71ddefe340]
#3 /usr/lib/libX11.so.6(XAllocColor+0xc1) [0x7f71ddedada1]
#4 /home/mais/code/simplewin/bin/Debug/simplewin [0x408e0b]
#5 /home/mais/code/simplewin/bin/Debug/simplewin [0x409062]
#6 /home/mais/code/simplewin/bin/Debug/simplewin [0x407a9d]
#7 /home/mais/code/simplewin/bin/Debug/simplewin [0x406c6d]
#8 /home/mais/code/simplewin/bin/Debug/simplewin [0x402734]
#9 /home/mais/code/simplewin/bin/Debug/simplewin [0x407e37]
#10 /home/mais/code/simplewin/bin/Debug/simplewin [0x407304]
#11 /home/mais/code/simplewin/bin/Debug/simplewin [0x407335]
#12 /lib/libpthread.so.0 [0x7f71ddc9afc7]
#13 /lib/libc.so.6(clone+0x6d) [0x7f71dd26a59d]
Locking assertion failure.  Backtrace:
#0 /usr/lib/libxcb-xlib.so.0 [0x7f71dcf9a9ac]
#1 /usr/lib/libxcb-xlib.so.0(xcb_xlib_lock+0x17) [0x7f71dcf9ab17]
#2 /usr/lib/libX11.so.6 [0x7f71ddefe420]
#3 /usr/lib/libX11.so.6 [0x7f71ddefeb5b]
#4 /usr/lib/libX11.so.6 [0x7f71ddefeeb5]
#5 /usr/lib/libX11.so.6(XNextEvent+0x68) [0x7f71ddee5898]
#6 /home/mais/code/simplewin/bin/Debug/simplewin [0x404bc2]
#7 /lib/libpthread.so.0 [0x7f71ddc9afc7]
#8 /lib/libc.so.6(clone+0x6d) [0x7f71dd26a59d]

这看起来像是我的应用程序中的某种同步错误;大部分时间使用的资源以正确的顺序释放,但在某些阶段这会混淆,然后发生错误。
我如何解释上述内容以找到错误的位置/原因?

最佳答案

1) 使用 debug symbold 构建程序(在 gcc 上,传递 -g 选项)
2)启用核心文件,一旦你的应用程序崩溃,用核心文件在gdb中打开它,并检查回溯
3) 您的应用程序是多线程的并使用 xlib 吗?如果是这样,您需要启用对 xlib 函数的多线程访问。
4) 安装 ddd,并使用它运行您的应用程序(ddd 是 linux 调试器 gdb 的 gui 前端)

关于c++ - 我如何解释 X 程序回溯报告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4014308/

相关文章:

c++ - 我如何(如果有的话)在堆上模拟模拟类?

c++ - 函数指针中的协变类型

c++ - 在2D vector 中使用第三个[]有什么目的?

linux - 删除包含在另一个文件中任何位置找到的模式的行

linux - 如何管道或重定向 curl -v 的输出?

c++ - 哪个 DLL 有 PathCchAppend?

c++ - 如何检测两个 3D 点云之间的差异?

linux - 使用 unix 命令通过 http 流式传输日志文件数据。尾部和 curl 的组合

c - 接入点初始扫描

linux - 系统调用中的系统调用