GDB
このリポジトリには、データ構造のデバッグを支援するヘルパー関数を含む .gdbinitファイルが含まれています。GDB は、 ファイルを含むディレクトリを.gdbinit GDB の自動ロード セーフ パスに追加し、 ファイルを保持するディレクトリから GDB を起動すると、このファイル.gdbinit を自動的に読み込みます。
GDB プロンプトでshow auto-load safe-pathとセーフパスが表示されます。 これを構成するには、以下を使用して~/.gdbinitに設定します。
add-auto-load-safe-path /path/to/mongo-c-driver 
自動ロードのセーフパスへのパスを追加しなかった場合、または別のディレクトリで GDB を起動した場合は、次を使用してファイルをロードします。
source path/to/mongo-c-driver/.gdbinit 
.gdbinitファイルは、 bson_t *変数の内容を表示するprintbson関数を定義します。 ローカルbson_tがある場合は、変数の前に&を付ける必要があります。
GDB セッションの例は次のようになります。
(gdb) printbson bson ALLOC [0x555556cd7310 + 0] (len=475) {     'bool' : true,     'int32' : NumberInt("42"),     'int64' : NumberLong("3000000042"),     'string' : "Stŕìñg",     'objectId' : ObjectID("5A1442F3122D331C3C6757E1"),     'utcDateTime' : UTCDateTime(1511277299031),     'arrayOfInts' : [         '0' : NumberInt("1"),         '1' : NumberInt("2")     ],     'embeddedDocument' : {         'arrayOfStrings' : [             '0' : "one",             '1' : "two"         ],         'double' : 2.718280,         'notherDoc' : {             'true' : NumberInt("1"),             'false' : false         }     },     'binary' : Binary("02", "3031343532333637"),     'regex' : Regex("@[a-z]+@", "im"),     'null' : null,     'js' : JavaScript("print foo"),     'jsws' : JavaScript("print foo") with scope: {         'f' : NumberInt("42"),         'a' : [             '0' : 3.141593,             '1' : 2.718282         ]     },     'timestamp' : Timestamp(4294967295, 4294967295),     'double' : 3.141593 } 
LLDB
mongo-c-ドライバーのリポジトリには、LDDB セッションにインポートして、BSON 値の豊富な検査を可能にするスクリプトlldb_bson.pyが含まれています。
注意
lldb_bson.pyモジュールには、Python 3.8以降を搭載した LDDB が必要です。
スクリプトをアクティブにするには、LDDB コマンドラインからインポートします。
(lldb) command script import /path/to/mongo-c-driver/lldb_bson.py 
成功すると、メッセージlldb_bson is readyが LDDB コンソールに出力されます。
このスクリプトのインポートは、コマンドを.lldbinitファイルに追加することで自動で行うことができます。 たとえば、次の内容を含むファイル~/.lldbinitを作成します。
command script import /path/to/mongo-c-driver/lldb_bson.py 
lldb_bson.pyファイル上部の docstring には、モジュールの機能に関する詳細情報が含まれています。
デバッグ アサーション
ランタイム デバッグ アサーションを有効にするには、 -DENABLE_DEBUG_ASSERTIONS=ONを使用して を構成します。