トップ回答者
エディットコンティニュー時のエラー表示について

質問
回答
-
VS2008SP1にて、Win32コンソールアプリケーションプロジェクトを新規に作成し、_tmainの先頭でブレークをかけてデバッグ実行をして、ブレークした後に下記のようなコードにしました。
int _tmain(int argc, _TCHAR* argv[])
{
int j = 200, k;
int k;
return 0;
}
kが二重定義になるようにして、F5キーを押すとコンパイルエラーが発生したのでどうするかと問われるダイアログが出ましたので「編集」ボタンを押してIDEに戻ります。
このとき、出力ペインの出力元の表示がビルドのところで「testconsolewin32.cpp(9) : 'k' の宣言を確認してください。」というようにエラーが表示されました。
しかし、次のように、構文をおかしくした場合にはエラーは出力ウィンドウに提示されないようでした。
int _tmain(int argc, _TCHAR* argv[])
{
int j = 200, k;
int l = 12.3;
int m = 1 ? 1 ? 2;
return 0;
}
そこで、Connectサイトを調べてみたところ、USのConnectに不具合が登録されており、"next release"で修正済みとのことでした。
VS2010Beta1での再現テストは行っていませんが、もしかしたら修正されているかもしれません。
https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=334191
VS2008で打つ手はないかと思って、support.microsoft.comで英語で検索したところ、下記のKBがヒットしました。
http://support.microsoft.com/kb/963696/en-us
Hotfixが出ているらしいので、支障があるのであればリクエストしてみると良いかもしれません。
解決した場合は、参考になった返信に「回答としてマーク」のボタンを利用して、回答に設定しましょう(複数に設定できます)。- 回答としてマーク sosu 2009年6月25日 5:28
すべての返信
-
そもそも私はこの機能を全く使わないので言われて初めて確認して見たんですが、
基本的にこの機能ってちょこっと直して様子を見たいが基本だと思うのでエラーの内容表示は無いのではないかと
言う気がします。実際にやってみましたがエラー表示に相当する物は発見できませんでした。
基本的に動作していたものを弄るわけなのでエラーになるとしたら修正を入れた場所限定になるはずで
その場所を見れば、大体わかるでしょと言う事なのではないかと思います。
というかエラーメッセージが出ないと分からないようなエラーが出るような規模の修正を
行う事を想定していないのではないでしょうか。値をちょっと変えて動作を見てみたいとか
そういうレベルの修正であれば、そこまで分かりにくいエラーが出るとは考えにくいですし。
個人的にはちゃんと修正する必要があるのであれば、エディットコンティニューを使うのではなくて
デバッガを止めて修正、リビルドするのが正解ではないかと思います。
解決した時は、参考になったレスポンスの所にある[回答としてマーク]ボタンをクリックしてスレッドを締めましょう。 -
VS2008SP1にて、Win32コンソールアプリケーションプロジェクトを新規に作成し、_tmainの先頭でブレークをかけてデバッグ実行をして、ブレークした後に下記のようなコードにしました。
int _tmain(int argc, _TCHAR* argv[])
{
int j = 200, k;
int k;
return 0;
}
kが二重定義になるようにして、F5キーを押すとコンパイルエラーが発生したのでどうするかと問われるダイアログが出ましたので「編集」ボタンを押してIDEに戻ります。
このとき、出力ペインの出力元の表示がビルドのところで「testconsolewin32.cpp(9) : 'k' の宣言を確認してください。」というようにエラーが表示されました。
しかし、次のように、構文をおかしくした場合にはエラーは出力ウィンドウに提示されないようでした。
int _tmain(int argc, _TCHAR* argv[])
{
int j = 200, k;
int l = 12.3;
int m = 1 ? 1 ? 2;
return 0;
}
そこで、Connectサイトを調べてみたところ、USのConnectに不具合が登録されており、"next release"で修正済みとのことでした。
VS2010Beta1での再現テストは行っていませんが、もしかしたら修正されているかもしれません。
https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=334191
VS2008で打つ手はないかと思って、support.microsoft.comで英語で検索したところ、下記のKBがヒットしました。
http://support.microsoft.com/kb/963696/en-us
Hotfixが出ているらしいので、支障があるのであればリクエストしてみると良いかもしれません。
解決した場合は、参考になった返信に「回答としてマーク」のボタンを利用して、回答に設定しましょう(複数に設定できます)。- 回答としてマーク sosu 2009年6月25日 5:28
-
Hotfixのリクエストはここになるようです。
http://support.microsoft.com/hotfix/KBHotfix.aspx?kbnum=963696
解決した場合は、参考になった返信に「回答としてマーク」のボタンを利用して、回答に設定しましょう(複数に設定できます)。 -
なるほど、バグだったんですね。
こう言うものなのかと思っていました。
エディットコンティニューを多用される方はHotfixをリクエストした方が良いかもしれませんね。
追記:
Hotfixのところを見てみたんですが、リリースがSP1になっているみたいで、SP1なら当てているはずなんだけどと思いました。
このリリースと言うところはそういう意味ではないんでしょうか。
私も直る物なら直したいと思っています。
解決した時は、参考になったレスポンスの所にある[回答としてマーク]ボタンをクリックしてスレッドを締めましょう。- 編集済み PATIO 2009年6月24日 10:02
-
Hotfixのところを見てみたんですが、リリースがSP1になっているみたいで、SP1なら当てているはずなんだけどと思いました。
「リリースがSP1になっているみたい」とはどこの部分からそう読み取ったのでしょうか?
このリリースと言うところはそういう意味ではないんでしょうか。
> Prerequisites
> You must have Microsoft Visual Studio 2008 with Service Pack 1 installed to apply this hotfix.
このHotfixの前提条件として、「Microsoft Visual Studio 2008 Service Pack 1がインストール済みであること」とは明示されています。
ただ、私の環境はVS2008SP1のはずだけど、対象製品が見つからないと言われて進みませんでしたが…。orz
解決した場合は、参考になった返信に「回答としてマーク」のボタンを利用して、回答に設定しましょう(複数に設定できます)。 -
「リリースがSP1になっているみたい」とはどこの部分からそう読み取ったのでしょうか?
リンク先のページ「修正プログラムのダウンロード」で修正プログラムを選択するというリストがありますが、
> Prerequisites
> You must have Microsoft Visual Studio 2008 with Service Pack 1 installed to apply this hotfix.
このHotfixの前提条件として、「Microsoft Visual Studio 2008 Service Pack 1がインストール済みであること」とは明示されています。
ただ、私の環境はVS2008SP1のはずだけど、対象製品が見つからないと言われて進みませんでしたが…。orz
解決した場合は、参考になった返信に「回答としてマーク」のボタンを利用して、回答に設定しましょう(複数に設定できます)。
このリストの項目にリリースと言う項目があったのでこれがこのHotfixがリリースされたタイミングなのかと考えていました。
Hotfixのファイルの取得まではしていないのでその中に書かれている内容に上記の記述があったのであれば、見ていません。
解決した時は、参考になったレスポンスの所にある[回答としてマーク]ボタンをクリックしてスレッドを締めましょう。 -
Hotfixのファイルの取得まではしていないのでその中に書かれている内容に上記の記述があったのであれば、見ていません。
KBに書かれています。(HotfixのリクエストURLを示した投稿の1つ前の投稿です)
http://support.microsoft.com/kb/963696/en-us
修正後のバージョン番号も記載されていますが、VS2008SP1環境よりも新しい番号になっているはずです。
解決した場合は、参考になった返信に「回答としてマーク」のボタンを利用して、回答に設定しましょう(複数に設定できます)。