質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.50%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Visual Studio Code

Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

Q&A

解決済

1回答

1620閲覧

C++ while無限ループ後などにVmmemがCPUやメモリのリソース専有したまま戻らない

mjk

総合スコア303

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Visual Studio Code

Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

0グッド

1クリップ

投稿2022/12/20 03:29

タスクマネージャー画像

経緯

タイトルのとおりなのですが、
C++でwhile無限ループ後などを誤って走らせた時などに、
CPUやメモリのリソース専有したまま戻らなくなってしまいます。
最初にVmmemを発見した時にタスクマネージャーで強制終了すると,
Windows10がブルーバッククラッシュ?して自動で再起動しました。
それ以来PC再起動でしかリセット出来ないので対処方法が知りたいです。

実現したいこと

Vmmemに専有されたままのリソースを何かしらの操作で開放する方法を知りたい。
PC再起動するしか無いとの回答でも諦めがつくので助かります。

試したこと

WSL2 に割り当てるメモリサイズを手動で固定値を設定する方法

こちらの手順でWSL2が使用するメモリ制限をすることを試してみたところ、
Vmmemがリソースを専有したままになりつつもPCフル稼働は収まりました。
しかしFANがフル回転時の6-7割くらいのまま収まらないので結局PCの再起動が必要な状況です。

.qslconfig

[wsl2] memory=10GB swap=0

補足情報(FW/ツールのバージョンなど)

Ubuntu 20.04 LTS
WSL2
VSCode 1.73.1
Windows10 22H2 19045.2251
C++17
g++ 9.4.0
gdb

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

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

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

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

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

Crimson_Tide

2022/12/20 03:36

WSL2でプログラムを実行して無限ループになっているという状況なのですよね?別のWSLターミナルを立ち上げて、当該プロセスを確認してkillすることはできませんか?
mjk

2022/12/20 03:49

WSL2環境もvscodeを使うために手順通りに入れただけなので基礎知識が無くすみません。 kill操作の意味がわからないのですが後ほど調べてみます。 ちなみに、起動中のプログラムのウインドウを全部終了させてもずっとFANが稼働したままです。 vscode閉じるとWSL2も閉じると思ってましたが、もしかして裏で動いてたりしますか? 素人質問ですみません。
mjk

2022/12/20 04:16

kill (pid) で稼働中のプロセスを終了する方法は調べて分かったのですが、 実際に試してみてもプロセスを終了出来ませんでした。 今後無限ループになった時などに試してみたいと思います。
mjk

2022/12/20 04:25

わざとwhile無限ループを作って試したところ、killすることが出来ました。 メモリも開放されました。 回答へ投稿して頂ければそのままベストアンサーにさせて頂きたいのですが、 もしよろしかったら回答お願いします。 不要かしばらく待ってもコメント無ければ、後ほど自己解決扱いでクローズさせて頂きます。 ありがとうございました。
Crimson_Tide

2022/12/20 04:42

解決したのであれば何よりです。自己解決としていただいて結構です。原因と解決した方法の記載をお願いいたします。 ちなみにVSCodeのWSLターミナルで実行したプロセスであれば、VSCodeを終了すればログインプロセス共々終了しそうですが残っていましたか? また、もしプロセス終了で対応できなかったら、コマンドプロンプトなどから[wsl --shutdown]([]は不要)を実行するとWSL(Ubuntu)自体を終了できるので試してみてください。(再度WSLを起動まで10秒ほど待つ必要があります)
mjk

2022/12/20 04:46

>>自己解決としていただいて結構です。 了解です、コメントありがとうございました。 >>VSCodeを終了すればログインプロセス共々終了しそうですが そうなんですよね。vscode終了しても残ってたはずなので何でなのか分からずに質問させて頂きました。 killすることが出来るようになったので不測の事態でも慌てず対処できそうです。
guest

回答1

0

自己解決

自己解決にした理由

コメントでkillコマンドでプロセスを終了させる方法を教えていただいたので概要手順を書いておきます。
実際に無限ループを発生させて試したところ無事終了させてリソース開放も出来ました。
ありがとうございました。

プロセスの終了の仕方 ~ top & kill

1.PIDを調べる
無限ループしてると思われるプログラム名を入力
$ ps ax | grep "a.out"

2.killコマンドで終了させる(終了させたいpidを入力)
$ kill 1234


無限ループ

killコマンド

リソース開放

投稿2022/12/20 04:59

編集2022/12/20 05:24
mjk

総合スコア303

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問