CentOS 5.5 コンピューターで ac プログラムを実行しています。プログラムは、外部ソースから停止するように指示されるまで、何度もテストを実行するループを実行します。
必然的に、テスト システムと通信する PCI カードに古いドライバーを使用しています。CentOS 4.5 から 5.5 にアップグレードしてから、プログラムを 175 回しかループできないことに気付きました。その時点で、プログラムはヒープ メモリの割り当てエラーで停止します。プログラムがループしてシステムがメモリ不足になるたびに、メモリが 10 ~ 20 MB のチャンクで使用されていることがわかります。Cntrl-C を使用してプログラムを終了すると、メモリはすぐに解放されます。
メモリ リークが古いドライバーにあることを示す Valgrind を使用しました。ドライバーを作成した会社は、現在 Windows のみをサポートしており、ドライバーを 5 年以上アップグレードしていません。
ソースコードがなければ、プログラムをループするたびにドライバーが使用するメモリを解放する方法はありますか?
ありがとう。