Windbg的gflags.exe -- Attach调试利器

简介: 有没有碰到过程序启动就因为异常直接crash?有没有碰到程序启动之后什么反应也没有?有没有碰到过程序启动之后去触发另一个进程失败?有没有碰到别人的程序调用了你的代码,出现问题以后,让你来调查,而你只有你的源代码,该怎么办?     碰过这样的问题,应该都会很头疼吧,如何诊断问题呢?最简单的当然是Debug吧,可是当程序没有启动的时候,我们不能Attach to process...因为进程还不存在。

有没有碰到过程序启动就因为异常直接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

目录
相关文章
|
网络协议 PHP
Wireshark常用过滤器表达式汇总
【7月更文挑战第6天】Wireshark 抓包和显示过滤器用于精确定位网络流量。
|
Linux
LINUX使用C调用LMDB的方法
LINUX使用C调用LMDB的方法
387 0
|
运维 监控 安全
SD-WAN异地组网加速:提升企业网络性能的关键
随着企业全球化扩展,异地组网成为重要需求。传统广域网(WAN)存在延迟高、带宽不足等问题,而SD-WAN通过智能流量调度、降低成本、提升安全性和快速部署等优势,成为理想解决方案。本文详细解析SD-WAN在异地组网中的优势、应用场景及最佳实践,帮助企业实现高效跨地域网络连接。
|
数据可视化 C# 容器
WPF 多线程 UI:设计一个异步加载 UI 的容器
原文 WPF 多线程 UI:设计一个异步加载 UI 的容器 对于 WPF 程序,如果你有某一个 UI 控件非常复杂,很有可能会卡住主 UI,给用户软件很卡的感受。但如果此时能有一个加载动画,那么就不会感受到那么卡顿了。
1954 0
|
移动开发 前端开发 JavaScript
移动端H5网页开发常见问题汇总
H5网页开发常见问题汇总
1268 0
|
Java 程序员 API
【深入探究 Qt 线程】一文详细解析Qt线程的内部原理与实现策略
【深入探究 Qt 线程】一文详细解析Qt线程的内部原理与实现策略
1378 0
|
运维 监控 网络协议
|
数据库 Java 负载均衡
无状态服务(stateless service)
一、定义 无状态服务(stateless service)对单次请求的处理,不依赖其他请求,也就是说,处理一次请求所需的全部信息,要么都包含在这个请求里,要么可以从外部获取到(比如说数据库),服务器本身不存储任何信息 有状态服务(stateful service)则相反,它会在自身保存一些数据,先后的请求是有关联的 二、优劣 有状态服务常常用于实现事务(并不是唯一办法,下文有另外的方案)。举一
18049 0