问题1:

问:

0  Id: 15f4.e60 Suspend: 1 Teb: 7ffdf000 Unfrozen

 # ChildEBP RetAddr  Args to Child              

00 0012fe80 77d693f3 00456cd8 0012feec 00456cf3 ntdll!KiFastSystemCallRet

*** WARNING: Unable to verify checksum for PlayDemo.exe

*** ERROR: Symbol file could not be found.  Defaulted to export symbols for PlayDemo.exe - 

01 0012fe84 00456cd8 0012feec 00456cf3 0012febc USER32!NtUserWaitMessage+0xc

WARNING: Stack unwind information not available. Following frames may be wrong.

02 0012febc 004561c3 000325ea 00000113 00000001 PlayDemo!PerfgrapFinalize+0x428f8

03 0012fee4 0045644f 0012fef8 00456459 0012ff14 PlayDemo!PerfgrapFinalize+0x41de3

04 0012ff14 00401713 00000000 004c9034 002a2893 PlayDemo!PerfgrapFinalize+0x4206f

05 0012ff50 004c26f7 00400000 00000000 002a2893 PlayDemo!_GetExceptDLLinfo+0x2a6

06 0012ff88 75f51174 7ffd5000 0012ffd4 77c4b3f5 PlayDemo!PerfgrapFinalize+0xae317

07 0012ff94 77c4b3f5 7ffd5000 57cfea49 00000000 kernel32!BaseThreadInitThunk+0xe

08 0012ffd4 77c4b3c8 00401414 7ffd5000 00000000 ntdll!__RtlUserThreadStart+0x70

09 0012ffec 00000000 00401414 7ffd5000 00000000 ntdll!_RtlUserThreadStart+0x1b

问题:标红颜色的那行提示,代表我匹配不到PlayDemo的符号文件,但ntdll的符号文件我是匹配成功的,那么-->是不是我下面绿字的栈信息是不是就不对了呢?(因为PlayDemo的符号不对,栈回溯出现问题)

答案:

因为栈回溯是以递推方式产生的,上面的不对,有可能影响下面的。但这也不是绝对的,WinDBG会使用默认的规则递推寻找,有时是可能跨越模糊区域,进入到有符号的部分继续递推的。比如本例中,根据经验,绿色部分大体是正确的

问题2

问:

系统调用过函数kifastsystemcall后,在栈中会看到函数kifastsystemcallret,我原以为这个函数应包含sysexit指令,没想到却是ret指令。

lkd> u ntdll!kifastsystemcallret

ntdll!KiFastSystemCallRet:

7c92eb94 c3              ret

答案:

这是从内核态回到用户态的着陆点,此时已经回到了用户态,ret是回到用户态的父函数

Windbg 问题集锦记录的更多相关文章

  1. WinDbg 命令集锦

    //断点相关 bp + 地址 设置断点bl  显示已经设定的断点bu + 地址 设置断点,但是这种类型断点再下一次启动时被记录bc 清除断点对于断点范围,可以用*匹配,-表示一个范围,表达多个可用,号 ...

  2. windbg安装pykd记录

    https://githomelab.ru/pykd/pykd 1.安装python   (坑,分x86和x64,对应windbg版本) 2.安装pykd:'pip install pykd' 3.安 ...

  3. win7 x64和win10 x64 windbg 本地调试记录

    今天看CSDN和某文档看了win7 64位 和win10 64位 的windbg本地调试内核的办法 win7 x64 Step1:kdbgctrl –db Step2:kdbgctrl –e Step ...

  4. windbg预览版,windbg preview配置win7x64双机调试

    目录 一丶简介 二丶步骤 1.下载Windbg Preview (windbg预览版本) 2.配置虚拟机端口 3.虚拟机设置调试湍口 4.windbg preview开始调试. 一丶简介 Windbg ...

  5. vue、vuex、iview、vue-router报错集锦与爬坑记录

    1.vue报错: 没安装 less-loader css-loader style-loader      可能的很大原因:没安装less 2.vuex报错:Computed property &qu ...

  6. Windbg Extension NetExt 使用指南 【3】 ---- 挖掘你想要的数据 Managed Heap

    摘要 : NetExt中有两个比较常用的命令可以用来分析heap上面的对象. 一个是!wheap, 另外一个是!windex. !wheap 这个命令可以用于打印出heap structure信息. ...

  7. Mysql 常用 SQL 语句集锦

    Mysql 常用 SQL 语句集锦 基础篇 //查询时间,友好提示 $sql = "select date_format(create_time, '%Y-%m-%d') as day fr ...

  8. UWP学习记录9-设计和UI之控件和模式6

    UWP学习记录9-设计和UI之控件和模式6 1.图形和墨迹 InkCanvas是接收和显示墨迹笔划的控件,是新增的比较复杂的控件,这里先不深入. 而形状(Shape)则是可以显示的各种保留模式图形对象 ...

  9. 记录Office Add-in开发经验

    原创文章转载请注明出处:@协思, http://zeeman.cnblogs.com 得益于微软系强大的共通能力和Visual Studio的开发支持,做Office插件不是什么难事.一点经验记录如下 ...

随机推荐

  1. Elasticsearch 搭建

    最近需要用到Elasticsearch.下面简单介绍下Elasticsearch的搭建过程: ElasticSearch 使用java编写, 所以需要安装 Java 6以上 环境来运行. 并且确保设置 ...

  2. HDU 2167 状压dp方格取数

    题意:给出一个数表,规定取出一个数后周围的八个数都不可取,求可获得的最大数字和 思路:状态压缩dp,每一行的取数方法为状态,显然,由于取数规则的限制,可取的状态并不是 1<<size_co ...

  3. Android笔记之从图库选择图片

    Demo链接:https://pan.baidu.com/s/1T4T2pTEswmbcYYfpN3OwDw,提取码:pzqy 参考链接:[Android Example] Pick Image fr ...

  4. 2018 年 -- 15 个有意思的 JavaScript 和 CSS 库

    在Tutorialzine上你可以了解最新最酷的Web发展趋势.这就是为什么每个月都会发布一些偶然发现并认为值得你关注的最佳资源的缘由. Direction Reveal (方向展示) 该插件检测光标 ...

  5. pointer && reference

    关注点在于区别两者之间的不同. 我们可以从两者使用的场景进行区分: 1, 是否需要存在null的情况: YES-pointer NO-reference 如果确定不会存在null的情况,那么使用ref ...

  6. iOS开发系列-支付宝支付

    概述 开发中支付通常都会集成支付宝支付,下面讲解支付宝的整体流程. 集成支付宝支付的流程 签约 与支付签约,得到获取商户的ID(partner).账户ID(seller).私钥privateKey. ...

  7. List<> ,string[]和string的相互转换

    1.string转换成string[]数组 string str = "aaa,bbb,ccc,dddd"; string[] strs = str.Split(','); 2.s ...

  8. MAMP 安装 php 扩展

    1.官网下载所对应的php 版本http://php.net/get/php-5.3.29.tar.gz/from/a/mirror 2.解压 找到需要的扩展目录 例如我要的是shmopcd ~/Do ...

  9. leetcode-227-基本计算器②

    题目描述: 方法一:中缀转后缀 #!_*_coding:utf-8_*_ class Solution: def calculate(self, s: str) -> int: def in_t ...

  10. OBJC依赖库管理利器cocoapods 安装及使用详细图解

    cocoapods: github:https://github.com/CocoaPods/CocoaPods 官方网站:http://www.cocoapods.org/ 1.安装 RubyGem ...