Skip to content
Menu
CDhistory
CDhistory

デバッグ

Posted on 11月 20, 2021 by admin

CMakeビルドのデバッグ、またはC++コードのデバッグが必要な場合があります。

  • CMake デバッグ
  • 変数の印刷
  • 変数の表示(Printing variables)
  • Tracing a run
  • デバッグモードでのビルド

CMake デバッグ

最初に、CMakeLists またはその他の CMake ファイルをデバッグする方法について説明します。

変数の印刷

昔からある print 文の方法は、CMake では次のようになります:

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

ただし、組み込みのモジュールによりこれはさらに簡単になります:

include(CMakePrintHelpers)cmake_print_variables(MY_VARIABLE)

もし、プロパティを印刷したい場合、これはもっとずっと素晴らしいことです!

変数の表示(Printing variables)

CMake では、print 文は、print(Print)ステートメントと同じ方法で表示されます。 各ターゲット (または、SOURCES、DIRECTORIES、TESTS、CACHE_ENTRIES などのプロパティを持つ他のアイテム – グローバル プロパティは何らかの理由で欠落しているようです) のプロパティを 1 つずつ取得する代わりに、単にそれらをリストして直接印刷させることができます:

cmake_print_properties( TARGETS my_target PROPERTIES POSITION_INDEPENDENT_CODE)

Tracing a run

CMake ファイルで何が、いつ起きるかを正確に観察したいですか? --trace-source="filename" 機能は素晴らしいものです。 ファイル内で実行されるすべての行は、それが実行されたときに画面にエコーされ、何が起こっているかを正確に追うことができます。

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

たとえば、--trace-expand を追加すると、変数はその値に展開されます。

デバッグモードでのビルド

単一構成のジェネレーターでは、-DCMAKE_BUILD_TYPE=Debug でコードを構築してデバッグフラグを取得できます。 multi-configuration ジェネレーターでは、多くの IDE のように、IDE で設定を選ぶことができます。 このモードには、ジェネレーター式の値 CONFIG:Debug または CONFIG:Release と同様に、個別のフラグ (_RELEASE とは対照的に _DEBUG で終わる変数) があります。

いったんデバッグビルドを作成すると、gdb や lldb などのデバッガをその上で実行できます。

コメントを残す コメントをキャンセル

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

最近の投稿

  • アセラ復活。 NYCまたはボストンで99ドル
  • OMIM Entry – # 608363 – CHROMOSOME 22q11.2 DUPLICATION SYNDROME
  • Kate Albrecht’s Parents – Learn More About Her Father Chris Albrecht And Mother Annie Albrecht
  • テンプル・フォーク・アウトフィッターズ
  • Burr(小説)

アーカイブ

  • 2022年2月
  • 2022年1月
  • 2021年12月
  • 2021年11月
  • 2021年10月
  • 2021年9月
  • 2021年8月
  • 2021年7月
  • 2021年6月
  • 2021年5月
  • 2021年4月
  • 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