鍍金池/ 教程/ C++/ 調(diào)試
調(diào)試
初始文件
作用域設(shè)置、作用域和作用域描述符
在Atom中移動
在Atom背后
Atom中的包
為什么選擇Atom?
從Textmate中轉(zhuǎn)換
小結(jié)
新手入門
折疊
代碼段
Hacking Atom
基本的自定義
Atom中的序列化
文本處理包
字數(shù)統(tǒng)計包
所需工具
維護你的包
Atom基礎(chǔ)
深入鍵表(keymap)
配置API
使用Atom
自動補全
面板
在Atom中寫作
文本選擇
創(chuàng)建主題
圖標(biāo)
小結(jié)
開發(fā)Node模塊
編輯和刪除文本
安裝Atom
通過服務(wù)和其它包交互
小結(jié)
編寫 spec
語法
Atom中的版本控制
查找和替換

調(diào)試

Atom拱了一些工具來幫助你理解預(yù)料之外的行為和調(diào)試問題。這篇指南介紹了一些工具和方法用于幫助你調(diào)試,以及提供了一些提交工單(issue)時的幫助信息。

升級到最新版本

你可能遇到了在最新版本已經(jīng)修復(fù)的問題。

如果你從源碼中編譯Atom,需要拉回(pull)master的最新版本并重新構(gòu)建。

如果你使用發(fā)布版本,檢查你所使用的Atom是什么版本:

$ atom --version
0.178.0-37a85bc

訪問發(fā)布列表來查看是否有更新的版本。你可以從發(fā)布頁面下載Atom來升級到最新的版本,或者通過應(yīng)用中的自動升級工具。應(yīng)用中的自動升級工具在你重啟Atom,或者點擊Atom > Check for Update菜單之后,會檢查和下載新的版本。

檢查鏈接的包

如果你開發(fā)或者發(fā)布Atom的包,可能會有一些遺留的包鏈接到~/.atom/packages或者~/.atom/dev/packages目錄下。你可以使用:

$ apm links

來列出所有鏈接的開發(fā)包。你可以使用apm unlink命令來移除鏈接,詳見apm unlink --help

檢查Atom和包的設(shè)置

在一些情況下,預(yù)料之外的行為可能是Atom或者某個包中的錯誤配置或者缺少配置造成的。

使用cmd-,來打開Atom的設(shè)置視圖,或者Atom > Preferences來打開菜單選項。

http://wiki.jikexueyuan.com/project/atom-flight-manual-zh-cn/images/settings-view.png" alt="" />

在設(shè)置面板中檢查Atom的設(shè)置,每個選項在這里都會有個詳細的描述。例如,如果你希望Atom使用硬tab(真的tab)而不是軟tab(空格),你應(yīng)該取消“Soft Tabs”選項。

由于Atom自帶一些包并且你可以自己安裝附加的包,檢查所有包的列表以及他們的設(shè)置。例如,如果你喜歡移除編輯器中間的豎直線,禁用Wrap Guide包。另外,如果你希望Atom移除行尾的空白字符,或者確保文件末尾有個空行,你可以在Whitespace包的選項中設(shè)置。

http://wiki.jikexueyuan.com/project/atom-flight-manual-zh-cn/images/package-settings.png" alt="" />

檢查快捷鍵

如果你按下快捷鍵之后沒有執(zhí)行命令,或者執(zhí)行了錯誤的命令,那個鍵位的快捷鍵可能出了些問題。Atom自帶keybinding resolver,一個小巧的包來幫助你理解執(zhí)行了哪個快捷鍵。

http://wiki.jikexueyuan.com/project/atom-flight-manual-zh-cn/images/keybinding-resolver.png" alt="" />

keybinding resolver會向你展示現(xiàn)有快捷鍵的列表,列表中包含以下內(nèi)容:

  • 快捷鍵的命令
  • 快捷鍵有效時,用于定義上下文的CSS選擇器
  • 快捷鍵被定義的文件

如果匹配到多個快捷鍵,Atom會根據(jù)選擇器的特性和以及他們被加載的順序來決定執(zhí)行哪個快捷鍵。如果你想要觸發(fā)的命令在keybinding resolver中列出,但是并沒有執(zhí)行,一般由以下兩種原因造成:

  • 快捷鍵并沒有在選擇器定義的上下文中使用。例如,你不能在樹視圖沒有焦點的情況下觸發(fā)“Tree View: Add File”命令。
  • 有另一個快捷鍵具有更高的優(yōu)先級。這通常發(fā)生在你安裝的包的快捷鍵和現(xiàn)有的快捷鍵沖突的時候。如果這個包的快捷鍵具有更高的特異性的選擇器,或者更晚被加載,它就會覆蓋現(xiàn)有的快捷鍵。

Atom首先會加載核心功能的快捷鍵,之后才是用戶定義的快捷鍵。由于用戶定義的快捷鍵在隨后加載,你可以使用keymap.cson文件來調(diào)整快捷鍵并解決問題。例如,你可以使用unset!指令來移除快捷鍵。

如果你發(fā)現(xiàn)一個包的快捷鍵優(yōu)先級要高于核心功能包,向這個包的GitHub 倉庫提交一個工單可能是個好主意。

查看是否在安全模式下出現(xiàn)問題

Atom絕大多數(shù)的功能都來源于你安裝的包。一些情況下,這些包可能會導(dǎo)致預(yù)料之外的行為、問題或者性能問題。

從命令行在安全模式下啟動Atom,來檢查是否是你安裝的一個包導(dǎo)致了問題:

$ atom --safe

這會啟動Atom,但是并不會加載~/.atom/packages~/.atom/dev/packages中的包。如果安全模式下問題不再出現(xiàn),那么可能那些包之一導(dǎo)致了問題。

要弄清楚到底是哪個包導(dǎo)致了問題,正常啟動Atom,并且按下cmd-,來打開設(shè)置。由于設(shè)置可以讓你禁用每個包,你可以依次禁用每個包,直到問題不再發(fā)生。在你禁用每個包來確保問題不再出現(xiàn)之后,重啟(cmd-q)或者重新加載(cmd-ctrl-alt-l)Atom。

當(dāng)你找到導(dǎo)致問題的包之后,你可以禁用或者卸載這個包,并且考慮向這個包的GitHub倉庫提交工單。

檢查你的配置文件

你可能在Atom的初始化腳本或者樣式表中定義了一些個性化的功能。在一些情況中,這些個性化的調(diào)整可能會導(dǎo)致問題,所以清除這些文件,并重啟Atom。

檢查在開發(fā)者工具中的錯誤

當(dāng)Atom中拋出了一個錯誤,開發(fā)者工具會在控制臺標(biāo)簽頁自動展示記錄的錯誤。而如果開發(fā)者工具在錯誤觸發(fā)之前打開,錯誤的整個棧軌跡會被記錄:

http://wiki.jikexueyuan.com/project/atom-flight-manual-zh-cn/images/devtools-error.png" alt="" />

如果你可以重現(xiàn)這個錯誤,使用這種方法來得到全部的棧軌跡。棧軌跡可能會指向你的初始化腳本,或者安裝的某個特定的包,可以禁用它們并且向Github倉庫提交工單。

在開發(fā)者頁面的CPU profiler中判斷性能問題

如果你在特定的情況中發(fā)現(xiàn)了性能問題,如果報告中包含了Chrome的CPU profiler截圖,提供了一些什么東西比較慢的洞察,你的報告會很有用處。

要運行profiler,在命令面板中打開開發(fā)者工具(“Window: Toggle Dev Tools”),訪問Profiles標(biāo)簽頁,選擇Collect JavaScript CPU Profile并點擊start按鈕。

http://wiki.jikexueyuan.com/project/atom-flight-manual-zh-cn/images/cpu-profile-start.png" alt="" />

然后返回Atom并且執(zhí)行速度慢的操作來做記錄。結(jié)束之后按下stop按鈕。切換到Chart視圖,會出現(xiàn)一副記錄操作的圖片。嘗試放大緩慢的部分,并且截圖來包含到你的報告中。你也可以保存并發(fā)送profile數(shù)據(jù),通過按下左邊面板中的名字(例如Profile 1)旁邊的Save按鈕。

http://wiki.jikexueyuan.com/project/atom-flight-manual-zh-cn/images/cpu-profile-done.png" alt="" />

詳見Chrome的CPU profiling文檔

檢查你是否安裝了開發(fā)工具鏈

如果你在使用apm install安裝一個包時出現(xiàn)問題,可能是因為那個包依賴了使用本地代碼的庫。所以你需要安裝C++編譯器和Python來安裝它。

你可以運行apm install --check來查看Atom是否能夠在你的機器上編譯本地代碼。

關(guān)于更多信息,在構(gòu)建指導(dǎo)中查看你的平臺上需要先滿足的條件。

上一篇:在Atom背后下一篇:基本的自定義