Skip to content
Menu
CDhistory
CDhistory

Débogage

Posted on novembre 20, 2021 by admin

Vous pourriez avoir besoin de déboguer votre construction CMake, ou de déboguer votre code C++. Les deux sont couverts ici.

  • Débogage CMake
  • Imprimer des variables
  • Tracer une exécution
  • Construction en mode débogage

Débogage CMake

D’abord, regardons les façons de déboguer une CMakeLists ou un autre fichier CMake.

Imprimer des variables

La méthode honorée du temps des déclarations d’impression ressemble à ceci dans CMake:

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

Pourtant, un module intégré rend cela encore plus facile:

include(CMakePrintHelpers)cmake_print_variables(MY_VARIABLE)

Si vous voulez imprimer une propriété, c’est beaucoup, beaucoup plus agréable ! Au lieu d’obtenir les propriétés une par une de chaque cible (ou autre élément avec des propriétés, comme SOURCES, DIRECTORIES, TESTS, ou CACHE_ENTRIES – les propriétés globales semblent manquer pour une raison quelconque), vous pouvez simplement les lister et les faire imprimer directement:

cmake_print_properties( TARGETS my_target PROPERTIES POSITION_INDEPENDENT_CODE)

Tracer une exécution

Avez-vous déjà voulu regarder exactement ce qui se passe dans votre fichier CMake, et quand ? La fonctionnalité --trace-source="filename" est fantastique. Chaque ligne exécutée dans le fichier que vous donnez sera répercutée à l’écran lors de son exécution, vous permettant de suivre exactement ce qui se passe. Il existe également des options connexes, mais elles ont tendance à vous enterrer dans la sortie.

Par exemple :

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

Si vous ajoutez --trace-expand, les variables seront développées dans leurs valeurs.

Construction en mode débogage

Pour les générateurs à configuration unique, vous pouvez construire votre code avec -DCMAKE_BUILD_TYPE=Debug pour obtenir des drapeaux de débogage. Dans les générateurs multi-configuration, comme de nombreux IDE, vous pouvez choisir la configuration dans l’IDE. Il y a des drapeaux distincts pour ce mode (variables se terminant par _DEBUG par opposition à _RELEASE), ainsi qu’une valeur d’expression de générateur CONFIG:Debug ou CONFIG:Release.

Une fois que vous faites une construction de débogage, vous pouvez exécuter un débogueur, comme gdb ou lldb dessus.

Laisser un commentaire Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Articles récents

  • Acela est de retour : NYC ou Boston pour 99 $
  • Entrée OMIM – # 608363 – SYNDROME DE DUPLICATION DU CHROMOSOME 22q11.2
  • Les parents de Kate Albrecht – En savoir plus sur son père Chris Albrecht et sa mère Annie Albrecht
  • Temple Fork Outfitters
  • Burr (roman)

Archives

  • février 2022
  • janvier 2022
  • décembre 2021
  • novembre 2021
  • octobre 2021
  • septembre 2021
  • août 2021
  • juillet 2021
  • juin 2021
  • mai 2021
  • avril 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