Electron 除錯
Electron 中有許多不同的除錯問題和錯誤的方法,其中許多方法是平台特定的。
以下概述了一些更常見的方法。
通用除錯
Chromium 包含記錄巨集,可以透過在 C++ 和 Objective-C++ 中將資訊列印到主控台來協助除錯。
您可以利用這個來印出變數值、函式名稱和行號等等。
一些範例
LOG(INFO) << "bitmap.width(): " << bitmap.width();
LOG(INFO, bitmap.width() > 10) << "bitmap.width() is greater than 10!";
記錄嚴重性也有不同的層級:INFO
、WARN
和 ERROR
。
請參閱 Chromium 原始碼樹狀結構中的 logging.h 以取得更多資訊和範例。
列印堆疊追蹤
Chromium 包含一個輔助程式,可以在不中斷程式的情況下將堆疊追蹤列印到主控台。
#include "base/debug/stack_trace.h"
...
base::debug::StackTrace().Print();
這將讓您觀察呼叫鏈並識別潛在的問題區域。
斷點除錯
請注意,這會顯著增加建置的大小,佔用約 50G 的磁碟空間
將以下檔案寫入 electron/.git/info/exclude/debug.gn
import("//electron/build/args/testing.gn")
is_debug = true
symbol_level = 2
forbid_non_component_debug_builds = false
然後執行
$ gn gen out/Debug --args="import(\"//electron/.git/info/exclude/debug.gn\") $GN_EXTRA_ARGS"
$ ninja -C out/Debug electron
現在您可以使用 LLDB
進行斷點除錯。
平台特定除錯
使用符號伺服器除錯
除錯符號讓您可以有更好的除錯工作階段。它們包含關於執行檔和動態函式庫中包含的函式的資訊,並提供您取得清晰呼叫堆疊的資訊。符號伺服器允許除錯器自動載入正確的符號、二進位檔和原始碼,而無需強迫使用者下載大型除錯檔案。
如需更多關於如何為 Electron 設定符號伺服器的資訊,請參閱使用符號伺服器除錯。