我知道这听起来很挑剔,但我想知道这些语义是否有原因。
对我而言,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孩子。
由于
答案 0 :(得分:0)
对我来说,孩子意味着那些将传递给功能的东西 是即将通话
该窗口如何显示尚未发生的事情?您是否希望进行某种投机执行模拟? “孩子”是被调用的东西,该调用已将证据数据保留在堆栈中。
从WinDbg帮助中引用
原始参数显示传递给 功能。在基于x86的处理器上,此显示包括第一个 传递给函数的三个参数(“ Args to Child”)。
地址显示与框架相关的各种地址。在基于x86的计算机上 处理器,此显示包括堆栈帧的基本指针 (“ ChildEBP”)和返回地址(“ RetAddr”)。