zoukankan      html  css  js  c++  java
  • delphi代码实现创建dump文件

    I used a "watchdog" thread for this, which checks if the mainform is responding, and make a minidump (you can load this dump with WinDbg, use map2dbg.exe to convert a Delphi .map to a .dbg).

    FMainformHandle := Application.MainForm.Handle;
    Result := SendMessageTimeOut( FMainformHandle, WM_NULL, 0, 0,
    SMTO_NORMAL or SMTO_ABORTIFHUNG,
    C_TIME_OUT_SECONDS * 1000, //wait 1minute
    iRes) <> 0;
    if not Result then
    begin
    hFile := CreateFile(PChar(Result), GENERIC_WRITE, FILE_SHARE_WRITE, nil,
    CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);
    try
    MiniDumpWriteDump(GetCurrentProcess, GetCurrentProcessId, hFile,
    aDumpType, nil, nil ,nil);
    finally
    FileClose(hfile);
    end;
    end;
    But you can also use

    jclDebug.pas:
    JclCreateThreadStackTraceFromID(MainthreadId)
    for this (no need for WinDbg etc, only the JCL + Delphi .map)

    3rd option is to use my new sampling profiler, which has a "process stack viewer", so you can watch the stack of any thread of a running process (I used SysInternals Process Explorer for this before, but it needs .dbg files). It uses .map, TD32, JDBG etc (any Delphi debug info) for stack tracing.
    You can use this when you app hangs, to investigate the stack.

    Windows API (for MiniDumpWriteDump):
    http://sourceforge.net/projects/jedi-apilib/files/JEDI%20Windows%20API/
    WinDbg:
    http://www.microsoft.com/whdc/devtools/debugging/installx86.Mspx
    Map2Dbg:
    http://code.google.com/p/map2dbg/
    JEDI JCL:
    http://jcl.delphi-jedi.org/
    AsmProfiler, samling mode: (still under development!)
    http://asmprofiler.googlecode.com/files/AsmSamplingProfiler0.4.zip

    http://stackoverflow.com/questions/2063655/how-to-debug-hanging-main-thread-in-delphi-application/2070194#2070194

  • 相关阅读:
    vue项目搭建
    轮播 删除中间的还是居中
    随内容增加,背景不设高度自适应,背景图不拉伸和变形
    緢点连接
    左侧背景,右侧数据,根据数据左侧背景自适应
    问题
    手机访问网站,点击手机号码直接拨打电话
    长度超出之后文字变成省略号
    css中vw,vh单位对于UC的兼容性问题
    线性渐变的兼容性写法
  • 原文地址:https://www.cnblogs.com/findumars/p/5671159.html
Copyright © 2011-2022 走看看