在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>>

目录
相关文章
|
3月前
|
NoSQL
GDB调试学习(二):断点
GDB调试学习(二):断点
37 0
|
3月前
|
NoSQL Shell C语言
GDB调试学习(一):单步执行和跟踪函数调用
GDB调试学习(一):单步执行和跟踪函数调用
46 1
|
存储 Java .NET
Windbg程序调试--转载
WinDbg是微软发布的一款相当优秀的源码级(source-level)调试工具,可以用于Kernel模式调试和用户模式调试,还可以调试Dump文件。 WinDbg是微软很重要的诊断调试工具: 可以查看源代码、设置断点、查看变量, 查看调用堆栈及内存情况。
2128 0
|
C++ API 数据建模
Windbg查看调用堆栈(k*)
https://www.52pojie.cn/thread-664189-1-1.html       无论是分析程序崩溃原因,还是解决程序hang问题,我们最常查看的就是程序调用堆栈。
1774 0
windbg调试命令
http://www.cnblogs.com/kekec/archive/2012/12/02/2798020.
1136 0
|
NoSQL
gdb常用调试命令以及多线程堆栈的查看
GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。
1478 0
|
NoSQL C语言 Go
gdb调试程序
编写test2.c                     编译成可执行文件 gcc test2.c -g -o test2 gdb test2 进入gdb调试 run命令 run命令格式 run 其中run可以简写成r,gdb中大部分指令可以简写。
985 0