web-dev-qa-db-ja.com

Qt Creatorでデバッグモードを実行する

いくつかのデモコード(具体的には、点群ライブラリに付属するpcl_visualizerデモ)をコンパイルしようとしています。拡大クラスで緑色の矢印をクリックしてデバッグを実行すると、次のエラーが発生します。

This does not seem to be a "Debug" build.
Setting breakpoints by file name and line number may fail.

Section .debug_info: Not found.
Section .debug_abbrev: Not found.
Section .debug_line: Not found.
Section .debug_str: Not found.
Section .debug_loc: Not found.
Section .debug_range: Not found.
Section .gdb_index: Not found.
Section .note.gnu.build-id: Found.
Section .gnu.hash: Found.
Section .gnu_debuglink: Not found.

さらに、挿入したブレークポイントはどれもプログラムを壊しているわけではなく、すべてに砂時計が置かれています。

Projectsでは、DebugモードがBuild Settingsで選択されています。

コードが正しくデバッグされていないように見えるのはなぜですか?

18
Karnivaurus

一部のプロジェクトでは、デバッグモードが自動的に構築され、個別に実行できます。次に、左下のRun選択メニューでそれを選択できます。

Animation of the Run menu and the Projects view

他のプロジェクトでは、デバッグビルドを特別に行う必要があります。

例:Kdenliveでは、次のパラメーターを追加してCMakeを再度実行する必要があります。

-DCMAKE_BUILD_TYPE=Debug

ProjectsビューでCMakeを再実行できます。

24
qubodup

「デバッグビルドではないようです」メッセージのもう1つの原因は、cdbエンジンを使用してgdbを実行していることです。チェックするには、ツール->オプション->ビルドと実行->キットに移動し、使用しているキットを選択します。次にデバッガー行に移動し、編集を選択して、デバッガーに適切なエンジンがあることを確認します。

3
Behrouz.M

新しいバージョンのQTの場合:画面の左上にある[プロジェクト]に移動します。選択するとレンチが付いたアイコンが緑色に変わります。

まだ「クリック」されていない場合は、名前の付いたキットの下にある「ビルド」をクリックします(キットとして「デスクトップ」があります)。これは、左側の「Build&Run」のすぐ下にあります。

上部中央の[ビルド設定]の下に、[ビルド構成の編集]があり、その横にドロップダウンがあります。ドロップダウンから「デバッグ」を選択できる場合はそれを実行します。それ以外の場合は、ドロップダウンの横にあるドロップダウンの「追加」をクリックして「デバッグ」を選択します。

いくつかをドロップダウンして、「キー」と「値」の表の左側にある「キー」を見て、さらに右に見て「四角」で「詳細」を見て、四角をチェックして詳細なキーと値のペアを取得します。

「CMAKE_BUILD_TYPE」を探し、右端の「編集」をクリックし、ドロップダウンをキーCMAKE_BUILD_TYPEに一致する値の「デバッグ」に変更します。

左下にあるように、ビルド構成を「デバッグ」に変更すると、ビルドが機能するはずです!

プロジェクトをクリーンアップし、[ビルド]タブでcmake構成をクリアする必要がある場合があります。

3
Jaguardo

Linuxで「Qtメンテナンスツール」を使用して「Qtデバッグ情報ファイル」をインストールすると、これが解決されました

1
myk

QT5.9.1とnasm 2.14を使用するnasmユーザーの場合、問題は次のようにして解消されます:nasm -felf64 -FDwarf -g

私はそれがc/c ++関連ではないことを知っていますが、QTで非常にうまく機能します

0
Agguro

ビルドタイプがリリースに設定されているため、同じメッセージが表示されます。左下のQt Creator 3.3.0では、プレイシンボルの上にビルドタイプのあるPCアイコンがあります。そのアイコンをクリックして、デバッグを選択します。メニュービルドからも「qmakeを実行」する必要もありました。

0
AndrewBloom