
软件调试
程序猿成长
这个作者很懒,什么都没留下…
展开
-
Windows调试——基本知识
基本寄存器和反汇编知识 EBP: 扩展基址指针寄存器(extended base pointer) 其内存放一个指针,该指针指向系统栈最上面一个栈帧的底部。 ESP: 栈顶指针,用于指向栈的栈顶(下一个压入栈的活动记录的顶部),而EBP为帧指针,指向当前活动记录的底部。 EIP: 指令寄存器,存放当前指令的下一条指令的地址。CPU该执行哪条指令就是通过IP来指示的。具体代码: 反汇编代码:#原创 2016-02-23 19:01:30 · 725 阅读 · 0 评论 -
Windows调试——死锁的查找
首先看看什么是死锁呢?死锁是指两个或两个以上的线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。 1) 先用!locks查看所有的线程占用的锁 注意,该指令在新版本的windbg中已经无法使用。需要使用的话必须切换版本到dbg_x86_6.10.3.233.msi。 这里可以看到有三个线程正在等待三个锁,第一个线程等待的锁是0043a620转载 2016-02-23 20:07:31 · 3801 阅读 · 0 评论 -
Windows调试——使用windbg查找内存泄露
内存泄露查找方法C++程序员经常不注意内存使用的关闭,虽然此类问题不会导致程序逻辑问题,但随着时间的推移,内存占用量越来越多,最终导致程序崩掉。对服务端的程序,内存泄漏经常是致命的。 对于已经存在内存泄露的程序,可能Windbg查找内存泄露的代码。下面介绍如果通过Windbg查找内存泄露。Windbg 加载程序依赖库所用pdb文件。挂载进程或者加载已生成的pdb文件输入命令查看内存。3.1转载 2016-02-23 20:35:40 · 6132 阅读 · 0 评论