为什么windbg title会与childebp和args对齐

时间:2017-03-23 15:02:20

标签: windbg

我知道这听起来很挑剔,但我想知道这些语义是否有原因。

对我而言,Child意味着它将传递给它将要调用的函数,但是如果你打破函数名,那么给定的记录将已经存在并且不会改变。该记录显示了该功能从其父级接收的内容。

让我们说,我打破了wmain并走了几行。 windbg将报告:

 # ChildEBP RetAddr  Args to Child              
00 005dfeb8 009e138b 00000001 00ac9bc0 00acfac8 ASMTests!wmain+0x19 

现在这些价值观不会改变。 当我进入下一个函数DoBuf0时,它们不会改变,因此它们实际上并不是孩子的args,它们是从父级接收的args。 例如: 我的wmain传递“buf0”作为DoBuf0的第二个参数

 # ChildEBP RetAddr  Args to Child              
00 005dfe0c 009e1131 005dfe34 009e218c 005dfe74 ASMTests!DoBuf0
01 005dfeb8 009e138b 00000001 00ac9bc0 00acfac8 ASMTests!wmain+0x91

0:000:x86> da 009e218c 
009e218c  "buf0"

它们是父(wmain)传递给子(DoBuf0)的args,但它们不显示在Parent行上,它们显示在childs上。从父母那里称他们为Args会不会更有意义?在上面的案例中,args to Child暗示DoBuf0会将它们传递给ITs孩子。

由于

1 个答案:

答案 0 :(得分:0)

  

对我来说,孩子意味着那些将传递给功能的东西   是即将通话

该窗口如何显示尚未发生的事情?您是否希望进行某种投机执行模拟? “孩子”是被调用的东西,该调用已将证据数据保留在堆栈中。

从WinDbg帮助中引用

  

原始参数显示传递给   功能。在基于x86的处理器上,此显示包括第一个   传递给函数的三个参数(“ Args to Child”)。

     

地址显示与框架相关的各种地址。在基于x86的计算机上   处理器,此显示包括堆栈帧的基本指针   (“ ChildEBP”)和返回地址(“ RetAddr”)。