デバッグ中、配列の中身が「?」で表示されるんですが

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
山岡

デバッグ中、配列の中身が「?」で表示されるんですが

#1

投稿記事 by 山岡 » 5年前

ビジュアルスタジオ2010にてアクションゲームを作っているんですが、
デバッグ中、配列に格納したマップ情報とオブジェクトとの判定をする部分で
ごくまれにエラーが起きて停止します。
経験則で判断すると、マップ判定でのエラーは
マップ情報の無い部分にオブジェクトが飛び出すというものが多かったんですが
今回は目視ですべてのオブジェクトが飛び出してるか否か確認出来る状態で
毎回エラー発生時に怪しいオブジェクトがいないので、今までのエラーとは違うような気がします。
しかも、滅多にそのエラーが出ないため、原因を探れません。

ただ、気持ち悪いことがひとつありまして、そのエラーで停止したあと、
マップの情報を入れた配列にカーソルを当てて、要素を見たら、
途中から「?」という状態になって表示されてるんです。
http://download1.getuploader.com/g/zipc ... e/91/B.png
http://download1.getuploader.com/g/zipc ... e/90/A.png
これがおかしなことに、見るのを止めて、もう一度カーソルを合わせてみると
今度はちゃんと中身が入ってる状態で表示されたりします。

ビジュアルスタジオの扱いにまだ慣れてないせいもあり、
中身が「?」で表示されたのは初めてだし、覗き直すたびに
「?」だったり、ちゃんと中身が見れたりすることが気持ち悪いんですが
これは別に、問題ないのでしょうか?(もともとそういうものだ、とか)
もし、ゲーム中に配列の中身が「?」みたいになる瞬間があるのなら
そりゃいきなりオブジェクトがど真ん中にいてもエラーになると思うんです。。。
これが原因なのかと思うんですが、、違いますか?
もしくは配列覗いたときの、「?」表示はビジュアルスタジオのバグなんでしょうか?

ちなみに、マップ配列の中身の格納は
ゲームが始まる最初に行っているので、
ゲーム中にマップ配列の中身が変わることは考えられない仕様です。
だとするとこの「?」はなんなんでしょうか?

考えられる要因を教えて下さい、お願い致します。

山岡

Re: デバッグ中、配列の中身が「?」で表示されるんですが

#2

投稿記事 by 山岡 » 4年前

出来れば、
解答を頂けない理由を教えて頂けないでしょうか?

質問するにあたってなにか不備がありましたら
なんでも言ってください。補完に努めます。
大変困っておりますので
知識のある方の回答をお待ちしています。

たいちう
記事: 418
登録日時: 9年前

Re: デバッグ中、配列の中身が「?」で表示されるんですが

#3

投稿記事 by たいちう » 4年前

> 出来れば、
> 解答を頂けない理由を教えて頂けないでしょうか?

数分で回答があるときもあれば、数週間ないときもあります。
1日以内に解決できないとまずいのならば、掲示板以外の解決方法を探してください。


(これは憶測ですが)もしかしたら、以前のあなたの質問について、
回答に対する返事すらない状況に思うところのある人もいるのかもしれません。

以前のあなたの質問のスレを冷静に読み返してはどうでしょうか。
今ならどのように思いますか?

山岡

Re: デバッグ中、配列の中身が「?」で表示されるんですが

#4

投稿記事 by 山岡 » 4年前

たいちう さんが書きました: 以前のあなたの質問のスレを冷静に読み返してはどうでしょうか。
今ならどのように思いますか?
ああ、なるほど、、、確かに、確認しましたが
前回の質問では荒れてしまい、そのまま放置してますね。
で、その報いということで、今回皆さんから
無視されてるわけですね。
皆さんが答える前に投稿者の過去質問とか
checkされてることに驚きですが、無視されてることには納得出来ました。
スルーされてるのは身から出たサビ、自業自得ですね。
今更手のひら返した様に前回のことを謝っても評価は変わらないでしょうし
罪人はおとなしく他のところで相談することにします。

たいちうさん、ありがとうございました。

山岡

Re: デバッグ中、配列の中身が「?」で表示されるんですが

#5

投稿記事 by 山岡 » 4年前

>>トピックを削除するの権限のある方へ

こんだけの長文の質問でありながら
解答を頂く資格のない者が立てたこのトピックは
同じ症状の方がたどり着いてもなんの解決にもならず、
役に立たないトピは掲示板汚しでしか無く、
それは申し訳ないので、気付かれましたら即刻削除して構いません。
皆さんのためによろしくお願い致します。

hide

Re: デバッグ中、配列の中身が「?」で表示されるんですが

#6

投稿記事 by hide » 4年前

デバッガの細かい動作まで知りませんし、どう再現したらいいのか書かれてませんから
とりあえず私では答えようがありませんね。
再現できる方法があれば、プログラムとしての一般的な考え方でどこが悪いか指摘できるかもしれませんが、
この質問ではvisual studioを使ってないと答えようが無いです。
オフトピック
ちなみに山岡さんがどんな投稿をしたかとか完全に忘れてました。わりとどうでもいいので。
反面教師にはなるから消さなくていいんじゃないですか?

たいちう
記事: 418
登録日時: 9年前

Re: デバッグ中、配列の中身が「?」で表示されるんですが

#7

投稿記事 by たいちう » 4年前

山岡さんの質問は客観性にとぼしく、第三者には何が起こっているのか、
どのようなアドバイスが有効なのか、判断が難しいと思いました。
これは初心者の質問にはよくあることなのですが、
その人が過去にした質問を読み返すことで、質問の背景が判り、
少しはアドバイスの役に立つことがあります。

見覚えのある名前だったので、過去ログを検索してみたところ、
自分へのレスを無視しているのに、今回は1日も待てないとか、
掲示板の使い方が判っていないのではないかと、
その時点で一番有益と思ったアドバイスをしたつもりです。

追い出す意図はなかったんですけどね。
そのように受け取られたのは私にも原因があるのでしょう。
申し訳ありません。
山岡さんが真剣に解決を望むならば、この掲示板を使うことは
最良の選択の1つだと思いますよ。
謝罪ではなく行動によって評価は変わっていきますので、
改めるべきところは改めていけばよいと思います。
自分が変わらなければ、他所でも同じことを繰り返しませんか?


さて、最初の質問については、hideさんも書いているように、
私も上で書いたように、説明不足です。
どんなプログラムでどんな操作をしたのか説明してください。

手元で再現さえできれば、解決方法なり説明なり書き込める回答者は多いと思うので、
「現象を再現できる最小限のプロジェクト」をアップしたりしてください。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

Re: デバッグ中、配列の中身が「?」で表示されるんですが

#8

投稿記事 by softya(ソフト屋) » 4年前

山岡さんの過去の言動は、今回の返答のない事に直接関係ないと思います。
この質問を見た回答者で返答がないのは、再現性が悪かったか、VisualStudio2010を既に使っていないかのどちらかだと思います。
※ 私の場合、VisualStudio2010が動きませんので確認するすべがありません。そのため、回答できませんでした。
特定の環境に偏ったトラブルですので、時間を掛けて待てば回答があったかもしれません。

早く回答を欲しい場合は、環境を正確に書くこと(SP1適用済みの有無など)
2012/2013/2015での検証があればなお良いです。
それと状況を簡単に再現できる手順・プロジェクトを提示することだと思います。

なお、削除の依頼は特別な場合をのぞいてお受けできませんのでご了承ください(自己都合は基本的にお受けできません)
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
V30
記事: 21
登録日時: 5年前
住所: 岡山県

Re: デバッグ中、配列の中身が「?」で表示されるんですが

#9

投稿記事 by V30 » 4年前

デバッガが停止中に変数の値が変わる、しかも元に戻ったりするなんて、
もしかしたらコードとは関係ない所に原因があるのかも知れませんね。

VS2013を長い間使っている素人の言葉なので参考にはならないかも知れませんが、
VS2010を久々に起動してどんな使い勝手だか思い出してみました。

私の場合、デバッガ中断時の変数確認は直接コードにマウスカーソルを合わせるのではなく、
【メニュー→デバッグ(D)→ウィンドウ(W)→ローカル(L)】
で表示されるウインドウにて確認をする事が多いです。
そのウインドウを見ている最中に変数内容が変わった事は一度もないので、VSのアップデート確認や立ち上げをやり直したりして、
もし私の使っているこの方法も含めて変数内容がコロコロ変わるようなら、デバッガ(VS2010自体)や他の動作しているプロセス、
更にはPCに不具合がある事も考慮しなければならないと思います。

私なりの拙い結論と致しまして、コードの公開が難しいのであれば、先ずはVS2010を再インストールしてみたり、
他のPC・コンパイラでも試してみる必要があると思います。
色々実験できない環境にあるのでしたら、行き詰まったその都度に追加で質問すれば良いと思います。
山岡さんの不具合は証拠写真もある紛れもない事実なので、解決への道は必ずありますよ。
素人的な質問は、素人に聞こう!

危ない危ない。
ちゃんとした人に質問しましょう。
ちなみに私は、ちゃんとしていない素人です。

Aozora0630
記事: 85
登録日時: 5年前
住所: 日本
連絡を取る:

Re: デバッグ中、配列の中身が「?」で表示されるんですが

#10

投稿記事 by Aozora0630 » 4年前

TD32を使ってるけど??が出る原因としては

・メモリが確保されていない。

コード:

int *pointer;
デバッガでpointerを見たら多分??になってると思う。
又は、auto指定子とか何とか。
ポインタじゃない普通の宣言では出てくることはあまり無い。

・deleteをつかった

コード:

int abcdefg = 100;
delete &abcdefg;
此れもabcdefgが??になってると思う。

つまりは参照先メモリが空或いは不明な場合に出る。

ISLe()

Re: デバッグ中、配列の中身が「?」で表示されるんですが

#11

投稿記事 by ISLe() » 4年前

さいきんは週一くらいでしか来ないISLeです。

コンテキストから外れた変数の中身が?で表示されることはふつうにあることですよね。

DXライブラリを使っていて且つブレークポイントを使うデバッグは、2010までしかまともに使えないのではありませんでしたっけ。
2012以降だとブレークポイントで止めるとデスクトップが固まってしまうようになりました。
でも2012以降を使っておられる方がコメントされているのでまともに使えることもあるのでしょうかね。

2010でも裏で動いているDXライブラリの生成したスレッドが影響している可能性はあるんじゃないでしょうか。

アバター
V30
記事: 21
登録日時: 5年前
住所: 岡山県

Re: デバッグ中、配列の中身が「?」で表示されるんですが

#12

投稿記事 by V30 » 4年前

>>ISLe()さん

2010は一見2013と同じ様ですが、長時間触っていると色々細かい所が違いますね。新鮮味を感じました。
すっかり忘れていましたと言うより、そもそも2010自体ちゃんと使い熟せていなかったような…

・コンテキスト外については、?ではなくて、通常のコーディング時と同じ宣言名のみが表示されると認識しております。
 私の誤認識でしたら、この質問は殆ど解決ですね!(汗)

・2012は分からないですが、手元の2010と2013では確かにDXLibアプリのウインドウだけ固まっています。

・表裏で動いている全てのプログラムが影響を与えている可能性があると書いた方が解りやすかったですね。
 各ライブラリについて触れ忘れているのに、敢えて黙っていました。放置していて、済みません。m(_ _)m



>>山岡さん

昨日は色々と怖い話をしましたが、冷静に考えればPCやOSが逝かれているよりもやはりコーディングミスに因る可能性が高い
気がします。

VS2010を使って自作のアクションゲーム[作りかけの中途半端な物だけど当たり判定とかは完璧]を弄りながら試してみた所、
私が採用している方式の2次元タイルマップ用チップ[char型1次元]配列変数[要素40000]は、初期化関数でファイルから読み
込んだデータを書き込んだ以降は参照しかしていないので、参照不可能を示す「?」表示にはなりませんでした。
設計上&理論上、当然の結果です。
大まかなテストなので型と次元は違っても差し支えないと思ってやりましたが、厳密には要素数の一致するunsigned char型
2次元配列(予測)で試みるべきだと考えています。しかし、原因のコードが手元にない限り、予測できる一部分を幾ら真似て
もあまり意味がないのも現実です。

続いて、本題です。

当たり判定部分でデバッガが中断するのは確定しているのですから、エラーのメッセージ内容をお知らせ下さるだけでも速や
かに解決出来るかもしれないので、ご提示頂けると幸いです。
コード提示の場合でも、当たり判定部分だけで解るかも知れませんので、本気で解決したいのであれば、出し惜しみなく情報
をご提供下さい。

あくまでも私の予想ですが、このサイトの皆さんはVS2010を使用している方が多いと思いますので、時間さえ焦らなければ、
ベテランの方も初心者の方もPC歴27年で未だド素人な私でも、何とかお力添えになれると信じております。
素人的な質問は、素人に聞こう!

危ない危ない。
ちゃんとした人に質問しましょう。
ちなみに私は、ちゃんとしていない素人です。

アバター
へにっくす
記事: 628
登録日時: 7年前
住所: 東京都

Re: デバッグ中、配列の中身が「?」で表示されるんですが

#13

投稿記事 by へにっくす » 4年前

山岡 さんが書きました:これがおかしなことに、見るのを止めて、もう一度カーソルを合わせてみると
今度はちゃんと中身が入ってる状態で表示されたりします。
解析に時間がかかってるだけじゃないの。
見た感じ、かなりでかいmapのようだし、それぞれの要素の値を取り出して、整形して、、
という処理が別スレッドで動いていて、それが終わるまでは??が表示されるのではないかと。
だって気になる現象はそれだけなんでしょ?
他の動作に何か気になるところがあるのでしょうか?
written by へにっくす

山岡

Re: デバッグ中、配列の中身が「?」で表示されるんですが

#14

投稿記事 by 山岡 » 4年前

トピが削除されたか確認しに来ましたが、
皆様からのお優しいコメントに
過去の質問での自分の態度を今、反省させられました。
その節はご迷惑をかけ、申し訳ありませんでした。

一応報告させて頂きますが、エラーについては解決致しました。
やはりというか案の定、オブジェクトがmap範囲外に飛び出してしまっていました。

中断中に、確認する配列の中身が[?]になる症状ですが、
「もしかしてreleaseモードでやってる?debugモードだとそういう時ちゃんと確認できるよ」的な指摘を受け
これが確かにreleaseモードでやっていたときの話でしたので、
「なるほど」と自己完結させて頂きました。
debugモードで同じエラーを出して、配列を確認したいところですが
エラー自体があからさまなエラーと判明し、それに対処した今
そのエラーともおさらばした状態ですので、もういいか、で済ませています。

こんな結果ですが、少しでも皆様の参考になればと思います。

今回のことを踏まえ、以後気持ちを改めます故
また何かありました時はどうぞよろしくお願い致します。

というか、コメント頂いた誰も今は2010を使ってないって
もうそんなに古いバージョンなんですね。結構ショックでした。
新しければ良いってものでは無い、使い馴染んだものを、ということで
2010を使い続けてきましたが、さすがにそろろそ変えた方がいいんでしょうか。
2013の評判は良いようですし、、でももう2015が出るとも言ってますよね。
なまじプログラミング、開発環境等、そういう専門知識を要することに
精通していないので、ツールひとつ新しいのに変えるのは抵抗があるんですよね。
安くは無いですし。
まあただブツブツと独り言です。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

Re: デバッグ中、配列の中身が「?」で表示されるんですが

#15

投稿記事 by softya(ソフト屋) » 4年前

> 「もしかしてreleaseモードでやってる?debugモードだとそういう時ちゃんと確認できるよ」的な指摘を受け

最初にそれを書いてもらったら回答が直ぐ付いたかもしれませんね。
情報不足だと回答がつきにくい典型だと思います。


>というか、コメント頂いた誰も今は2010を使ってないって

誰もと言いませんが、2010は私にとって不安定なのです。
あとインテリセンスが働かない問題が出るなど色々あったからじゃないでしょうか。
それと2012も私は動きません。
問題なく動く2005/2008は今も利用していて、2013は問題なく動きます。
C++の場合で C++11/C++14規格を利用したい場合2013/2015を使わざるおえませんので、C++を使い込んでいる人は2010を使う理由がない特に無いと思います。
回答者の場合は特にその傾向は強くなりますからね。

>安くは無いですし。

2013 の communityバージョンは利用できないのでしょうか?
条件を満たせていれば無料でPROバージョンと同等機能が使えます。
https://www.microsoft.com/ja-jp/dev/pro ... unity.aspx
2015もcommunityバージョンが提供予定です。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

山岡

Re: デバッグ中、配列の中身が「?」で表示されるんですが

#16

投稿記事 by 山岡 » 4年前

softya(ソフト屋) さんが書きました: 2013 の communityバージョンは利用できないのでしょうか?。
これは、ありがとうございます。
調べてみます。
ただひとつだけ確認させて頂きたいのですが
visualstudio2010で制作途中のDXライブラリを使っているプロジェクトをそのまま続行するうえで、
2013へのバージョンアップは問題はまったく無いということでよろしいでしょうか。
それともプロジェクトなり、DXライブラリなり移行する際、
ややこしいことしないとダメですか?(なにかを書き換える必要がある、とか。

あ、確かDXライブラリ自体、
visualstudioのバージョンに合わせたものが用意されてたような。。。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

Re: デバッグ中、配列の中身が「?」で表示されるんですが

#17

投稿記事 by softya(ソフト屋) » 4年前

山岡 さんが書きました:
softya(ソフト屋) さんが書きました: 2013 の communityバージョンは利用できないのでしょうか?。
これは、ありがとうございます。
調べてみます。
ただひとつだけ確認させて頂きたいのですが
visualstudio2010で制作途中のDXライブラリを使っているプロジェクトをそのまま続行するうえで、
2013へのバージョンアップは問題はまったく無いということでよろしいでしょうか。
それともプロジェクトなり、DXライブラリなり移行する際、
ややこしいことしないとダメですか?(なにかを書き換える必要がある、とか。

あ、確かDXライブラリ自体、
visualstudioのバージョンに合わせたものが用意されてたような。。。
2010 → 2013はやったことがないので分かりません。
そもそも、どうやって作ったプロジェクトか分からないので、作り方しだいで変わると思います。
ただ、ソースとデータだけコピペで移してもさほどの手間とは思えません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

閉鎖

“C言語何でも質問掲示板” へ戻る