文章目录
gnome-shell 调试
- 正常登入 gnome-shell 桌面
- 按 Ctrl+Alt+F1 进入终端并用同样的用户名登入
- 用下面的代码导出 DISPLAY(这样gnome-shell就可以在你指定的DISPLAY下显示):
export DISPLAY=:0
- 用下面的代码启动 gdb:
gdb /usr/bin/gnome-shell
- 在 gdb 中输入:
r --replace
- 按 Ctrl+Alt+F7 切换回 gnome-shell 桌面, 然后随便玩
- 当 gnome-shell 崩溃以后, 按 Ctrl+Alt+F1 切回终端就可以看到 gdb 里面的堆栈信息:
比如我写的3D切换扩展代码有Bug, 在 gdb 可以看到一下信息:
Exception was: Error: Expected type ‘ClutterActor’ but got ‘GObject’
…
/home/andy/.local/share/gnome-shell/extensions/windows-alt-tab-3d@linuxdeepin.com/extension.js:625
…
从上面的堆栈信息就可以快速定位到 625 行代码有问题。
这样如果要重新加载 gnome-shell , 直接在 gdb 输入
r --replace
就可以了, 所有的程序都不会因为 gnome-shell 的崩溃而需要重新启动, 节省了大量的调试时间。