zoukankan      html  css  js  c++  java
  • Windbg的gflags.exe -- Attach调试利器

    有没有碰到过程序启动就因为异常直接crash?有没有碰到程序启动之后什么反应也没有?有没有碰到过程序启动之后去触发另一个进程失败?有没有碰到别人的程序调用了你的代码,出现问题以后,让你来调查,而你只有你的源代码,该怎么办?

        碰过这样的问题,应该都会很头疼吧,如何诊断问题呢?最简单的当然是Debug吧,可是当程序没有启动的时候,我们不能Attach to process...因为进程还不存在。但如果等启动程序再Attach,启动时的代码段早就过了。

        当然你还有一种选择,就是写Log,但是Log的信息都是有限的,而且没有单步调试,很难跟踪到错误的原因。

        所以,对我们程序员来说,最简单当然是Debug。该怎么办呢?我们需要就是gflags.exe。该怎么用呢?

    1. 首先你需要安装Debugging Tools for Windows (http://msdn.microsoft.com/en-us/windows/hardware/gg463009)。里面有大名鼎鼎的Windbg哦,不过今天要用的是其中的gflag.exe。
    2. 双击打开gflags.exe,选择Image File标签。
    3. 在Image栏里输入你希望调试的程序名。比如,mstest.exe。(按Tab)
    4. 勾选Debugger并输入vsjitdebugger.exe。
    5. 点击OK或者Apply。

    gflats setting

    • 再次启动你的程序吧,这时候就可以看到VS Debugger的调试选框。
    • 勾选“Manually choose the debugging engines”选框。
    • 并选择打开你的代码的VS。

    VS Debugger

    • 选择你的Debugger engine吧,如果你是.net 4.0的代码,那么就选择Managed (v4.0)。

    Debugger engine

    • 终于,你的VS已经可以Attach到该启动程序中了。

        尝试下gflags.exe的威力吧,真的很好用,帮我解决了很多问题。强力推荐。

    from:http://blog.csdn.net/lunasea0_0/article/details/6292968

  • 相关阅读:
    Typescript和React结合项目初始化
    React 和 TypeScript 如何一起使用
    Cesium取代leaflet,和Vue等前端框架结合
    cesium之3dtiles的制作问题
    Cesium-3dTiles格式详解
    TIN和等高线的关系
    CAD如何生成等高线
    Cesium风场
    cesium加载等高线
    DEM坡度和坡向分析
  • 原文地址:https://www.cnblogs.com/lidabo/p/3706659.html
Copyright © 2011-2022 走看看