🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

DXライブラリ

DXライブラリとは、DirectXを使ったWindowsソフトの開発に必ず付いて回るDirectXやWindows関連のプログラムを使い易くまとめた形で利用できるようにしたC++言語用のゲームライブラリです。

Q&A

解決済

3回答

631閲覧

変数zannzoulockが変化しません。

R-ogiura

総合スコア60

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

DXライブラリ

DXライブラリとは、DirectXを使ったWindowsソフトの開発に必ず付いて回るDirectXやWindows関連のプログラムを使い易くまとめた形で利用できるようにしたC++言語用のゲームライブラリです。

0グッド

1クリップ

投稿2019/12/09 22:10

環境

  • Windows10
  • C++
  • X64
  • visual studio 2019

if (Pad[PAD_RIGHT] == 1 && playerX < 2)とif (Pad[PAD_LEFT] == 1 && playerX > 0)にzannzoulock = 1と書きました。
例えば十字キーの右を押すと、zannzou = 30となりzannzoulock = 1となります。
すると892行から917行内に書いた以下のプログラムが動きます。

if (zannzou <= 5 && zannzou > 0) { DrawRotaGraph(pos[playerY][playerX][0] + 20 - (27) * zannzou / 1, pos[playerY][playerX][1], 2.0, 0, playerGHandle[5], TRUE); } if (zannzou <= 10 && zannzou > 0) { DrawRotaGraph(pos[playerY][playerX][0] + 20 - (25) * zannzou / 3, pos[playerY][playerX][1], 2.0, 0, playerGHandle[5], TRUE); } if (zannzou <= 15 && zannzou > 0) { DrawRotaGraph(pos[playerY][playerX][0] + 20 - (20) * zannzou / 4, pos[playerY][playerX][1], 2.0, 0, playerGHandle[5], TRUE); } if (zannzou <= 20 && zannzou > 0) { DrawRotaGraph(pos[playerY][playerX][0] + 20 - (15) * zannzou / 5, pos[playerY][playerX][1], 2.0, 0, playerGHandle[5], TRUE); } if (zannzou <= 25 && zannzou > 0) { DrawRotaGraph(pos[playerY][playerX][0] + 20 - (10) * zannzou / 6, pos[playerY][playerX][1], 2.0, 0, playerGHandle[5], TRUE); } if (zannzou <= 30 && zannzou > 0) { //★残像を出すためにRキーでAを押したら変数zannzouが20になり、zannouの変数が0より大きいならば—1をしていき、その間だけ画像を描画する。 --zannzou; DrawRotaGraph(pos[playerY][playerX][0] + 20 - (1) * zannzou / 7, pos[playerY][playerX][1], 2.0, 0, playerGHandle[5], TRUE); }//移動した一瞬に元の位置に自分を描画したい、しかしうまく機能していない。 ///★多分一瞬過ぎるのであえてcount < 8と範囲を付けることでほんの一瞬だが残像が見えるようにした。 ///攻撃してcountが50に溜まるまでの期間を利用した。 if (zannzou < 1) { zannzou = 0; zannzoulock = 0; }

しかし、変数zannzoulockはずっと0のままで、描画して変数の変化を見ましたが、何も変化が見られませんでした。(※左ボタンでの変数zannzoulockも変化がありません)

大変お手数おかけしてしまうのですが、このようなエラーを解決するときにブレークポイントという方法があることは知っています。ですが、サイトを参考にいじってみても何をどうしていいのか未だにわからず唯一知っているdebug方法は描画してエラーを見る方法しか知りません。
なので、ブレークポイントをどのように利用することで今回の問題が解決するのか教えて頂けないでしょうか。

以下は全体のプログラムです。
全体のプログラム

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

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

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

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

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

guest

回答3

0

そのif文のところでブレークポイントを設定して実行を止め、各変数のナカミを見てみましょう。
そして、1行づつステップ実行させて、その変数のナカミがどう変化するのかを見ていきます

投稿2019/12/09 22:55

y_waiwai

総合スコア88038

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

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

R-ogiura

2019/12/10 00:54

debugしたところ、値が変わっていないのでプログラム自体に問題があると考え、以下の部分 if (zannzou <= 5 && zannzou > 0) { DrawRotaGraph(pos[playerY][playerX][0] + 20 - (27) * zannzou / 1, pos[playerY][playerX][1], 2.0, 0, playerGHandle[5], TRUE); } if (zannzou <= 10 && zannzou > 0) { DrawRotaGraph(pos[playerY][playerX][0] + 20 - (25) * zannzou / 3, pos[playerY][playerX][1], 2.0, 0, playerGHandle[5], TRUE); } if (zannzou <= 15 && zannzou > 0) { DrawRotaGraph(pos[playerY][playerX][0] + 20 - (20) * zannzou / 4, pos[playerY][playerX][1], 2.0, 0, playerGHandle[5], TRUE); } if (zannzou <= 20 && zannzou > 0) { DrawRotaGraph(pos[playerY][playerX][0] + 20 - (15) * zannzou / 5, pos[playerY][playerX][1], 2.0, 0, playerGHandle[5], TRUE); } if (zannzou <= 25 && zannzou > 0) { DrawRotaGraph(pos[playerY][playerX][0] + 20 - (10) * zannzou / 6, pos[playerY][playerX][1], 2.0, 0, playerGHandle[5], TRUE); } if (zannzou <= 30 && zannzou > 0) { //★残像を出すためにRキーでAを押したら変数zannzouが20になり、zannouの変数が0より大きいならば—1をしていき、その間だけ画像を描画する。 --zannzou; DrawRotaGraph(pos[playerY][playerX][0] + 20 - (1) * zannzou / 7, pos[playerY][playerX][1], 2.0, 0, playerGHandle[5], TRUE); }//移動した一瞬に元の位置に自分を描画したい、しかしうまく機能していない。 ///★多分一瞬過ぎるのであえてcount < 8と範囲を付けることでほんの一瞬だが残像が見えるようにした。 ///攻撃してcountが50に溜まるまでの期間を利用した。 if (zannzou < 1) { zannzou = 0; zannzoulock = 0; } を以下のように逆にして実行したところうまくいきました。 //右コマンドの残像 if (zannzou <= 30 && zannzou > 0) { //★残像を出すためにRキーでAを押したら変数zannzouが20になり、zannouの変数が0より大きいならば—1をしていき、その間だけ画像を描画する。 --zannzou; DrawRotaGraph(pos[playerY][playerX][0] + 20 - 15 * zannzou / 2, pos[playerY][playerX][1], 2.0, 0, playerGHandle[3], TRUE); }//移動した一瞬に元の位置に自分を描画したい、しかしうまく機能していない。 ///★多分一瞬過ぎるのであえてcount < 8と範囲を付けることでほんの一瞬だが残像が見えるようにした。 ///攻撃してcountが50に溜まるまでの期間を利用した。 if (zannzou <= 25 && zannzou > 0) { DrawRotaGraph(pos[playerY][playerX][0] + 20 - 13 * zannzou / (11 / 5), pos[playerY][playerX][1], 2.0, 0, playerGHandle[3], TRUE); } if (zannzou <= 20 && zannzou > 0) { DrawRotaGraph(pos[playerY][playerX][0] + 20 - 10 * zannzou / (24 / 10), pos[playerY][playerX][1], 2.0, 0, playerGHandle[3], TRUE); } if (zannzou <= 15 && zannzou > 0) { DrawRotaGraph(pos[playerY][playerX][0] + 20 - 6 * zannzou / (26 / 10), pos[playerY][playerX][1], 2.0, 0, playerGHandle[3], TRUE); } if (zannzou <= 10 && zannzou > 0) { DrawRotaGraph(pos[playerY][playerX][0] + 20 - 1 * zannzou / (28 / 10), pos[playerY][playerX][1], 2.0, 0, playerGHandle[3], TRUE); } if (zannzou <= 5 && zannzou > 0) { DrawRotaGraph(pos[playerY][playerX][0] + 20 - zannzou / 3, pos[playerY][playerX][1], 2.0, 0, playerGHandle[3], TRUE); if (zannzou <= 1) { zannzou = 0; zannzoulock = 0; } }
R-ogiura

2019/12/10 03:48

どうもありがとうございました。
guest

0

例えば十字キーの右を押すと、zannzou = 30となりzannzoulock = 1となります。

(1)想定では値が1になるはずの処理である

しかし、変数zannzoulockはずっと0のままで、描画して変数の変化を見ましたが、何も変化が見られませんでした。

(2)確認を入れた個所では0になってしまっている

ここから原因を推測してみると,とりあえず

  • zannzoulock = 1という処理が何らかの理由(例えば条件分岐の記述の間違いとか)で実行されていない
  • zannzoulock = 1は実行されているんだけど,前期(2)の確認箇所までの間に0に上書きされてしまっている

くらいが考えられます.
(ほかにも,1にしたzannzoulockと確認しているzannzoulockが実は別の物だったとか,いろいろと考えられるでしょうけど)

まず,前者を疑うとしたら,
zannzoulock = 1が書かれている行にブレークポイントを設定して実行してみればよいです.
そこをちゃんと通っているかどうかは,まずはこれでわかるでしょう.

前者が大丈夫そうなら,後者を調べます.

  • 値を1にしている個所と描画して調べている個所とが(コードの行の位置的に)近いならば,とりあえず前期のブレークポイントで止まったところからステップ実行でもしていきながら,zannzoulockの値が変化しないかどうか見てみるだけでも怪しい箇所が見つかるでしょう.
  • zannzoulockの値を変更しているような箇所すべてにブレークポイントを設定してやれば,手っ取り早く想定外のタイミングでzannzoulockの値が書き換えられてしまうことを見つけることができるかもしれません.
  • あるいは,データブレークポイントというのを使えば,zannzoulock(のメモリ位置)の値が変わった瞬間を見つけることもできます.

で,想定外の箇所が実行されている(あるいは想定した処理が実行されていない)ということが分かったなら,今度はその実行条件に関連する箇所にブレークポイントを設定して,条件に関連する変数の値を見てやる……
ということをしていき,根本原因を辿ります.


あと,描画して変数の変化を見るような方法だと,毎度それ用の描画コードを仕込んだり除去したりが大変ですし,その描画処理自体がバグっていて状況を見誤る可能性もあります.
複雑なデータならば描画しないと意味がわからないという場合もありますが,今回のような単体の変数の値を見るような場合にはあまりお勧めしません.
VisualStudioにはトレースポイントなる機能があるので,これを使うと便利です.

投稿2019/12/10 07:52

編集2019/12/10 07:54
fana

総合スコア11985

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

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

fana

2019/12/10 07:56

各機能の設定方法だとかは,ググってください.
fana

2019/12/10 07:59

> VisualStudioにはトレースポイントなる機能があるので,これを使うと便利です. というのを割と最近知った初心者な私でございます.
R-ogiura

2019/12/10 18:50 編集

色々試してみます。 毎度毎度ご親切にありがとうございます! いえいえ、偏見無しに客観的に解答していただけていつもありがとうございます。
guest

0

自己解決

debugしたところ、値が変わっていないのでプログラム自体に問題があると考え、以下の部分

if (zannzou <= 5 && zannzou > 0) { DrawRotaGraph(pos[playerY][playerX][0] + 20 - (27) * zannzou / 1, pos[playerY][playerX][1], 2.0, 0, playerGHandle[5], TRUE); } if (zannzou <= 10 && zannzou > 0) { DrawRotaGraph(pos[playerY][playerX][0] + 20 - (25) * zannzou / 3, pos[playerY][playerX][1], 2.0, 0, playerGHandle[5], TRUE); } if (zannzou <= 15 && zannzou > 0) { DrawRotaGraph(pos[playerY][playerX][0] + 20 - (20) * zannzou / 4, pos[playerY][playerX][1], 2.0, 0, playerGHandle[5], TRUE); } if (zannzou <= 20 && zannzou > 0) { DrawRotaGraph(pos[playerY][playerX][0] + 20 - (15) * zannzou / 5, pos[playerY][playerX][1], 2.0, 0, playerGHandle[5], TRUE); } if (zannzou <= 25 && zannzou > 0) { DrawRotaGraph(pos[playerY][playerX][0] + 20 - (10) * zannzou / 6, pos[playerY][playerX][1], 2.0, 0, playerGHandle[5], TRUE); } if (zannzou <= 30 && zannzou > 0) { //★残像を出すためにRキーでAを押したら変数zannzouが20になり、zannouの変数が0より大きいならば—1をしていき、その間だけ画像を描画する。 --zannzou; DrawRotaGraph(pos[playerY][playerX][0] + 20 - (1) * zannzou / 7, pos[playerY][playerX][1], 2.0, 0, playerGHandle[5], TRUE); }//移動した一瞬に元の位置に自分を描画したい、しかしうまく機能していない。 ///★多分一瞬過ぎるのであえてcount < 8と範囲を付けることでほんの一瞬だが残像が見えるようにした。 ///攻撃してcountが50に溜まるまでの期間を利用した。 if (zannzou < 1) { zannzou = 0; zannzoulock = 0; }

を以下のように逆にして実行したところうまくいきました。

//右コマンドの残像 if (zannzou <= 30 && zannzou > 0) { //★残像を出すためにRキーでAを押したら変数zannzouが20になり、zannouの変数が0より大きいならば—1をしていき、その間だけ画像を描画する。 --zannzou; DrawRotaGraph(pos[playerY][playerX][0] + 20 - 15 * zannzou / 2, pos[playerY][playerX][1], 2.0, 0, playerGHandle[3], TRUE); }//移動した一瞬に元の位置に自分を描画したい、しかしうまく機能していない。 ///★多分一瞬過ぎるのであえてcount < 8と範囲を付けることでほんの一瞬だが残像が見えるようにした。 ///攻撃してcountが50に溜まるまでの期間を利用した。 if (zannzou <= 25 && zannzou > 0) { DrawRotaGraph(pos[playerY][playerX][0] + 20 - 13 * zannzou / (11 / 5), pos[playerY][playerX][1], 2.0, 0, playerGHandle[3], TRUE); } if (zannzou <= 20 && zannzou > 0) { DrawRotaGraph(pos[playerY][playerX][0] + 20 - 10 * zannzou / (24 / 10), pos[playerY][playerX][1], 2.0, 0, playerGHandle[3], TRUE); } if (zannzou <= 15 && zannzou > 0) { DrawRotaGraph(pos[playerY][playerX][0] + 20 - 6 * zannzou / (26 / 10), pos[playerY][playerX][1], 2.0, 0, playerGHandle[3], TRUE); } if (zannzou <= 10 && zannzou > 0) { DrawRotaGraph(pos[playerY][playerX][0] + 20 - 1 * zannzou / (28 / 10), pos[playerY][playerX][1], 2.0, 0, playerGHandle[3], TRUE); } if (zannzou <= 5 && zannzou > 0) { DrawRotaGraph(pos[playerY][playerX][0] + 20 - zannzou / 3, pos[playerY][playerX][1], 2.0, 0, playerGHandle[3], TRUE); if (zannzou <= 1) { zannzou = 0; zannzoulock = 0; } }

原因は
if (zannzou < 1) {
zannzou = 0; zannzoulock = 0;
}
の部分でした。
if (zannzou == 1) {
zannzou = 0; zannzoulock = 0;
}
としたところ変数のバグはなくなり書いた通りに動きました。

低評価を押した(凄腕?の)プログラマーの方、押すのは結構ですけど、せめて理由くらい書いてください。
まさか、理由なしに低評価を押すようなチンパンじゃないはずですよね?
そうでなければ、お願いしまーす。

回答のアドバイスは実行しました。そして、「自己」解決にいたりました。

投稿2019/12/10 00:56

編集2019/12/10 03:18
R-ogiura

総合スコア60

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

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

m.ts10806

2019/12/10 03:07

>せめて理由くらい書いてください。 この期に及んで説明が必要な低評価ではないでしょう。 それとも同じこと指摘させるつもりですか?
m.ts10806

2019/12/10 03:15 編集

それにその指摘がきちんと聞き入れられて受け入れられる人なのであればきちんとコメントついてます。 つかないことで察するものが何もないのであれば「いい加減コミュニティから去ってくれ」と言われているのと同義と思って差し支えありません。
BluOxy

2019/12/10 03:10

ブレークポイントの使い方についての質問なので、回答と食い違っています。
BluOxy

2019/12/10 03:12

+回答が来ているのに、それを実践したかの応答もなしに質問をクローズしている点も低評価の要因と思います。
episteme

2019/12/10 03:16

ただの「バグを見つけました!」なら低評価不可避。
R-ogiura

2019/12/10 03:21

確かに!ですが、原因も書きましたよ!
m.ts10806

2019/12/10 03:21

>回答のアドバイスは実行しました。そして、「自己」解決にいたりました。 そういう問題ではないし、「自己解決」を一度たりとも正しい意味で使っていない。 強調するほど理解しての解決じゃないでしょ。 だから無言で低評価がつくし苦言しか言われないし荒れるんでしょ。
m.ts10806

2019/12/10 03:23

で、私のような自分の都合の悪いコメント全部無視するでしょ。 そりゃこういう対応されて当然じゃないですか。 わざとやってる?自分で自分の首を絞めるような真似して楽しい? 一人でやってくれるかな。コミュニティなんか使わず一人で。
episteme

2019/12/10 03:34 編集

知りたいのは原因じゃない。 デバッガを"どう使って"見つけたか、だ。 でないと質問と整合しない。 ...日本語大丈夫か?
R-ogiura

2019/12/10 03:33

え、、、デバッグは、、、y_waiwaiさんの言った通りにやりました。
m.ts10806

2019/12/10 03:39 編集

インデントという概念はもう頭にないわけですね。 このコードがベストアンサー、解決策であると勘違いして真似する人がいてはあまりに可哀想で全力で避けてほしいので低評価しています(理由のひとつ。あくまでたくさんある理由のひとつ)。 まあスコアマイナスのユーザーで回答にも大量にマイナスついてるのでさすがに誰も参考にはしないでしょうけど、誰にも参考にされない回答がベストアンサーってご自身が他人だったらどう思います?
episteme

2019/12/10 03:40 編集

なら彼の回答にコメントで礼を述べるのが良識/常識だ。自己解決ではない。
m.ts10806

2019/12/10 03:47 編集

それに低評価するならコメントしろとか(チンパン呼ばわりで)煽っといてこの程度のやりとりでは低評価加速するのも当然。 ここは炎上させて楽しむ場所じゃないからね。技術でお互い向上させていくコミュニティだからね。 わざとじゃないなら本気で自身を省みた方がいい。プログラミングとかやってる場合じゃない。
kyoya0819

2019/12/10 03:47 編集

epistemeさんと同理由。
R-ogiura

2019/12/10 03:49 編集

debugを行いましたが、解決した過程では、デバッグだけでは原因はわかりませんでした。 書いたプログラム自体を地道に読み解きやっと原因がわかりました。 何が言いたいかというとdebugは行いました。しかし、それが解決に直接つながったわけではありません。 なので自己解決としました。 なのでいくら低評価を積まれても考えを変えるつもりはありません。 ですが、y_waiwaiさんにはお礼はいいます。
m.ts10806

2019/12/10 03:48

(2回目)「自己解決」を一度たりとも正しい意味で使っていない。
kyoya0819

2019/12/10 03:51

> ですが、y_waiwaiさんにはお礼はいいます。 当たり前、当然。
m.ts10806

2019/12/10 03:52

> ですが、y_waiwaiさんにはお礼はいいます。 回答もらっといてやり方に指摘されまくってるのに上から目線ですか。
kyoya0819

2019/12/10 03:54

R-ogiura てめぇもだよ (まだ怒ってません)
m.ts10806

2019/12/10 03:56

>理由なしに低評価を押すようなチンパンじゃないはずですよね? こんなこと書いといて自分のこと棚にあげすぎでしょ。 実際に日本語おかしいし会話のキャッチボールも成り立ってない。 という状況で、どこに低評価理由を書いてもらえる根拠があると思ってます? だからもともと無言低評価が妥当な存在ということです。 教えてもらえるだけでも感謝しなさい。 この程度察することのできない自分を恥じなさい。
Zuishin

2019/12/10 04:05

これ理由要りますか? 誰が見てもベストアンサーに値しない回答なので書かなくても理由は自明と思いました。 回答無しに自分で(自己で)解決したのではなく、回答に従って解決したわけでしょ? じゃあその回答がベストアンサーじゃないですか。 なんで自分で解決できたみたいな顔するんです? 低評価します。
R-ogiura

2019/12/10 04:25 編集

Zuishinさんならわかってくれると思ったら、ここ読んでくれましたか? >>回答無しに自分で(自己で)解決したのではなく、回答に従って解決したわけでしょ? debugしたけど原因解決には結びすいていないんですよ。下にも書きましたが。 意見を頂けるのはありがたいですが、私の書いた文章も読んでください。 ここには親切な方もいるけど、ここで長年やってるおっさんプログラマーはほんと老害ですね。 っていうか、俺に偏見持ってる奴が多いんだから低評価が付くんだから不公平ですね。 debugを実行しただけで勝手にdebugしただけで解決したと思い込んでいる人が多いのも問題ですね。 >>なんで自分で解決できたみたいな顔するんです? 自分で解決したからです。以下に書いてますよ。 debugを行いましたが、解決した過程では、デバッグだけでは原因はわかりませんでした。 書いたプログラム自体を地道に読み解きやっと原因がわかりました。 何が言いたいかというとdebugは行いました。しかし、それが解決に直接つながったわけではありません。 なので自己解決としました。
m.ts10806

2019/12/10 04:24

(3回目) 「自己解決」を一度たりとも正しい意味で使っていない。
Zuishin

2019/12/10 04:27

> debugしたところ、値が変わっていないのでプログラム自体に問題があると考え、 debug により問題の切り分けができています。
episteme

2019/12/10 04:32 編集

質問内容に従うなら、デバッガの使い方がわかった時点で「解決」している。バグを見つけた云々はいわば後日談。
fana

2019/12/10 04:33

> ブレークポイントをどのように利用することで今回の問題が解決するのか という話がこの質問の内容になっている. であれば,「この質問の解決」というのは「ブレークポイントをこんな感じで使っていくことで●●だということがわかり,その結果としてどうのこうので… 最終的にプログラムの間違いがこういうことだとわかったのであった」という話になる必要がある. つまり,「あなたのプログラムが抱えていた何らかの問題が解決した」ことと「この質問の解決」とはイコールではない,ということだろう. ブレークポイントを使うことがあなたのプログラムの問題解決に繋がらなかったのであれば,「この質問は」解決していないということになる…んじゃないかな.
R-ogiura

2019/12/10 04:36

内容をもう一度お読みください。 「ブレークポイントをどのように利用することで今回の問題が解決する」 今回の問題が解決するという点に関しては、デバッグでは解決できていませんよね? その後、地道に読み直して間違いを見つけたので自己解決にしたのです。
R-ogiura

2019/12/10 04:49 編集

fanaさん、ありがとうございます。質問内容を正しく理解して下さる方がいて良かったです。 きっと低評価を押した人たちは老人特有のプライドゆえに自分の意見が訂正できないのでしょう。
Zuishin

2019/12/10 04:50

デバッグの方法を尋ねる質問でそれを尋ねた。回答があったのでそれを参考にデバッグしてみた。すると、自分の思っていたところにバグは無かったので別の方法を採用した。 これは、デバッグが役に立たなかったのではありません。デバッグの成果と言います。 まあプログラマーが全員老害なら、プログラマーのいないところで尋ねたらいいんじゃないですかね。自己解決できるんだから。
BluOxy

2019/12/10 04:51

えっと、fanaさんは、この回答は質問に対する解決になっていないということを言っているのではないでしょうか。
Zuishin

2019/12/10 04:52

fana さんは、「carnage0216 さんの主張の通りに読むと」「解決していない」と書いています。 解決していないなら自己解決はおかしいでしょう。
R-ogiura

2019/12/10 04:58 編集

デバッグが役に立たなかったとは一言も言っていません。解決にデバッグの作業が解決に結びつかなかっただけです。 はい、デバッグを使っての解決はしていません。それは正しいです。なのでデバッグ以外の方法で解決したので自己解決にしたのです。
simapiko

2019/12/10 04:57

>「ブレークポイントをどのように利用することで今回の問題が解決する」 > 今回の問題が解決するという点に関しては、デバッグでは解決できていませんよね? であれば、未解決なはずですがなぜ解決済みなのでしょうか。ブレークポイントの使い方が分からなかったと解釈しますが、違うのであれば使った結果何を得て、なぜ駄目だったのかを記載するべきですが、どうでしょうか。
BluOxy

2019/12/10 04:57

【質問】ブレークポイントをどのように利用することで今回の問題が解決するのか? 【回答】地道に読み直して間違いを見つけた これは質疑応答になっていません。 同じように、 【質問】Googleマップをどのように利用することで、目的地に到着できるのか? 【回答】人に尋ねて目的地に辿り着いた これも質疑応答になっていません。 質疑応答が成立していないことが恐らく最も低評価を入れられた原因です。 また、コメントで、改めて下記のことが分かりました。 【質問】ブレークポイントをどのように利用することで今回の問題が解決するのか? 【回答】ブレークポイントを使ったデバッグでは解決ができなかったので、地道に読み直して間違いを見つけた ここには、「なぜ解決ができなかったのか」が書かれてありません。 「解決できないことが分かった」というのを大多数が納得できる理由を付けての自己回答なら良いと思いますが、私はデバッグで解決できた問題だと思うので、低評価しました。
R-ogiura

2019/12/10 05:07 編集

では、仮に自己解決が今回の質問にふさわしくないならば、「デバッグ」で解決できていないので ベストアンサーはつけなくていいのですか?(自己解決も外す) そうならば、自己解決は外します。そうしたらみなさんが押した低評価も外してくださいね。 debugで解決できなかったのは理由は、構文自体が間違っていたためdebugしても原因がわかりませんでした。(debugが正しく使えていなかったこともあるかもしれません。) 何にしてもdebugを使っての解決ではないという事ならば、自己解決は外します。 外した場合には低評価の存在理由はないので、低評価を外してください。
m.ts10806

2019/12/10 05:04

質問者に問います。 「デバッグとは?」 理解できている内容でお答えください。 間違いなく多くの指摘が入りますが、それにより正しく理解できるなら成長に繋がるので指摘は正面から受けるべきです。 無視することでこれまで通りどんどん糾弾が進みます。自分が嫌っている領域に自分から踏み入れてるだけなんですよ。
m.ts10806

2019/12/10 05:07

>そうしたらみなさんが押した低評価も外してくださいね。 すでに指摘されている通り、誰もが納得できる回答になるなら外れることもあるでしょう。 自身を高く見積もりすぎです。 自己解決をしたことだけが低評価の理由と思っている限り、むしろ低評価は加速するでしょうね。 というか、低評価されるのが嫌なら来なきゃいい。 もうすでに何かしら投稿するだけで糾弾される存在というのを認めてください。
simapiko

2019/12/10 05:14 編集

低評価がついている原因はBAだけでは無く質問に沿った回答ではないというのが大きいかと思います。 質問は「ブレークポイントを利用したエラーの解決法」であって回答は「コードを読み返してエラーを解決」とブレークポイントについて言及されてない間違った回答と判断されたのが原因です。 ブレークポイントを実際に使ったのであれば、どのように使ったのか、使った結果何を得たのが、なぜ駄目だと判断したのかを追記すれば低評価は外れるのではないでしょうか(他の方は分かりませんが)。 使い方が分からなかったのであれば、回答者と応答しブレークポイントの使い方を理解し解決に導いてください。未解決のまま放置するのはマナー違反です。それが気に食わないのであればこのサイトを利用するべきではないです。
fana

2019/12/10 05:14

ブレークポイントを利用したデバッグ ⊂ デバッグ 本件の話題は特に左側の内容に絞られているから,ブレークポイント絡みの話が欲しくなるわけですね. とりあえず現在までにプログラムの抱えていた問題の解決にブレークポイントが{あまり,ほぼ,まるで}貢献していないのだとしても,それは仕方ないわけですが, 原因が判明した後ならば「そういう原因だったならば,こういう形にブレークポイントを利用していれば,もっと簡単に原因を見つけられたよね」みたいな振り返り的な話もできるわけで,そういうのあれが良いのではないかな.(実際にそんな話ができるか状態なのかどうかは不明……^^)
m.ts10806

2019/12/10 05:18

>低評価の存在理由はないので 既に自身が思っている以外の低評価理由がコメントついてるのになぜ「ない」と言い切れますか? 自分で低評価理由書けって煽っといて読まずに言い切るってどういう神経されてますか? 低評価もっとくれって言ってるようなもんですね。 というか「低評価の存在理由」はシステム上の都合なので1ユーザーの1投稿レベルで語れるものではありません。 そりゃ「日本語大丈夫?」って心配されますよ。
R-ogiura

2019/12/10 05:33 編集

fanaさん、ブレークポイントで原因が見つけられなくてすいません。 とりあえず、ブレークポイントでの解決方が見つかるまでは自己解決で原因の解明だけは載せておきますね。 fanaさんみたいな客観的に指摘や意見を言って下さる方が増えて頂けると良いのですがね。
m.ts10806

2019/12/10 05:25

(4回目) 「自己解決」を一度たりとも正しい意味で使っていない。
episteme

2019/12/10 05:25

いや人様をチンパン呼ばわりした時点で低評価は外れんだろ。
m.ts10806

2019/12/10 05:28

質問で他人におんぶにだっこレベルで頼っといてほとんど理解してないのに自分だけで解決しました!っておかしいよね。 それなら質問して回答つく前に自分で回答書きなよ。それでも低評価は免れないだろうけど。 低評価が嫌ならプログラミング止めた方がいい。他人の指摘を受け入れられないならコミュニティを利用するべきではない。
BluOxy

2019/12/10 05:33

その人たちをチンパン呼ばわりしているのも低評価の原因でしょう。
m.ts10806

2019/12/10 05:33

epistemeさん そこだけ頑なに消さないし、消したとて履歴に残りますからね。 一般ユーザーからは履歴が確認できないコメントは編集しまくりですし。 現にコメントも相当数削除されていて相応に通報されているのがわかる(私のコメントも消えてますが、まあ複数アカウント動員すれば複数通報できますから、規約違反を謳歌しているということでさらにヘイトを招くわけですけど)
fana

2019/12/10 05:34

(うまい着地点が見つかると良いですね.ご武運を.)
kyoya0819

2019/12/10 05:41

BluOxyさんの13:57の例えわかりやすいですね。 つか読まねぇなら「低評価を押した(凄腕?の)プログラマーの方、押すのは結構ですけど、せめて理由くらい書いてください。」言うな
episteme

2019/12/10 06:38 編集

少しは実のあること書いておく。 件の不具合(に限って)はデバッガの使い方次第で検出できる。break-pointを然るべき数カ所に貼って実行すれば程なく見つかる類と確信する。現象が明らかであり、それが「どこで」起きているかを探るのだから。 # 相応の観察力と推理力は不可欠だが
m.ts10806

2019/12/10 06:20

というかデバッグしたのかすら怪しいですね。 言うだけなら誰でもできる。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問