デバッガで round 関数にステップインした時に発生していませんか?
round 関数にステップインせず、ステップオーバーすればソースを聞かれることはないと思います。
自分の環境でも試してみましたが、_round.h をシンボルサーバーからも落とせなかったので、公開されていないようです(理由は不明)。
ダイアログをキャンセルして、ステップアウトする(右クリックからソースを開くを呼び、そのままステップオーバーでも次に行くはず)と、デバッグを継続できると思います。
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
初学者です。
OS:Windows11
バージョン:17.11.2
インストール済みワークロード:C++によるデスクトップ開発、C++によるゲーム開発(オプションはなにもいじらず)
ランタイムライブラリを/MD、/MDdから/MT、/MTdにすると、math.hのRoundやSinなどの数学関数を使ったときに、
「ソースファイルの検索:_round.h」というウィンドウが出て、
キャンセルボタンを押すと、「ソースが見つかりません」というタブに、
・_round.hを手動で見つける
・逆アセンブリの表示
・詳細情報
というものが出てしまい、計算されません。
/MD、/MDdだと正常に計算されます。
例えば、Visualstudio2022Communityにて、
新しいプロジェクトの作成→C++コンソールアプリにて新規ソリューションを作成し、
#include <iostream>
#include <math.h>
int main()
{
double i = 0.8;
std::cout << round(i * 11);
}
のプログラムを起動すると、Roundの行で上記症状が出ます。
Visualstudio の修復、再インストールも試しましたが変わりませんでした。
これは何が原因なのでしょうか?
デバッガで round 関数にステップインした時に発生していませんか?
round 関数にステップインせず、ステップオーバーすればソースを聞かれることはないと思います。
自分の環境でも試してみましたが、_round.h をシンボルサーバーからも落とせなかったので、公開されていないようです(理由は不明)。
ダイアログをキャンセルして、ステップアウトする(右クリックからソースを開くを呼び、そのままステップオーバーでも次に行くはず)と、デバッグを継続できると思います。
スクナさん、ご返信いただきありがとうございます。
この問題は、おそらくシンボルファイルに関係していると思われます。
エラーメッセージによると、VSが該当するシンボル (.pdb) ファイルを読み込むか見つけることができなかったため、ウィンドウが表示されたようです。
シンボルに関連するキャッシュやキャッシュファイルを誤って削除したことはありませんか?
たとえば、「デバッグ」>「オプション」>「シンボル」での設定を誤って変更したり、「C:\Users\username\AppData\Local\Temp\SymbolCache
」ディレクトリ内のキャッシュシンボルを削除してしまったりしたこと。
まず、VSを終了し、「Windowsの検索ボックス」で「Developer Command Prompt for VS 2022 Community」を検索して開きます。そして、「devenv /ResetSettings
」コマンドを実行します。続いて、VS 2022が自動的に起動するので、「デバッグ」>「オプション」>「シンボル」に進み、以下のスクリーンショットのように、「Microsoftシンボルサーバー」を選び、「除外されていないすべてのモジュールを読み込む」にチェックを入れて、「OK」をクリックします。最後に、プロジェクトを再度開き、リビルドして実行してください。
役に立った回答には「回答を受け入れる」と「いいね!」を押してください。さらに質問がある場合は、「コメント」を追加してください。注意:Q&Aからメール通知を受け取りたい場合には、ドキュメントの手順に基づき、メール通知を有効にしてください。