MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
Qtの設定 - デバッグのソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
Qtの設定 - デバッグ
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == Qt Creatorにおいて、デバッグに関する設定方法を記載する。<br> <br><br> == CMakeの設定 == Qt Creatorで、CMakeを使用するプロジェクトを作成してデバッグを実行するとき、以下の警告文が表示される場合がある。<br> warning: GDB: Failed to set controlling terminal: ... <br> 下図に示すように、Qt Creatorの左側パネルにある[プロジェクト] - [Build & Run] - [Run]を選択する。<br> [実行時の選択]画面が表示されるので、[実行]項目の[ターミナルで実行]チェックボックスにチェックを入力する。<br> これにより、QT Creatorは、GDBで適切に動作するXterm(デフォルト)内でプログラムを実行する。<br> [[ファイル:Qt Configuration 1.jpg|フレームなし|中央]] <br><br> == デバッグターミナルの設定 == デバッグターミナルを別のソフトウェアに変更する場合は、Qt Creatorのメニューバーから、<br> [ツール] - [オプション] - [環境] - [システム]タブ - [ターミナル]項目に、デバッグターミナルとして使用するソフトウェアのフルパス名を記述する。<br> このパラメーターは、外部コマンドまたはソフトウェアを実行するように指示する。<br> # Gnome Terminalをデバッグターミナルに設定する場合 (推奨) /usr/bin/gnome-terminal -x # Alacrittyをデバッグターミナルに設定する場合 (推奨) /<Alacrittyのインストールディレクトリ>/alacritty -e # X terminalをデバッグターミナルに設定する場合 /usr/bin/xterm --separate -e # X terminalをroot権限としてデバッグターミナルに設定する場合 /usr/bin/xterm --separate -e sudo # konsoleをデバッグターミナルに設定する場合 (KonsoleおよびYakuakeは動作しない可能性あり) /usr/bin/konsole --separate -e [[ファイル:Qt Configuration 2.jpg|フレームなし|中央]] <br> また、初期設定では、デバッガが開始されるとQT Creatorもフォアグラウンドに配置されて、開始されたターミナルが背面に表示される。<br> この動作を変更(デバッグターミナルを前面に配置)するには、Qt Creatorのメニューバーから、<br> [ツール] - [オプション] - [デバッガ] - [一般]タブ - [Bring Qt Creator to foreground when application interrupts]チェックボックスをオフにする。<br> [[ファイル:Qt Configuration 3.jpg|フレームなし|中央]] <br><br> == デバッガの設定 == デバッガを設定するには、[ツール] - [オプション]を選択する。<br> [オプション画面]画面が開くので、画面左の[デバッガ]を選択する。<br> <br> * [一般]タブ *: 全てのデバッガに共通の設定を行う。 *: <br> * [GDB]タブ *: GDBプロセスの設定を行う。 *: <br> *: GDBプロセスを終了するためのタイムアウトを指定するには、GDBタイムアウトフィールドに待機する秒数を設定する。 *: 大きなライブラリの読み込みやソースファイルの一覧表示に時間が掛かる場合は、値を大きくする必要がある。 *: <br> *: デバッガの起動時にデフォルトの.gdbinitファイルを読み込むには、[Load .gdbinit file on startup]チェックボックスを選択する。 *: インストールされているまたはアプリケーションが使用するライブラリにリンクされている標準のGDBプリティプリンタを使用するには、 *: [Load system GDB pretty printers]チェックボックスを選択する。 *: <br> *: GDBがリモートターゲットに正常にアタッチされた後にGDBコマンドを実行するには、[Additional Attach Commands]フィールドに入力する。 *: ここでは、モニタのリセット・ロード等、ターゲットをさらにセットアップするためのコマンドを追加することができる。 *: <br> * [GDB拡張]タブ *: この設定では、GDBの高度な機能や実験的な機能を使用することができる。 *: しかし、これらの機能を有効にすると、デバッグ作業に悪影響を及ぼす可能性があるので、注意して使用すること。 *: <br> *: 非同期モードを制御する場合は、それぞれのチェックボックスを選択する。 *: GDB起動時に/usr/src/debug等のデバッグ情報の場所に共通のパスを追加するには、デバッグ情報の共通の場所を使用するチェックボックスを選択する。 *: qWarning、qFatal、abortが呼び出された時に停止するには、それぞれのチェックボックスを選択する。 *: <br> *: 逆引きを有効にするには、逆引きを有効にするチェックボックスを選択する。 *: この機能は非常に遅く、システムコールを逆行する際に予測不可能な動作を示し、デバッグセッションを破壊する可能性が高い。 *: <br> *: フォーク後に全ての子プロセスをデバッグし続けるには、[すべての子プロセスをデバッグする]チェックボックスを選択する。 <br><br> == qDebug関数 == <code>qDebug</code>関数は、デバッグログをQt Creatorの[アプリケーション出力]ペインに出力するために使用する。<br> また、<code>qDebug</code>関数以外にも、以下のような同様の関数が存在する。<br> * qInfo() * qWarning() * qCritical() * qFatal() <br> <code>qDebug</code>関数は、<code>printf</code>関数と同様の形式で使用できる。<br> <syntaxhighlight lang="c++"> #include <QDebug> qDebug("test"); qDebug("int:%d", 10); qDebug("double:%lf", 123.45); qDebug("string:%s", u8"abcあいう"); </syntaxhighlight> <br> <code>qDebug</code>関数をC++のストリーム形式で使用する場合、<code>QDebug</code>をインクルードする必要がある。<br> <syntaxhighlight lang="c++"> #include <QDebug> qDebug() << "test"; qDebug() << "int:" << 10; qDebug() << "double:" << 123.45; qDebug() << "string:" << u8"abcあいう"; </syntaxhighlight> <br> また、<code><<</code>を使用して出力した場合に付加される空白を無くすには、<code>nospace</code>を指定する。<br> <syntaxhighlight lang="c++"> #include <QDebug> qDebug().nospace() << "test"; qDebug().nospace() << "int:" << 10; qDebug().nospace() << "double:" << 123.45; qDebug().nospace() << "string:" << u8"abcあいう"; </syntaxhighlight> <br> <code>QDateTime</code>等のQtの値型の多くのもの、および、<code>QList</code>等のQtのコンテナ型もそのまま出力できる。<br> <code>QObject</code>クラスの派生型は、<code>QObject</code>のポインタとして出力することにより、クラス名やオブジェクト名と共に出力することができる。<br> <syntaxhighlight lang="c++"> #include <QDebug> qDebug() << QString("id=%1, name=%2").arg(123).arg("name_123"); // 出力 : id=123, name=name_123 qDebug() << QDateTime::currentDateTime(); // 出力 : QDateTime(2020-12-06 21:53:19.311 東京 (標準時) Qt::LocalTime) QList<double>{1.1, 1.2, 1.3}; // 出力 : (1.1, 1.2, 1.3) QFile file("/etc/fstab"); file.setObjectName("fstab_file"); qDebug() << &file; // 出力 : QFile(0x4a7b6ffb50, name = "fstab_file") </syntaxhighlight> <br><br> {{#seo: |title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki |keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板 |description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux |image=/resources/assets/MochiuLogo_Single_Blue.png }} __FORCETOC__ [[カテゴリ:Qt]]
Qtの設定 - デバッグ
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse