Windbg调试栈破坏

 时间:2024-10-27 20:23:25

1、拿到dump文件,输入命令~*kbn,发现异常出现在14号线程,下面是14号线程的调用栈。一般来说,对付“kernel32!UnhandledExceptionFilter+0x1af”的方法是输入命令“.cxr poi(0xXXXXXXXX+4)”,(其中0xXXXXXXXX为第一个参数,即红色标出位置的值)即可看到发生异常前的调用栈。但是在本实例中这个值为0x00000000,是个无效地址,我们已经不能用常规方法看到调用栈了

Windbg调试栈破坏

3、栈的结构,栈是从高地址开始压栈的. 如下图,函数中存在函数调用,首先是Frame1压栈,然后是Frame2压栈.其调用关系是Frame1调用Frame2. 对于参数的压栈windows默认的stdcall,cdell都是从右边参数开始压栈.而delph所试用的passcall是从左开始压栈. 因此,加入存在一个函数fun(int p1, int p2); 其压栈如下图

Windbg调试栈破坏

5、常见的相关问题A、栈溢出:一个线程的内核栈只有12K大小,耗尽了就会溢出,所以开发人员须注意尽量不要在栈上分配超过1K的内存,不能递替调用,但是如果调用太深的话,还是会溢出的。那么如何判断堆栈溢出呢? windbg有一个非常有用的命令kf -n ,其中n是要显示的frame数. 举例

Windbg调试栈破坏Windbg调试栈破坏
  • win7下ping不是内部或外部命令
  • 如何区别网上提供的电影版本
  • 移动营销的十七个技巧
  • 汽车美容包括什么?
  • ubuntu14.04视频裁剪
  • 热门搜索
    三峡旅游 途牛旅游网 丽江旅游景点 成都周边旅游景点大全 邯郸旅游景点 徐州旅游 北京旅游 同程旅游 台湾旅游攻略 江西旅游