- PR -

CDTでデバッグしたときの疑問

1
投稿者投稿内容
くまぁ
常連さん
会議室デビュー日: 2006/01/26
投稿数: 21
投稿日時: 2006-03-17 17:28
いつもお世話になっております。

Eclipse環境でC言語をデバッグしたことの
ある方に質問なのですが、ウォッチビュー
で変数の値を確認するときに、グローバル
変数に「_(アンダーバー)」が自動的に
付与されるのは何故なのでしょうか。


【サンプルコード】
int a = 5;

int main(void){
 int b = 0;
 b = a;
 return 0;
}


【ウォッチビュー】
_a = 5


それが仕様と言われればどうしようもないの
ですが、CDTプラグインをカスタマイズして
「_(アンダーバー)」を取り除こうと思えば
取り除けるのでしょうか。

私自身調査を継続していますが、もしご存知
の方がおられましたら、ご教授のほど宜しく
お願いします。
くまぁ
常連さん
会議室デビュー日: 2006/01/26
投稿数: 21
投稿日時: 2006-03-20 10:02
CDTプラグイン中で意図的に「_(アンダーバー)」
を付与しているのかと思っていたのですが、大きく
見当違いでした(汗)


外部シンボルを取り込みウォッチビューに表示して
いる処理部分を引き続き調べていますので、調査部
の処理について詳しい方がおられましたら、ご教授
の程よろしくお願いします。


[ メッセージ編集済み 編集者: くまぁ 編集日時 2006-03-24 09:23 ]
くまぁ
常連さん
会議室デビュー日: 2006/01/26
投稿数: 21
投稿日時: 2006-03-22 17:54
【プラグイン名】
org.eclipse.cdt.debug.core

上記のプラグインの中にある「Grobal」という
名前がついているクラス内に配列として変数名
を格納していることがわかりました。

変数名を格納している配列の0番目が「_」を
格納しているようなので、配列を読み込む処理
に手を加えればウォッチビューの「_」を表示
抑制できそうです。


まだまだ有識者からのアドバイスをお待ちして
おりますので、どうぞよろしくお願いします。
くまぁ
常連さん
会議室デビュー日: 2006/01/26
投稿数: 21
投稿日時: 2006-03-23 17:02
今まで「ウォッチビューに表示される変数名」という
視点で解析を続けていたのですが。。。

パッケージエクスプローラに表示されるグローバル変
数も「_」付で表示されていることに気付きました。

実行ファイルの内容を読み取り、ツリー形式で表示し
ているのだと思いますが、この問題を解決する為には
実行ファイルを読み取っている記述箇所を探す必要が
ありそうです。




「その考えは間違っている」、「この部分は見た?」等
ちょっとしたアドバイスでも大歓迎ですので、どうぞ
よろしくお願いします。
unibon
ぬし
会議室デビュー日: 2002/08/22
投稿数: 1532
お住まい・勤務地: 美人谷        良回答(20pt)
投稿日時: 2006-03-23 20:07
良くは知りませんが、グローバル変数にアンダーバーが付くのは、昔から、リンカーの仕様なので、そうなるものであたりまえなのではないでしょうか。
デバッガーによっては言語を意識して隠蔽しているものも多いのかもしれませんが、付いていてもとくに違和感はありません。
これを前提としても、なおも付いているものを取り除きたい、という要求なのでしょうか?
くまぁ
常連さん
会議室デビュー日: 2006/01/26
投稿数: 21
投稿日時: 2006-03-24 09:07
unibonさん、返答ありがとうございます。

色々と検討した結果、問題が解決しました。
ありがとうございました。

[ メッセージ編集済み 編集者: くまぁ 編集日時 2006-03-24 09:22 ]
未記入
ぬし
会議室デビュー日: 2004/09/17
投稿数: 667
投稿日時: 2006-03-24 14:58
問題が解決したとは?

読んでいる人には、アンダーバーを除いて表示できるようになったのか(だとしたらその方法は?)、アンダーバーが表示されるのは当たり前ということで納得しのか、分かりません。
くまぁ
常連さん
会議室デビュー日: 2006/01/26
投稿数: 21
投稿日時: 2006-03-24 17:04
未記入さんのおっしゃる通りです。
申し訳ありません。

アンダーバーの件については、仕様であるならば、
無理に取り除く必要がないという結論になりました(汗)


結果(結論)報告が遅れたことも、深くお詫びします。
返答してくださったunibonさん、未記入さん、そして、
このスレッドに目を通してくださった方々。
本当にありがとうございました <(_ _)>
1

スキルアップ/キャリアアップ(JOB@IT)