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