2011-10-25 107 views
5

我正在基準測試/優化一個緩慢的C++應用程序,並採取了一些stackshots我發現我的應用程序的版本構建使用調試堆,因爲一些堆棧發現蹤跡將表明:Visual Studio 2010上的VC++:使用調試堆發佈版本

ntdll.dll!string "Enabling heap debug options\n"() + 0x11056 bytes 

這是在Windows 7上運行我看到在完全相同的環境,這個問題兩個三個其他投訴網上一個64位應用程序,但沒有任何反應。

有沒有人有線索爲什麼Windows或Visual Studio會使用調試堆發佈構建C++項目?

+0

+1使用堆棧。 –

回答

6

The debug heap is used when a program is run under debugger(配置文件經常表現爲調試器)。爲了繞過它,程序應該在沒有調試的情況下啓動,然後調試器應該連接到正在運行的進程。

+0

謝謝。我不知道我從來不知道這一點,雖然我承認我沒有看到強制發佈應用程序使用調試堆的好處 - 不是儘可能模仿真實世界的發佈點情景!? –

+0

@Mahmoud Al-Qudsi:這件事實際上並不那麼出名,我也很驚訝地知道它。那麼,調試堆有助於調試和調試,便於調試,所以我想他們決定將它組合起來。此外,它不是由Visual Studio或類似的東西完成的 - 它是由Windows完成的。 – sharptooth

相關問題