Skip to content
Menu
CDhistory
CDhistory

Depuración

Posted on noviembre 20, 2021 by admin

Puede que necesites depurar tu construcción de CMake, o depurar tu código C++. Ambos están cubiertos aquí.

  • Depuración de CMake
  • Impresión de variables
  • Rastrear una ejecución
  • Construyendo en modo de depuración

Depuración de CMake

Primero, vamos a ver las formas de depurar un CMakeLists u otro archivo CMake.¡

Impresión de variables

El método de honor de las declaraciones de impresión se ve así en CMake:

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

Sin embargo, un módulo incorporado hace esto aún más fácil:

include(CMakePrintHelpers)cmake_print_variables(MY_VARIABLE)

Si desea imprimir una propiedad, esto es mucho, mucho mejor! En lugar de obtener las propiedades una por una de cada objetivo (u otro elemento con propiedades, como SOURCES, DIRECTORIES, TESTS, o CACHE_ENTRIES – las propiedades globales parecen faltar por alguna razón), simplemente puede enumerarlas y hacer que se impriman directamente:

cmake_print_properties( TARGETS my_target PROPERTIES POSITION_INDEPENDENT_CODE)

Rastrear una ejecución

¿Ha querido ver exactamente lo que sucede en su archivo CMake, y cuándo? La función --trace-source="filename" es fantástica. Cada línea que se ejecuta en el archivo que le das se hará eco en la pantalla cuando se ejecuta, lo que le permite seguir exactamente lo que está sucediendo. Hay opciones relacionadas también, pero tienden a enterrarte en la salida.

Por ejemplo:

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

Si añades --trace-expand, las variables se expandirán en sus valores.

Construyendo en modo de depuración

Para generadores de configuración simple, puedes construir tu código con -DCMAKE_BUILD_TYPE=Debug para obtener banderas de depuración. En los generadores de configuración múltiple, como muchos IDEs, puedes elegir la configuración en el IDE. Hay banderas distintas para este modo (variables que terminan en _DEBUG a diferencia de _RELEASE), así como un valor de expresión del generador CONFIG:Debug o CONFIG:Release.

Una vez que haga una construcción de depuración, puede ejecutar un depurador, como gdb o lldb en él.

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Entradas recientes

  • Acela está de vuelta: NYC o Boston por 99 dólares
  • Entrada OMIM – # 608363 – SÍNDROME DE DUPLICACIÓN DEL CROMOSOMA 22q11.2
  • Los padres de Kate Albrecht – Conoce más sobre su padre Chris Albrecht y su madre Annie Albrecht
  • Temple Fork Outfitters
  • Burr (novela)

Archivos

  • febrero 2022
  • enero 2022
  • diciembre 2021
  • noviembre 2021
  • octubre 2021
  • septiembre 2021
  • agosto 2021
  • julio 2021
  • junio 2021
  • mayo 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