Skip to content
Menu
CDhistory
CDhistory

Fejlfinding

Posted on november 20, 2021 by admin

Du har måske brug for at fejlfinde din CMake-bygning eller fejlfinde din C++-kode. Begge dele er dækket her.

  • CMake debugging
  • Udskrivning af variabler
  • Sporing af en kørsel
  • Bygning i debug-tilstand

CMake debugging

Først skal vi se på måder at debugge en CMakeLists eller en anden CMake-fil på.

Udskrivning af variabler

Den hæderkronede metode med print statements ser således ud i CMake:

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

Men et indbygget modul gør dette endnu nemmere:

include(CMakePrintHelpers)cmake_print_variables(MY_VARIABLE)

Hvis du vil udskrive en egenskab, er dette meget, meget pænere! I stedet for at få egenskaberne en efter en af hvert target (eller andet element med egenskaber, såsom SOURCES, DIRECTORIES, TESTS eller CACHE_ENTRIES – globale egenskaber synes at mangle af en eller anden grund), kan du simpelthen liste dem og få dem udskrevet direkte:

cmake_print_properties( TARGETS my_target PROPERTIES POSITION_INDEPENDENT_CODE)

Sporing af en kørsel

Har du haft lyst til at se præcis, hvad der sker i din CMake-fil, og hvornår? --trace-source="filename"-funktionen er fantastisk. Hver linje, der køres i den fil, som du angiver, vil blive ekko til skærmen, når den køres, så du kan følge præcis, hvad der sker. Der er også beslægtede muligheder, men de har en tendens til at begrave dig i output.

For eksempel:

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

Hvis du tilføjer --trace-expand, vil variablerne blive ekspanderet til deres værdier.

Bygning i debug-tilstand

For enkeltkonfigurationsgeneratorer kan du bygge din kode med -DCMAKE_BUILD_TYPE=Debug for at få debugging-flag. I generatorer med flere konfigurationer kan du, ligesom i mange IDE’er, vælge konfigurationen i IDE’en. Der er forskellige flag for denne tilstand (variabler, der ender på _DEBUG i modsætning til _RELEASE), samt en generatorudtryksværdi CONFIG:Debug eller CONFIG:Release.

Når du har lavet et debug-byggeri, kan du køre en debugger, f.eks. gdb eller lldb på det.

Skriv et svar Annuller svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *

Seneste indlæg

  • Acela er tilbage:
  • OMIM Entry – # 608363 – CHROMOSOM 22q11.2 DUPLIKATIONSSYNDROM
  • Kate Albrechts forældre – Få mere at vide om hendes far Chris Albrecht og mor Annie Albrecht
  • Temple Fork Outfitters
  • Burr (roman)

Arkiver

  • februar 2022
  • januar 2022
  • december 2021
  • november 2021
  • oktober 2021
  • september 2021
  • august 2021
  • juli 2021
  • juni 2021
  • maj 2021
  • april 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