none
在 Windows Store app 环境下如何发现 C++ 内存泄漏 RRS feed

  • 问题

  • 在 win32 下可以用下面给的语句开启内存泄漏检测,程序退出时泄漏的信息会自动输出到开发环境的 output 窗口中。

    _CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );

    可是在 Windows Store app 的环境下这个方法无效了,
    那么在 Windows Store app 环境下有什么办法可以发现内存泄漏吗?

    2014年11月21日 5:43

答案

  • 你好

    C++程序在商店应用中包了一层CX的外壳,从原理上来说,C++/CX 也是可以被工具定位到的。

    我建议你升级到VS2013版本,现在不是有一个VS2013 Community嘛,我正在用那个,免费的,而且功能强大,VS2013 也是可以写VS2012 的代码,同时用VS2013的话将会有一些新的API可以使用啦。

    --James


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    • 已标记为答案 lihuipeng49 2014年12月5日 13:27
    2014年12月1日 13:05
    版主

全部回复

  • 你好 慧鹏,

    我对 CrtSetDbgFlag 不是很熟悉,不过在Windows Store App 里面一般常用检测内存泄漏的办法是:

    --James


    <THE CONTENT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, WHETHER EXPRESS OR IMPLIED>
    Thanks
    MSDN Community Support

    Please remember to "Mark as Answer" the responses that resolved your issue. It is a common way to recognize those who have helped you, and makes it easier for other visitors to find the resolution later.

    2014年11月24日 2:03
    版主
  • 我的VS版本是2012
    在我的菜单上看到的东西与你的不一样。
    我用 Start Performance Analysis 启动程序后,在结果中没有内存泄露报告。


    2014年11月27日 3:13
  • 内存检测貌似是VS2013自带的新工具。

    在VS2012里面需要用其他工具, 比如: http://blogs.msdn.com/b/webapps/archive/2012/11/23/troubleshooting-memory-leaks-in-windows-store-apps.aspx

    --James


    <font color="0099FF">&lt;THE CONTENT IS PROVIDED &quot;AS IS&quot; WITHOUT WARRANTY OF ANY KIND, WHETHER EXPRESS OR IMPLIED&gt;</font><br/> Thanks<br/> MSDN Community Support<br/> <br/> Please remember to &quot;Mark as Answer&quot; the responses that resolved your issue. It is a common way to recognize those who have helped you, and makes it easier for other visitors to find the resolution later.

    2014年11月27日 9:41
    版主
  • NP 工具里也看不到 C++ 的内存泄露。

    是不是 C++ 的内存泄露在 Windows Store 环境下本来就是无法定位的啊?

    2014年11月28日 8:19
  • 你好

    C++程序在商店应用中包了一层CX的外壳,从原理上来说,C++/CX 也是可以被工具定位到的。

    我建议你升级到VS2013版本,现在不是有一个VS2013 Community嘛,我正在用那个,免费的,而且功能强大,VS2013 也是可以写VS2012 的代码,同时用VS2013的话将会有一些新的API可以使用啦。

    --James


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    • 已标记为答案 lihuipeng49 2014年12月5日 13:27
    2014年12月1日 13:05
    版主
  • 我没换VS2013主要是因为对应的VA没有找到。
    有人知道下载VS2013对应的VA的地址吗?

    2014年12月2日 13:08
  • 你指的是 Visual Assist嘛?这个我不清楚,不过貌似VS2013里面集成了很多新功能,有些可以替代VA,同时Bing有一个VSX的助手貌似也不错。

    关于VS相关的问题,我建议你可以去对应的VS论坛发讨论帖吧。

    --James


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2014年12月3日 5:16
    版主