自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

調(diào)試 Gnome-Shell 經(jīng)驗(yàn)分享

系統(tǒng) 瀏覽器
最近在寫 gnome-shell 的插件, 一般插件的異常是會被 gnome-shell 捕獲到的, gnome-shell 一旦捕獲到插件的異常會立即重載(最多兩次), 因?yàn)?gnome-shell 每次重載的時候會自動清空 looking glass 里滿的日志信息, 所以我們不知道到底是代碼什么地方錯了, 而且超過兩次后 gnome-shell 是不會再次重載的,所以就不得不重啟登錄管理器重新進(jìn)入桌面(所有進(jìn)程都會被強(qiáng)制關(guān)閉), 這樣是非常浪費(fèi)調(diào)試時間的。 所以方法就是讓 gnome-shell 在 gdb 里面跑, 這樣 gnome-shell crash 以后可以從 gdb 得到堆棧信息從而快速調(diào)試程序。

最近在寫 gnome-shell 的插件, 一般插件的異常是會被 gnome-shell 捕獲到的, gnome-shell 一旦捕獲到插件的異常會立即重載(最多兩次), 因?yàn)?gnome-shell 每次重載

的時候會自動清空 looking glass 里滿的日志信息, 所以我們不知道到底是代碼什么地方錯了, 而且超過兩次后 gnome-shell 是不會再次重載的,所以就不得不重啟登錄管理器

重新進(jìn)入桌面(所有進(jìn)程都會被強(qiáng)制關(guān)閉), 這樣是非常浪費(fèi)調(diào)試時間的。

所以方法就是讓 gnome-shell 在 gdb 里面跑, 這樣 gnome-shell crash 以后可以從 gdb 得到堆棧信息從而快速調(diào)試程序。

下面是完整的調(diào)試步驟:

1. 正常登入 gnome-shell 桌面
2. 按 Ctrl+Alt+F1 進(jìn)入終端并用同樣的用戶名登入
3. 用下面的代碼導(dǎo)出 DISPLAY(讓gnome-shell 在你指定的DISPLAY下顯示):

export DISPLAY=:0

4. 用下面的代碼啟動 gdb:

gdb /usr/bin/gnome-shell

5. 在 gdb 中輸入:

r --replace

6. 按 Ctrl+Alt+F7 切換回 gnome-shell 桌面, 然后可以重新暢游Gnome Shell了。
7. 當(dāng) gnome-shell 崩潰以后, 按 Ctrl+Alt+F1 切回終端就可以看到 gdb 里面的堆棧信息:
比如寫3D 切換擴(kuò)展代碼有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

就可以了, 所有的程序都不會因?yàn)?gnome-shell 的崩潰而需要重新啟動, 節(jié)省了大量的調(diào)試時間。

好了, 上面就是完整的調(diào)試 gnome-shell 的流程, 希望對大家調(diào)試 gnome-shell 有所幫助。Enjoy!

原文地址:http://planet.linuxdeepin.com/2012/01/12/test-gnome-shell-tips-fo-manateelazycat/

責(zé)任編輯:tuhaihe 來源: Linux Deepin官方博客
相關(guān)推薦

2013-10-08 14:51:29

Gnome 3Gnome-Shell

2011-07-15 09:46:27

Gnome-Shell

2011-01-10 10:29:27

Ubuntu 10.1Gnome-Shell

2017-02-14 09:28:08

GNOME Shell桌面Linux

2009-12-16 16:37:59

Ruby on Rai

2013-05-03 13:45:42

KVM故障調(diào)試

2012-01-29 19:50:39

Linux Deepi Gnome Shel

2011-12-21 10:40:16

Deepin GNOM

2022-01-24 11:45:25

GNOME 42GNOME ShelUI

2023-02-28 15:40:16

鴻蒙CPU渲染

2023-03-23 16:02:07

樹莓派4GPU調(diào)試

2012-03-15 00:06:56

Ubuntu Unity GNOME

2009-02-13 14:36:27

GNOMEShell桌面組件

2009-09-28 10:52:00

CCNA考試經(jīng)驗(yàn)CCNA

2011-07-12 13:41:15

C++

2011-06-01 14:18:12

Gnome ShellUbuntu 11.1

2022-06-02 09:14:14

GNOME源碼編譯Linux 發(fā)行版

2009-09-16 08:54:02

思科認(rèn)證CCIECCNA

2009-12-18 17:01:37

Ruby基礎(chǔ)代碼

2009-12-22 16:03:03

WCF異常
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號