在WinDBG中查看调用栈的命令

简介: 命令==========kk命令显示的是一定数量的栈帧, 其中帧的数量是由.kframes命令来控制的, 默认值是256。 kp 5显示调用栈中前5个函数以及他们的参数. kb 5显示调用栈中前五个函数以及他们的前三个参数.

命令

==========

k

k命令显示的是一定数量的栈帧, 其中帧的数量是由.kframes命令来控制的, 默认值是256。

image

 

kp 5

显示调用栈中前5个函数以及他们的参数.

 

kb 5

显示调用栈中前五个函数以及他们的前三个参数.

 

kf 5

显示在调用栈中五个函数所使用的栈的大小.

每个栈帧所占的空间使用量的计算方法是: 将当前函数的栈基指针与在函数中调用的任何一个函数栈基指针相减.

 

举例:

image

 

手动构造栈的实践- 如何手工构造调用栈

============

首先用几幅图说明一下栈的特点, 帮助大家理解.

 

1. 栈向低地址增长.

2. 向栈中压入数据, 栈中的情况如图.

3. 有函数调用的栈中的情况.

 

注意, 手工构造栈的时候, 我们需要利用的是上面图中显示的一个模式:

在内存中的一系列的值是可以被识别出来的, 这些值表示当前站中的某个地址, 并且在这些值之后是一个可执行的地址.

 

image

 

参考资料:

<<AWD>>

目录
打赏
0
0
0
0
8
分享
相关文章
WINDBG 相关命令
1、基本命令帮助(1)断点指令B[C|D|E] []clear|disable|enable breakpointsBLlist breakpoints BP set soft breakpo...
702 0
Windbg查看调用堆栈(k*)
https://www.52pojie.cn/thread-664189-1-1.html       无论是分析程序崩溃原因,还是解决程序hang问题,我们最常查看的就是程序调用堆栈。
1941 0
利用WinDbg找出程序崩溃的代码行号
之前碰到论坛里有几个好友,说程序不时的崩溃,什么xxoo不能read的! 如果光要是这个内存地址,估计你会疯掉~~所以分享一下基本的调试技巧,需要准备的工具有WinDbg + VC6.0,下面是自己整理的一份自动生成DUMP文件的源代码,只需要添加到工程即可,源代码如下:MiniDump.
1308 0
基于WinDbg的内存泄漏分析
在前面C++中基于Crt的内存泄漏检测一文中提到的方法已经可以解决我们的大部分内存泄露问题了,但是该方法是有前提的,那就是一定要有源代码,而且还只能是Debug版本调试模式下。实际上很多时候我们的程序会用到第三方没有源代码的模块,有些情况下我们甚至怀疑系统模块有内存泄露,但是有没有证据,我们该怎么办? 这时我们就要依靠无所不能的WinDbg了。
1221 0
|
11月前
|
使用backtrace打印程序crash堆栈
使用backtrace打印程序crash堆栈
199 0