2

ここで、人々がvalgrindを介して最小限のQtプログラムを実行し、結果を投稿するいくつかの質問を読みました。出力を見たときの一般的な判断は、「実際のリークはありません。Qtがメモリを使用する方法です」です。

しかし、私が基本的に空のアプリケーションで得ているものは...もっと悪いように見えます。たとえば、「間違いなく失われた」リークが発生しています。

https://gist.github.com/3204769

==32147== LEAK SUMMARY:
==32147==    definitely lost: 848 bytes in 11 blocks
==32147==    indirectly lost: 1,756 bytes in 53 blocks
==32147==      possibly lost: 1,720 bytes in 9 blocks
==32147==    still reachable: 121,019 bytes in 2,257 blocks
==32147==         suppressed: 0 bytes in 0 blocks

実行:

valgrind --tool = memcheck --leak-check = yes --show-reachable = yes --num-callers = 20 --track-fds = yes ./testing 2> valgrind.log

比較的最近のC++11コンパイルgccを取得するために、私はこのセットアップで少し最先端です。

  • Debian Wheezy 3.2.0-2-686-pae
  • gcc(Debian 4.7.1-2)4.7.1

私がsudo kwrite --version得る場合:

Qt: 4.8.1
KDE Development Platform: 4.8.4 (4.8.4)
KWrite: 4.8.3 (4.8.3)

同様の状況にある人、またはここで何が起こっているのか知っていますか?:-/

4

1 に答える 1

0

most of that stuff seems to be internal 'global' state of the libraries you are using. One can argue if it is good style to cleanup global resources by 'program termination', but it is probably ok if done right. I personally don't like it, as it makes detection of real leaks harder...

于 2012-07-30T09:35:14.180 に答える