【问题标题】:WinDBG: Execute du Command on first arg of top stack automaticallyWinDBG:自动在顶部堆栈的第一个 arg 上执行 du 命令
【发布时间】:2023-01-25 22:48:03
【问题描述】:

我在一些源代码上设置了一个断点。 每次触发断点时,我都会执行两个命令:

0:000> kb 1
 # RetAddr               : Args to Child                                                           : Call Site
00 00007ffa`a05db848     : 00007ffa`a061ac98 00007ffa`b3135ba1 000002a8`32f20000 000002a8`32f20000 : KERNELBASE!GetEnvironmentVariableW

选择第一个参数地址00007ffa a061ac98并通过

0:000> du 00007ffa`a061ac98
00007ffa`a061ac98  "InstallRoot"

现在基本上每次都会遇到断点,我总是必须手动运行两个命令和一个地址的手动复制粘贴。

有没有更自动的方法? 我试过 dx 但这对我不起作用,因为我缺少参数

0:000> dx -r3 Debugger.Sessions.First().Processes.First().Threads.First().Stack.Frames[0]
Debugger.Sessions.First().Processes.First().Threads.First().Stack.Frames[0]                 : KERNELBASE!GetEnvironmentVariableW [Switch To]
    LocalVariables   : Unexpected failure to dereference object
    Parameters       : Unexpected failure to dereference object
    Attributes      
        InstructionOffset : 0x7ffab0835240
        ReturnOffset     : 0x7ffaa05db848
        FrameOffset      : 0xce79ffee90
        StackOffset      : 0xce79ffee98
        FuncTableEntry   : 0x0
        Virtual          : 1
        FrameNumber      : 0x0

获取参数也不起作用

0:000> dx -r3 Debugger.Sessions.First().Processes.First().Threads.First().Stack.Frames[0].Parameters
Error: Wrong Parameter. (0x80070057)

关于如何从顶部框架中提取 Arg[0] 并更自动地显示它的提示会很棒!

注意:我基本上想在每次遇到断点时执行此命令。也许有更好的方法。

【问题讨论】:

    标签: windbg


    【解决方案1】:

    找到它:在我的例子中,第一个参数在 ebx 中。所以 du ebx 成功了!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-17
      • 1970-01-01
      相关资源
      最近更新 更多