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.