windbg没有显示调用堆栈源args

时间:2011-10-14 03:15:36

标签: debugging windbg

我在kernel32中设置了一个断点!LoadLibraryExW。在调用窗口中,我有“源args”切换,但调用堆栈仍然没有显示LoadLibraryExW中断时的参数。有没有办法轻松查看参数?

我已将环境变量_NT_SYMBOL_PATH设置为SRV * c:\ symbols * http://msdl.microsoft.com/download/symbols

2 个答案:

答案 0 :(得分:2)

你不能直接匹配函数参数的参数和'Source Args'切换。这些仅适用于私人PDB。 您必须切换'Raw args'并使其与MSDN中的文档一致。 如果需要3个以上的参数,则必须从esp开始查看内存。 32位非常简单,但64位可能会很痛苦,因为参数可能实际上没有写入堆栈(只有寄存器需要被覆盖和恢复时,它们才会被寄存器传递并复制到堆栈中) 。有关更多信息,请参阅http://msdn.microsoft.com/en-us/library/ms235286(v=vs.80).aspx如果您对源代码有控制权,请使用C编译器上的/ homeparams标志进行编译,以确保将参数复制到堆栈中以简化调试。

答案 1 :(得分:0)

在X64中,前四个整数参数分别进入rcx,rdx,r8和r9寄存器。 其余的整数参数都在堆栈上。