zoukankan      html  css  js  c++  java
  • 使用Windbg知道程序运行时的命令行参数.

    如何才能一个程序运行时的command line arguments是什么?其实这个信息被记录在了进程的process environment block中,我们可以用Windbg很方便的找出这个信息。

    比如说,我在cmd上打开一个notepad, 如下

    clip_image001

    当notepad运行起来以后,使用windbg attach到notepad, 然后使用命令!peb打印出process environment block. 要注意symbol path要正确。

    然后就能看到下面这些信息了。

    clip_image002

    我们能知道CommandLine了,也能知道DllPath和Environment了.

    那么有时候这个程序运行的太快了,还来不及attach就跑完了怎么办?

    没关系,我们可以设置notepad.exe一运行就被windbg断下来。这要用到windbg下的另外一个非常有用的工具了,gflags.exe. 按如下图设置notepad.exe

    clip_image003

    其效果是在注册表中添加了下面一些信息:

    clip_image004

    现在只要notepad以运行,首先就会被windbg断下来了。

    总结,其实也不一定使用Windbg,使用VS的debugger也是可以的,原理一样,就不详述了。

    另外,使用Process Monitor来得到程序运行参数更方便

    最后嘛,惯例是要配图的。不过最近手上没有好图,下次吧。

  • 相关阅读:
    追随我心
    开心孕期创业经验和教训总结
    记和老友李吃饭
    如何理解hashCode的作用:
    周计划(2014.08.05~2014.08.10)
    个人职业提升内容
    个人职业发展分析和实现方法
    go 实现的排序算法
    xxx go内置函数
    6.并发
  • 原文地址:https://www.cnblogs.com/aoaoblogs/p/2169615.html
Copyright © 2011-2022 走看看