调试器

开发一个 Linux 调试器(四):Elves 和 dwarves

今天我们会详细介绍源码级的调试信息,作为本指南后面部分使用它的准备。
2017-07-24
7分钟阅读时长

开发一个 Linux 调试器(三):寄存器和内存

上一篇博文中我们给调试器添加了一个简单的地址断点。这次,我们将添加读写寄存器和内存的功能,这将使我们能够使用我们的程序计数器、观察状态和改变程序的行为。
2017-07-04
6分钟阅读时长

开发一个 Linux 调试器(二):断点

在这篇博客中,我们会学习在 x86 Linux 上断点是如何工作的,以及如何给我们工具添加设置断点的能力。
2017-06-27
5分钟阅读时长

开发一个 Linux 调试器(一):准备环境

尽管调试器已经得到了广泛的使用,却并没有太多的资源告诉你它们的工作原理以及如何开发,尤其是和其它那些比如编译器等工具链技术相比而言。
2017-06-21
5分钟阅读时长

调试器工作原理(三):调试信息

本文将解释调试器是如何在机器码中查找它将 C 语言源代码转换成机器语言代码时所需要的 C 语言函数、变量、与数据。
2017-06-06
10分钟阅读时长

调试器工作原理(二):断点

我将会演示如何在调试器中实现断点。断点是调试的两大利器之一,另一个是可以在被调试进程的内存中检查变量值。
2017-05-29
11分钟阅读时长

调试器工作原理(一):基础篇

我将为大家展示 Linux 中调试器的主要构成模块 - ptrace 系统调用。这篇文章所有代码都是基于 32 位 Ubuntu 操作系统。值得注意的是,尽管这些代码是平台相关的,将它们移植到其它平台应该并不困难。
2017-04-18
8分钟阅读时长