変数の値の変化を調べるためにGDBデバッガを使っています。現在は、breakでポイントを設定して、disp iで表示する変数を決めてstepで一行ずつ手動で実行しています。 しかし、これを手動でやらなくてももっと簡単にできるのではないかという意見がでたので、自分でいろいろ調べてみたんですがなかなか見つかりませんでした。 変数の値が変化した時に停止とかならあるんですが、そうではなく変数の値が変化したら表示するみたいなことってできないでしょうか。
今は一行ずつstepでi=1、i=2・・・な感じで見ていますが、例えばrunで実行したらすぐにi=1、i=2・・・が全て表示されるようにできないでしょうか。分かりにくい気がしますが、よろしくお願いします。
No.7ベストアンサー
- 回答日時:
XPだと2.3じゃないと動かないと思いますが、動きましたか?
うーん。侮れないなXPの互換性。
>2.3はなぜかファイルが開けないとか出てむりだったので
あれ?
それはマクロ版を起動しませんでしたか?ttpmacro.exeって名前のやつは違います。まず普通にTeraTermPro(ttpmacro,exe)を起動してください。
で、ファイルメニューのNew Connectionを選んで、TCP/IPのホスト名を入れます。でポート番号が合っていることを確認してOKを押してください。
SSHでログインが暗号化されていなければ接続できるはずです。puttyを使っていたので暗号化されてるんじゃないかという不安はありますが。
もしSSHで暗号化されたら下記のTeraTermProを使ってみてください。
http://sourceforge.jp/projects/ttssh2/
この回答への補足
あーすいません、2.3はsetup押してインストールするところで、ファイルが開けないと出てインストール無理でした。 1.4と今教えていただいたものは試しましたが、ホスト名とパスワード入れても繋がりません。。。 学校なんでなんか制限があるのかもしれません。
補足日時:2007/11/30 18:15No.6
- 回答日時:
>Type <return> to continue, or q <return> to quit
プログラムが終了したんで出たのだと思います。
条件判断でコントロールできないので仕方ないかなと。
もし状況を見て制御を変えたければ、puttyの代わりにTeraTermProを使うとマクロ制御で動作を変えることが出来ます。
http://hp.vector.co.jp/authors/VA002416/
マクロのマニュアル
http://www.ne.jp/asahi/hishidama/home/tool/tterm …
GDBから返されるメッセージで入力するコマンドを変えることが可能です。
この回答への補足
いろいろありがとうございます。 一応インストールしてみたんですが、2.3はなぜかファイルが開けないとか出てむりだったので1.4をやってみました。しかし、IDとパスワード入れても入れませんでした。2.3じゃないと駄目なんですかね・・・。
補足日時:2007/11/30 16:20No.5
- 回答日時:
サクラエディタですか?
そうすると直接ネットワークでFreeBSDのディレクトリが見えていて、C言語のファイルを編集してることになります。
だったら、ソースと同じ場所にコマンドファイルをサクラエディタで作るだけですよ。
この回答への補足
今やってみました。昨日はなぜかテキストファイルで作っていたのでうまくいかなかったようです。 stepやnextをたくさん書いてみましたが、ある程度進むとType <return> to continue, or q <return> to quitっと入力を求められるんですが、これは仕方ないんですかね。。
補足日時:2007/11/30 12:16No.4
- 回答日時:
putty経由でエディタを起動すれば、ファイルを作成編集できますよ。
エディタのviとかemacsとかを使います。
そもそも、Cソースは何で編集してるんでしょうか?
コンパイルもFreeBSD上でputtyから操作してるんですよね。
エディタvi
http://www.linux.or.jp/JF/JFdocs/vi-user-usage.h …
エディタemacs
http://www.linux.or.jp/JF/JFdocs/Emacs-Beginner- …
この回答への補足
ああ、、、そうなんですか全然分かってなくて申し訳ないです。
エディタはサクラエディタで書いてます。それでputty起動して、gccでコンパイルしています。一度putty経由で起動できるかやってみます。
No.3
- 回答日時:
>解答ありがとうございます。
そうですようはステップ実行を自動で行いたいのです。 んーなかなか難しそうですね・・・まだまだパソコンにもそんなに詳しいわけではないので。そうそう。思い出しましたコマンドファイルを使えば、それに近いことが出来ますね。
サーバ側でファイルにコマンドだけを打ち込んだファイルを作ります。
例えば"cmd"というファイル名にします。中身は、
next
next
next
とかコマンドを沢山書いておきます。
ようはコマンドを自動的に入力してくれる仕組みを利用して実行を自動化するわけなんですが、
GDB実行中に
source cmd
と書くとnextが次々に自動入力されます。
任意のところで止めるのは難しいですが、実行してdispで変数を状態を追いかけるだけなら使えるんじゃないでしょか。
>よく考えたら、コンパイルやデバッガを使うときはXPではなく、puttyというフリーソフト?を使って別の計算機サーバにアクセスしてました。FreeBSDって書いてあります。んーUNIXなのかな・・・よくわからないですが。。
puttyはターミナルソフトで、サーバ側の情報を表示しているだけですね。
FreeBSDはUNIX互換のOSです。FreeBSDが入っていることはMACとかIntel系じゃないCPUですかね?
この回答への補足
何度もありがとうございます。
テキストファイル等でnextとたくさん書いたファイルcmdを作るというのとは違いますよね。 確かに自動入力してくれればいけるかもしれません。
一応外の表示ではDELL intel pentium4 ってなってますね。自分のパソコンはintelでXPなのですが、部屋には他にいくつか計算機サーバ(DELL intel pentium4 FreeBSD)がありまして、そちらで動かしているのではないかと思うのですが。
多分そのFreeBSDの方で作成するんですよね、確かに隣にあるキーボードでいじれそうですが、先生が使ってるのを見たくらいであまり分からない感じです。
No.2
- 回答日時:
GDBでXPですか?
cygwinかMinGWでしょうか?
やっと分かりました。ステップ実行を自動で行いたいのですね。
emacsのマクロで組めば可能かなとは思いますが。
何か出来たような気が・・・。う~ん思い出せない。
変数の変化のブレークポイントは、watchコマンドを使います。
http://rat.cis.k.hosei.ac.jp/article/devel/debug …
cygwinがハードウェアレベルの高速なwatchをサポートしているかは不明です。
この回答への補足
解答ありがとうございます。 そうですようはステップ実行を自動で行いたいのです。 んーなかなか難しそうですね・・・まだまだパソコンにもそんなに詳しいわけではないので。
よく考えたら、コンパイルやデバッガを使うときはXPではなく、puttyというフリーソフト?を使って別の計算機サーバにアクセスしてました。FreeBSDって書いてあります。んーUNIXなのかな・・・よくわからないですが。。。
No.1
- 回答日時:
これです。
http://flex.ee.uec.ac.jp/texi/gdb-j/gdb-j_42.html
ただ、GUIでラップしてくれるDDDなどを使うともっと楽に利用できるようになります。Xwindowが必要ですけど。
CPUが何なのか不明ですが、
>変数の値が変化したら表示
CPU(ハード)がサポートしていないと、とんでもなく遅くなりますよ。
1STEPづつ実行して変数の値に変化がないかGDBが検査することになりますので。
この回答への補足
解答ありがとうございます。そのページは前に見たことがあるのですが、上の方のことでしょうか。
下はdisp機能とかの説明ですよね。遅くなるとかは全然構わないのですが。。。
CPUはインテル、OSはXPです
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESSでタイトルバーを非表示...
-
javaからバッチファイル実行
-
JAVAの初心者です。JDKにつ...
-
staticのメモリ共有について
-
batよりjava起動
-
Java VM のヒープサイズについて
-
Eclipseで、プロジェクト名のと...
-
html上で、バッチやexeファイル...
-
Javascriptの値をJava(JSP)へ渡...
-
vs codeはオフラインでも使用で...
-
javaクラスファイルをEclipseで...
-
split関数で区切り文字がない場合
-
Eclipseのデバッグ機能が正常に...
-
classファイルについて
-
eclipse でclassesフォルダーが...
-
eclipseでスタックサイズを変更...
-
earファイルを展開する方法
-
.jarファイルの中身って書き換...
-
Eclipseのアンインストールの仕方
-
YouTubeでコメントしようとした...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBプログラムから「管理者とし...
-
ACCESSでタイトルバーを非表示...
-
windowsのタスクスケジューラを...
-
MacOS:ターミナルではNPMのコ...
-
VB6.0 ラベルが文字化け
-
CloudSticky.jarが起動しない。
-
ACCESS VBA からエクセルを最小化
-
jarファイルをバッチで実行させ...
-
Java VM のヒープサイズについて
-
ShellExecuteの使い方について
-
SYSTEM関数等を用いて複数のコ...
-
実行したらがメモ帳出て来てしまう
-
batよりjava起動
-
windows power shell icacl
-
Javaプログラムでコマンド実行...
-
JAVAでログ出力するには?
-
32bitアプリから64bitアプリの...
-
エミュレータでは動くが実機で...
-
staticのメモリ共有について
-
ShellExecuteでDOSコマンド実行...
おすすめ情報