使用Windbg知道程序运行时的命令行参数.
如何才能一个程序运行时的command line arguments是什么?其实这个信息被记录在了进程的process environment block中,我们可以用Windbg很方便的找出这个信息。
比如说,我在cmd上打开一个notepad, 如下
当notepad运行起来以后,使用windbg attach到notepad, 然后使用命令!peb打印出process environment block. 要注意symbol path要正确。
然后就能看到下面这些信息了。
我们能知道CommandLine了,也能知道DllPath和Environment了.
那么有时候这个程序运行的太快了,还来不及attach就跑完了怎么办?
没关系,我们可以设置notepad.exe一运行就被windbg断下来。这要用到windbg下的另外一个非常有用的工具了,gflags.exe. 按如下图设置notepad.exe
其效果是在注册表中添加了下面一些信息:
现在只要notepad以运行,首先就会被windbg断下来了。
总结,其实也不一定使用Windbg,使用VS的debugger也是可以的,原理一样,就不详述了。
另外,使用Process Monitor来得到程序运行参数更方便
最后嘛,惯例是要配图的。不过最近手上没有好图,下次吧。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
2010-09-07 [C++]Call virtual member function in constructor or destructor