Menu Docs
Página inicial do Docs
/ / /
Driver C
/ /

Ajudas para depuração

Nesta página

  • GDB
  • LLDB
  • Depurar afirmações

Este repositório contém um arquivo .gdbinit que contém funções assistente para ajudar na depuração de estruturas de dados. O GDB carregará este arquivo automaticamente se você adicionou o diretório que contém o .gdbinit arquivo ao caminho seguro de carregamento automático do GDB , e você inicia GDB a partir do diretório que contém o .gdbinit arquivo .

Você pode ver o caminho seguro com show auto-load safe-path em um prompt do GDB. Você pode configurá-lo definindo-o em ~/.gdbinit com:

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

Se você não tiver adicionado o caminho ao caminho seguro de carregamento automático ou iniciar o GDB em outro diretório, carregue o arquivo com:

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

O arquivo .gdbinit define a função printbson , que mostra o conteúdo de uma variável bson_t * . Se você tiver um bson_t local , deverá prefixar a variável com um &.

Um exemplo de sessão GDB se parece com:

(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
}

O repositório mongo-c-driver contém um script lldb_bson.py que pode ser importado para uma sessão LLDB e permite uma inspeção detalhada dos valores BSON.

Observação

O módulo lldb_bson.py exige um LLDB com Python 3.8 ou mais recente.

Para ativar o script, importe-o da linha de comando LLDB:

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

Após o sucesso, a mensagem lldb_bson is ready será impressa no console LLDB.

A importação deste script pode ser tornada automática adicionando o comando a um arquivo .lldbinit . Por exemplo: crie um arquivo ~/.lldbinit contendo:

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

A docstring na parte superior do arquivo lldb_bson.py contém mais informações sobre os recursos do módulo.

Para habilitar asserções de depuração de tempo de execução, configure com -DENABLE_DEBUG_ASSERTIONS=ON.

Voltar

Gerenciar índices de coleção