zoukankan      html  css  js  c++  java
  • Use UMDH to identify memory leak problem

    We sometimes got memory leak problem, and we need to find the leaked memory, Here is a usful tool from MS, UMDH, it is included in WinDBG install package.

    • It need the PDB files to analyse access the symbol table, then a human readable stack can be generated.
    • You need to generated two set of current used memory, and compare the two to have a result.
    • It compares the current used memory, so you can identify the still-in-use memory, That is the memory you stored somewhere, but they will actually never be used again, and should be released.
    • And of cause, it can identify the memory with out a ptr pointing to when comparing.

    You should let memory leak a little more to get a clear view of the result.

    Here is the steps to use UMDH:
    1. Install Windbg, you can get WinDBG from MS site:http://msdn.microsoft.com/en-us/windows/hardware/hh852365
    2. Open a Dos Prompt as Administrator and navigate to the installation folder of WinDbg
    3. Set Symbol Path as a System Variable

    set _NT_SYMBOL_PATH= SRV*C:websymbols*http://msdl.microsoft.com/download/symbols; c:xosymbol

    4. Download PDB file and copy to the “C:xosymbol” which is set part of above environment variable “_NT_SYMBOL_PATH”
    5. Start collecting stack traces for user-mode allocations, run command:
    gflags /i <Your_process_name.exe> +ust

    6. Restart your process.
    7. Keep it running, wait until it become steady..
    8. Collect a baseline snapshot, run command:
    umdh -pn:<Your_process_name.exe> -f:c:1.log

    9. Wait until the memory usage of your process exceeds 1GB or more.
    10. Generate a new snapshot, run command:
    umdh -pn:<Your_process_name.exe> -f:c:2.log

    11. Compare the two snapshots and get the final report from UMDH
    umdh -d c:1.log c:2.log > c:
    esult12.log

    12. In the result, we can see the stack where the leaked memory is allocated, You got a direct hint to resolve the leak problem.



    And if you need an example, please go to page https://www.hyzblog.com/use-umdh-identify-memory-leak-problem/
  • 相关阅读:
    2020软件工程第三次作业
    2020软件工程作业02
    2020软件工程作业01
    2020软件工程个人作业06——软件工程实践总结作业
    2020软件工程作业05
    2020软件工程作业00——问题清单
    2020软件工程作业04
    2020软件工程作业03
    2020软件工程作业02
    2020软件工程作业01
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/3751459.html
Copyright © 2011-2022 走看看