Možná budete potřebovat ladit sestavení CMake nebo ladit kód C++. Obojímu se věnujeme zde.
Ladění CMake
Nejprve se podíváme na způsoby, jak ladit seznamy CMake nebo jiný soubor CMake.
Vypisování proměnných
Časem prověřený způsob výpisu příkazů vypadá v CMake takto:
message(STATUS "MY_VARIABLE=${MY_VARIABLE}")
Vestavěný modul to však ještě usnadňuje:
include(CMakePrintHelpers)cmake_print_variables(MY_VARIABLE)
Pokud chcete vypsat nějakou vlastnost, je to mnohem, mnohem příjemnější! Místo toho, abyste z každého cíle (nebo jiné položky s vlastnostmi, například SOURCES, DIRECTORIES, TESTS nebo CACHE_ENTRIES – globální vlastnosti z nějakého důvodu zřejmě chybí) získávali vlastnosti jednu po druhé, můžete je jednoduše vypsat a nechat si je vypsat přímo:
cmake_print_properties( TARGETS my_target PROPERTIES POSITION_INDEPENDENT_CODE)
Sledování běhu
Chtěli jste sledovat, co přesně se ve vašem souboru CMake děje a kdy? Funkce --trace-source="filename" je fantastická. Každý řádek spuštěný v souboru, který zadáte, se po spuštění ozve na obrazovku, takže můžete přesně sledovat, co se děje. Existují i příbuzné možnosti, ale ty mají tendenci vás zahrabat do výstupu.
Například:
cmake -S . -B build --trace-source=CMakeLists.txt
Přidáte-li --trace-expand, proměnné se rozbalí na své hodnoty.
Sestavování v režimu ladění
Pro generátory s jednou konfigurací můžete sestavit kód pomocí -DCMAKE_BUILD_TYPE=Debug, abyste získali ladicí příznaky. U generátorů s více konfiguracemi, stejně jako u mnoha jiných IDE, můžete konfiguraci vybrat v IDE. Pro tento režim existují odlišné příznaky (proměnné končící na _DEBUG na rozdíl od _RELEASE), stejně jako hodnota generátorového výrazu CONFIG:Debug nebo CONFIG:Release.
Jakmile vytvoříte sestavení pro ladění, můžete na něm spustit ladicí program, například gdb nebo lldb.