Skip to content
Menu
CDhistory
CDhistory

Debugging

Posted on Novembro 20, 2021 by admin

Pode ser necessário depurar o seu CMake build, ou depurar o seu código C++. Ambos são cobertos aqui.

  • CMake debugging
  • Variáveis de impressão
  • Traçando uma execução
  • Building in debug mode

CMake debugging

Primeiro, vamos ver maneiras de depurar uma CMakeLists ou outro arquivo CMake.

Variáveis de impressão

O método de impressão de declarações honradas de tempo se parece com isto em CMake:

message(STATUS "MY_VARIABLE=${MY_VARIABLE}")

No entanto, um módulo incorporado torna isto ainda mais fácil:

include(CMakePrintHelpers)cmake_print_variables(MY_VARIABLE)

Se você quiser imprimir uma propriedade, isto é muito, muito mais agradável! Em vez de obter as propriedades um por um de cada alvo (ou outro item com propriedades, como SOURCES, DIRECTORIES, TESTS, ou CACHE_ENTRIES – propriedades globais parecem estar faltando por alguma razão), você pode simplesmente listá-las e obtê-las impressas diretamente:

cmake_print_properties( TARGETS my_target PROPERTIES POSITION_INDEPENDENT_CODE)

Traçando uma execução

Deixar que você queria ver exatamente o que acontece no seu arquivo CMake, e quando? A funcionalidade --trace-source="filename" é fantástica. Cada linha executada no arquivo que você dá será ecoada para a tela quando ela for executada, permitindo que você siga exatamente o que está acontecendo. Existem opções relacionadas também, mas elas tendem a enterrá-lo no output.

Por exemplo:

cmake -S . -B build --trace-source=CMakeLists.txt

Se você adicionar --trace-expand, as variáveis serão expandidas em seus valores.

Building in debug mode

Para geradores de configuração única, você pode construir seu código com -DCMAKE_BUILD_TYPE=Debug para obter flags de debugging. Em geradores de multiconfiguração, como muitos IDEs, você pode escolher a configuração no IDE. Existem flags distintos para este modo (variáveis terminando em _DEBUG em oposição a _RELEASE), assim como um valor de expressão do gerador CONFIG:Debug ou CONFIG:Release.

Após você fazer uma compilação de depuração, você pode executar um depurador, como gdb ou lldb nele.

Deixe uma resposta Cancelar resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

Artigos recentes

  • Acela está de volta: NYC ou Boston por $99
  • Entrada OMIM – # 608363 – CHROMOSOME 22q11.2 SÍNDROME DE DUPLICAÇÃO
  • Kate Albrecht’s Parents – Learn More About Her Father Chris Albrecht And Mother Annie Albrecht
  • Temple Fork Outfitters
  • Burr (romance)

Arquivo

  • Fevereiro 2022
  • Janeiro 2022
  • Dezembro 2021
  • Novembro 2021
  • Outubro 2021
  • Setembro 2021
  • Agosto 2021
  • Julho 2021
  • Junho 2021
  • Maio 2021
  • Abril 2021
  • DeutschDeutsch
  • NederlandsNederlands
  • SvenskaSvenska
  • DanskDansk
  • EspañolEspañol
  • FrançaisFrançais
  • PortuguêsPortuguês
  • ItalianoItaliano
  • RomânăRomână
  • PolskiPolski
  • ČeštinaČeština
  • MagyarMagyar
  • SuomiSuomi
  • 日本語日本語
©2022 CDhistory | Powered by WordPress & Superb Themes