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

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

新規登録して質問してみよう
ただいま回答率
85.35%
デバッグ

デバッグはプログラムのバグや欠陥を検知し、開発中のバグを取り除く為のプロセスを指します。

Q&A

解決済

2回答

1039閲覧

ncursesライブラリ コンソールアプリのデバッグ方法が知りたい。コンソール画面ためprintfが使えない

退会済みユーザー

退会済みユーザー

総合スコア0

デバッグ

デバッグはプログラムのバグや欠陥を検知し、開発中のバグを取り除く為のプロセスを指します。

0グッド

0クリップ

投稿2021/09/10 08:22

編集2021/09/10 08:39

###やりたい事
コンソール画面が使えない状況でのデバッグ方法が知りたい。

###質問内容
提示コードのstd::cout関数部ですがncursesライブラリの場合コンソールライブラリのためコンソールに表示させるstd::coutがうまく機能しないのでデバッグに使えません。その場合どんな手段を使ってデバッグすればいいのでしょうか?別の手段を探しています。

###環境
OS: Ubuntu

cpp

1#include <string.h> 2#include <iostream> 3#include "../lib/ncurses/include/curses.h" 4 5int main() 6{ 7 initscr(); //初期化 8 9 int x = 0, y = 0, w, h; 10 //char str[20]="Hello World"; 11 int key; 12 std::string str; 13 14 noecho(); //入力した文字を非表示 15 cbreak(); //Enterキー不要のキー入力 16 keypad(stdscr,TRUE); // 特殊キーを有効化 17 18 19 20 mousemask(REPORT_MOUSE_POSITION,NULL); // マウスイベントを取得 21 MEVENT event; 22 23 while (true) 24 { 25 erase(); //画面削除 26 move(y, x); //移動 27 addstr(str.c_str()); //文字表示 28 refresh(); //画面再表示 29 30 key = getch(); 31 32 33 switch(key) 34 { 35 case KEY_UP: 36 { 37 y--; 38 } 39 break; 40 41 case KEY_DOWN: 42 { 43 y++; 44 } 45 break; 46 47 case KEY_LEFT: 48 { 49 x--; 50 std::cout<<"あああ "<<str; 51 52 } 53 break; 54 55 case KEY_RIGHT: 56 { 57 x++; 58 } 59 break; 60 61 case 'q': 62 { 63 break; 64 } 65 break; 66 67 case KEY_MOUSE: 68 { 69 if(getmouse(&event) == OK) 70 { 71 if(event.bstate & REPORT_MOUSE_POSITION) 72 { 73 std::cout<<event.y<<" "<<event.x; 74 str = std::to_string(event.x); 75 std::cout<<"あああ "<<str<<std::endl; 76 } 77 } 78 } 79 break; 80 81 } 82 83 } 84 85 86 87 endwin(); //終了  88 return 0; 89}

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

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

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

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

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

hoshi-takanori

2021/09/10 08:51

ファイルに出力して、別ウィンドウで tail -f で監視すれば良いのでは。
guest

回答2

0

デバッグしたいアプリを起動して、別のターミナルを開いてそこで対象アプリのプロセスIDを確認します。そのターミナルで、% gdb 実行ファイル プロセスID% lldb -p プロセスID 実行ファイル などで起動中のアプリに対してデバッガを起動することができます。

投稿2021/09/13 04:08

int32_t

総合スコア21695

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

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

0

ベストアンサー

VisualStudioとかEclipseを使ってデバッグしましょう

投稿2021/09/10 08:35

y_waiwai

総合スコア88042

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

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

退会済みユーザー

退会済みユーザー

2021/09/10 08:43

コンソール画面で原始的なやり方で行いたのですがその場合やりかたなどありますか?
y_waiwai

2021/09/10 08:50

そりゃprintf使いましょうよ。 ふつーにそれでデバッグしますで。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問