首页 > 代码库 > Debugger–veh & she 粗浅一
Debugger–veh & she 粗浅一
(我自己使用的"笨办法", 就是 class point + 手动去除 (set/get这类抽象层次很低的函数 + onWin常见消息) + when hit 这样,
通过debug output, dynamic 输出了 call sequence.
但归根到底, 找到准确无误的 call stack 才是"核心" )
产生这篇文章的缘由是:
1) 调试COM的代码时, 因为引用了一个空指针, 导致抛出了"Read violation"的错误. 但是, exception在break的地方, 却是离最终确定的bug十万八千里.查看堆栈, 发现堆栈被项目的其他组件"影响", 导致混乱不堪.
向前辈请教之后, 得到这样的解法:
1. 确定 exception号: 蓝色框中, 标志处 0xc0000005
2. 打开VS的的"Exception", 如图勾选刚才确认的 exception号:
这样, 当发生exception时, 获得第一手信息的, 不是ntdll, 而是Win Debugger.
粗浅的原理:
1. VEH –> SHE
Debugger(VEH) –> try/catch(SHE) 或 unhandled exception –> ntdll.dll
参考:
1. wikipedia( 提供了很多深入的材料 )
Debugger–veh & she 粗浅一
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。