调试器的原理

转载 2011年01月21日 23:32:00

调试器和被调试程序是通过中断系统来实现的.不过在Windows下,这些工作都不需要你来做了.Windows封装了一套完整的调试接口.
你只要建立一个调试器,用它打开(或建立)一个被调试进程,然后根据调试的目标中所包含的调试信息找出源代码与机器码之间的对映关系.在你要中断的地方加 一个int3指令(并记录下原来的值),这个指令的代码是0xcc,当目标执行到int3时,它就产生了一个中断,这时目标程序停止运行,并将它的运行状 态保存下来,再由操作系统接管.在Windows下,你的调试器就会接收到一个中断消息,并得到目标程序运行的状态(所有的寄存器),你在调试器中把状态 中的IP寄存器的值减1,然后把那个位置的int3指令还原成它原来的值,再返回中断,这时候目标程序就可以继续运行下去.这样就实现了一个 "断点 ".当然,你也可以在目标进行中断的时候修改它的内存空间或着寄存器,这样就可以实现动态修改变量的值.
如果你把跟踪标志设为1,这时候你的系统就进入跟踪状态,每执行一条机器指令就会产生一个中断,当进行中断时,系统会自己保存当时的运行状态,然后全速运 行你的中断代码,在Windows下,你的调试器同样会收到相应的消息,这时你只要对目标做相应的处理就可以实现对目标的跟踪.

一般调试器工作原理

调试器简介 严格的讲,调试器是帮助程序员跟踪,分隔和从软件中移除bug的工具。它帮助程序员更进一步理解程序。一开始,主要是开发人员使用它,后来测试人员,维护人员也开始使用它。 调试器的发展...
  • FENGQIYUNRAN
  • FENGQIYUNRAN
  • 2016年06月11日 12:59
  • 882

Windows用户态调试器原理

Windows用户态调试器原理     Windows操作系统提供了一组API来支持调试器。    这些API可以分为三类:       创建调试目标的API;       在调试循环中处理调试事件的...
  • ithzhang
  • ithzhang
  • 2013年01月29日 08:46
  • 6814

Linux下调试器工作原理

Linux下调试器工作原理之一—基础篇 介绍关于Linux下的调试器实现的主要组成部分——ptrace系统调用。本文中出现的代码都在32位的Ubuntu系统上开发。请注意,这里出现的代码是同...
  • yuyin86
  • yuyin86
  • 2014年01月27日 14:19
  • 1252

嵌入式调试器原理和各类调试器集锦

嵌入式调试器原理和各类调试器集锦,值得收藏!
  • yueqian_scut
  • yueqian_scut
  • 2016年09月04日 16:02
  • 2306

Windows内核调试器 - 简介

转自 : 点击打开链接 Windows内核调试器 - 原理 WinDbg          WinDBG和用户调试器一点很大不同是内核调试器在一台机器上启动,通过串口调试另一个相联...
  • allenwangdiy
  • allenwangdiy
  • 2016年03月24日 20:27
  • 470

调试器原理

文章出处:http://www.limodev.cn/blog 作者联系方式:李先静   知其然也知其所以然,是我们《大内高手》系列一贯做法,本文亦是如此。这里我不打算讲解如何使用boundsche...
  • ly402609921
  • ly402609921
  • 2010年06月30日 22:36
  • 492

gdb调试器的原理

上次实习生面试问道GDB的问题,现在来总结下。 当运行gdb,接着通过命令行去run一个程序的时候,gdb会执行如下几个操作: ①    通过fork()系统调用创建一个新的进程,一开始是gdb的...
  • heiworld
  • heiworld
  • 2014年04月18日 21:42
  • 2336

调试器原理之ptrace调用学习

其实很早以前就对调试器技术感兴趣了。以前玩板子的时候用了JTAG,当时我觉得这东西好神奇。前面我下载了一份GDB源码,可惜弄了几天都没有看出门道。昨天瞄了一眼《开源应用程序架构》,不出意外的看到了GD...
  • cqu20093154
  • cqu20093154
  • 2014年11月26日 16:24
  • 963

自己动手实现Lua调试器

这段时间在qnode项目中新增了一个叫ldb的子项目,它的作用是使用C语言实现了一个lua调试器,后面将会在qnode中嵌入对调试lua脚本的支持。 先来简单提一下ldb的用法,在ldb目录的子...
  • judyge
  • judyge
  • 2014年11月20日 02:44
  • 799

Windows用户态调试器原理

Windows操作系统提供了一组API来支持调试器。     这些API可以分为三类:     创建调试目标的API;     在调试循环中处理调试事件的API.     查看和修改调试目标的...
  • yuanweihuayan
  • yuanweihuayan
  • 2014年01月27日 15:14
  • 758
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:调试器的原理
举报原因:
原因补充:

(最多只允许输入30个字)