Manpage logo

mongoc_debugging -

GDB  LLDB  DEBUG ASSERTIONS  AUTHOR  COPYRIGHT 

GDB

This repository contains a .gdbinit file that contains helper functions to aid debugging of data structures. GDB will load this file - automatically if you have added the directory which contains the .gdbinit file to GDB's auto−load safe−path, and you start GDB from the directory which holds the .gdbinit file.

You can see the safe−path with show auto−load safe−path on a GDB prompt. You can configure it by setting it in ˜/.gdbinit with:

add−auto−load−safe−path /path/to/mongo−c−driver

If you haven't added the path to your auto−load safe−path, or start GDB in another directory, load the file with:

source path/to/mongo−c−driver/.gdbinit

The .gdbinit file defines the printbson function, which shows the contents of a bson_t * variable. If you have a local bson_t, then you must prefix the variable with a &.

An example GDB session looks like:

(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

The mongo−c−driver repository contains a script lldb_bson.py that can be imported into an LLDB sessions and allows rich inspection of BSON values.

NOTE:

The lldb_bson.py module requires an LLDB with Python 3.8 or newer.

To activate the script, import it from the LLDB command line:

(lldb) command script import /path/to/mongo−c−driver/lldb_bson.py

Upon success, the message lldb_bson is ready will be printed to the LLDB console.

The import of this script can be made automatic by adding the command to an .lldbinit file. For example: Create a file ˜/.lldbinit containing:

command script import /path/to/mongo−c−driver/lldb_bson.py

The docstring at the top of the lldb_bson.py file contains more information on the capabilities of the module.

DEBUG ASSERTIONS

To enable runtime debug assertions, configure with −DENABLE_DEBUG_ASSERTIONS=ON.

AUTHOR

MongoDB, Inc

COPYRIGHT

2017-present, MongoDB, Inc


Updated 2026-06-01 - jenkler.se | uex.se