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を使いたいです。わかりにくい質問かもしれませんが、何かヒントをお持ちであれば教えていただけませんでしょうか?
以上 よろしくお願いいたします。
あなたの回答
tips
プレビュー