2

Visual C++ 2008/2010 用の Visual Leak Detector を使い始めたところです。

小さなアプリ(割り当てが削除されていないわずか数行)で実行すると、問題なく動作します。

これをより大きなアプリ (wxWidgets アプリ、2 スレッド) で実行したいのですが、

#include <vld.h>

アプリが完全に起動しません。Gui が作成されると循環を開始します。アプリが完全に読み込まれることもありますが、たとえばボタンを押すとスタックします...

一時停止ボタンを押すと、どのコードが処理されているかを確認するために、

スタック: ntdll、カーネル...

誰かが同様の問題に遭遇していますか?

それを機能させる方法はありますか?

4

2 に答える 2

3

Visual Leak Detector を使用すると、アプリの実行が非常に遅くなります。しばらくお待ちください。

単一のバイナリ ファイルを実行していますか?

プログラムが実行時にメインの実行可能ファイルとライブラリに分割されたときに問題が発生しました。

解決策は、どこでも、特に実行可能ファイルに #include を実行することでした。

コードの特定の部分をターゲットにする場合は、VLDDisable と VLDEnable を使用できます。これらはスレッドごとに機能することに注意してください。1 つのスレッドを無効にしても、他のスレッドで行われていることは変更されません。

于 2011-04-20T05:46:27.333 に答える
0

これはこの特定の質問に対する正確な回答ではありませんが、私の問題を解決したので、他の誰かが役立つと思われる場所に文書化したいと思いました.

プログラムをvldとリンクしていて、

fatal error LNK1120: 1 unresolved externals
error LNK2001: unresolved external symbol "__declspec(dllimport) class     VisualLeakDetector vld" (__imp_?vld@@3VVisualLeakDetector@@A)

vld.lib のダンプビンを実行したところ、外部と呼ばれる

      F26 __imp_?g_vld@@3VVisualLeakDetector@@A

「g_」に注意してください

だから私のvld.hをから変更しました

#pragma comment(linker, "/include:__imp_?vld@@3VVisualLeakDetector@@A")
to
#pragma comment(linker, "/include:__imp_?g_vld@@3VVisualLeakDetector@@A")

その後、リンクして問題なく動作しました。

繰り返しますが、Google が vld リンクの問題を抱えている人のためにこの回答を見つけることができることを願っています。

于 2014-05-08T15:43:27.200 に答える