我知道这是一个bug,已经存在了一段时间,并修复了。但我的情况似乎有点不同。当我通过终端在gedit中打开一个文本文件时,我会收到以下错误:
*** BUG ***
In pixman_region32_init_rect: Invalid rectangle passed
Set a breakpoint on '_pixman_log_error' to debug我知道这是因为我的主题,因为我没有得到错误,当我切换我的主题。但我真的很喜欢我的主题,不想改变它。相反,我想找出导致错误的是哪些行或哪些行,并纠正它们。但是,我不知道该怎么做。在Android中,我可以简单地运行亚行logcat,看看是什么引起了问题。但我不是在Android上,而是在Linux 17.2上运行肉桂桌面。所以,我的问题是,我如何记录这个错误或以某种方式跟踪它?
发布于 2016-03-26 21:44:05
正如错误消息所暗示的,您需要使用调试器并在'_pixman_log_error‘函数上设置一个断点。Linux中的标准调试器是gdb,您可以在这里找到完整的用户手册:https://sourceware.org/gdb/current/onlinedocs/gdb/。
在您的特定用例中,最好的选择可能是将调试器附加到正在运行的进程。这可以通过启动gdb作为"gdb -p pid“来实现,其中pid是进程id号。然后在gdb命令提示符中输入"b _pixman_log_error“(在_pixman_log_error上设置一个断点),然后输入"c”(继续)。执行将继续进行,直到到达断点并返回到gdb命令提示符。然后输入"bt“(堆栈回溯),它将打印调用函数链。
请注意,如果违规进程对于在计算机上运行桌面环境至关重要,那么附加到它将只会冻结系统。最好的方法是使用另一台计算机(例如膝上型计算机)并通过ssh从它登录到主计算机。然后gdb可以在ssh会话中运行。
https://stackoverflow.com/questions/33458664
复制相似问题