質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
GDB

GDBはGNUソフトウェアシステムのための標準的なデバッガーです。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Qt Creator

Qt Creatorは、Qtアプリケーションを開発するための開発統合環境(IDE)です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

0回答

645閲覧

Qt creator / GDB-python拡張した特殊型の変数表示ができない

butt5192

総合スコア15

GDB

GDBはGNUソフトウェアシステムのための標準的なデバッガーです。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Qt Creator

Qt Creatorは、Qtアプリケーションを開発するための開発統合環境(IDE)です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2018/11/19 05:46

編集2022/01/12 10:55

2018/11/19 補足です。

Eclipseではgdbinitを読みこませることで、カスタム変数が表示できていることから、
・pythonスクリプト
・gdbの設定
・gdbinitのミス
上記3pointではなく、Qtcreatorとgdbの間の橋渡しに問題があるのか、gdbの呼び出し方に問題があるのでは?
と考えています。


質問が初めてのもので変なところがあったらすみません。

Qt 5.11.2 / GCC 5.3.1 / GDB 8.2(--python付き) / Ubuntu16.04LTSの環境で、
特殊な型の表示を補完するpythonスクリプトを読み込ませ、デバッグをしたいのですがうまく表示されません。

特殊な型、とはMentorのFPGA高位合成ライブラリで定義されるac_typeという型で、これを表示するための
gdb用python拡張ライブラリを読ませると、デバッグ時に綺麗に値が表示されるというものです。
このライブラリは無償でダウンロードできます。
https://hlslibs.org/#collapseACDatatypes

表示されない、という状態は下記の状態を指します。

Locals a <not accessible> ac_int<4, false> [0]

本当は、Valueのところに、値をパースシて表示してくれるはずなのですが、表示されません。

テストコードは↓↓

C++

1#include <iostream> 2#include "ac_int.h" 3 4using namespace std; 5 6int main() 7{ 8 cout << "Hello World!" << endl; 9 ac_int<4,false> a =0; 10 while( 1 ){ 11 cout << a++ << endl; 12 } 13 14 return 0; 15}

qprojectの内容は下記↓

TEMPLATE = app CONFIG += console c++11 CONFIG -= app_bundle CONFIG -= qt INCLUDEPATH += \ $HOME/mentor/ac_types-stable/include/ \ SOURCES += \ main.cpp

やってみたことは下記です。

###・gdbinitに下記のように記述して /home/user/以下に配置してデバッガ起動

bash

1set auto-load local-gdbinit 2 3# python print "Load local .gdbinit" 4python exec(open('$HOME/ac_types-stable/gdb/ac_pp.py').read()) 5

⇒正しく表示されず。。

・qtcreatorの Tools → option → Debugger → GDB から Load .gdbinit file on startupをチェック。

チェックを入れた後、gdbinitのprint行のコメントを外してDebuggerのLogを見ると、printの内容が表示されているので、localのgdbinitが読み込まれているようです。

For help, type "help". Type "apropos word" to search for commands related to "word". Load local .gdbinit GNU gdb (GDB) 8.2

・gdbのstartupコマンドにgdbinitの内容を転記してみる

⇒同じく起動せず。

・Eclipse photonから、GDB設定を変更し、~/.gdbinitを読むように設定してGDB起動

⇒デバッガから変数を参照すると、値がきちんと表示される.

QtQreatorのほうが補完が強力ですし、Eclipseはどうも不安定でEditorの画面がバグったり強制終了したりするので、
どうにかQtCreatorを使いたいです。わかりにくい質問かもしれませんが、何かヒントをお持ちであれば教えていただけませんでしょうか?

以上 よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問