存档

文章标签 ‘gdb’

编译GDB(主要针对LINUX平台)

2011年9月13日 没有评论

在LINUX平台上源码编译GDB

分类: gdb 标签: ,

GDB多线程调试基本命令和实现简介以及一个常见问题的解决

2011年8月31日 没有评论

本文转载自hellogcc
1. GDB多线程调试的基本命令
2. GDB多线程调试的实现思路
3. 嵌入式Linux环境中调试多线程程序的一个常见问题的解决

分类: gdb 标签: , , ,

gdb的 Ctrl+c 怎么让内核给停下来

2011年7月5日 没有评论

收到不少同学发邮件询问gdb的 Ctrl+c 怎么怎么让内核给停下来,这里就写写关于这方面的内容。
目前常用的gdblinux内核的通信是基于串口的kgdboc模块来连接的,所以本文就以串口的kgdboc来讲解。

文章分两个部分来解释这个问题,一部分是gdb端对ctrl+c操作做的一些处理,另外一部分则是内核对停止指令处理。

分类: gdb, kgdb, 深入kgdb 标签: , , ,

gdb的基本工作原理

2011年4月9日 8 条评论

一个非常好的介绍gdb基本工作原理文档,当初就是看了这个PPT才对gdb开始有感觉的。

分类: debugger theory, gdb 标签: , ,

用gdb观察函数调用过程中栈上的那些事儿

2011年1月10日 评论已被关闭

“参数从右到左入栈”,“局部变量在栈上分配空间”,听的耳朵都起茧子了。
最近做项目涉及C和汇编互相调用,写代码的时候才发现没真正弄明白。
自己写了个最简单的函数,用gdb跟踪了调用过程,才多少懂了一点。

分类: gdb 标签: ,

MyGdb(一) — 加载被调试程序

2011年1月6日 没有评论

从调试器的视角来看,正在运行的程序可以分为两类,一类是正常运行的,不受调试器干扰的程序。另一类是处于调试状态的程序,它的每一步运行都在调试器的掌控之下。

让程序处于调试状态大有2种方式,一种是静态加载,即由调试器来启动程序,告知系统,这个程序将要被调试。
第二种是动态加载,即程序正在运行,调试器通过一些系统调用来迫使使得程序处于调试状态。

分类: debugger theory, gdb 标签: ,

Playing with ptrace, Part II — 玩转ptrace(二)

2010年9月7日 1 条评论

在这篇文章中,我们将要研究如何在子进程中设置断点和往运行中的程序里插入代码。实际上调试器就是用这种方法来设置断点和执行调试句柄。与前面一样,这里的所有代码都是针对i386平台的。

分类: debugger theory, gdb 标签: ,

Playing with ptrace, Part I — 玩转ptrace(一)

2010年9月7日 没有评论

你想过怎么实现对系统调用的拦截吗?你尝试过通过改变系统调用的参数来愚弄你的系统kernel吗?你想过调试器是如何使运行中的进程暂停并且控制它吗?
你可能会开始考虑怎么使用复杂的kernel编程来达到目的,那么,你错了。实际上Linux提供了一种优雅的机制来完成这些:ptrace系统函数。 ptrace提供了一种使父进程得以监视和控制其它进程的方式,它还能够改变子进程中的寄存器和内核映像,因而可以实现断点调试和系统调用的跟踪。
使用ptrace,你可以在用户层拦截和修改系统调用(sys call)
在这篇文章中,我们将学习如何拦截一个系统调用,然后修改它的参数。在本文的第二部分我们将学习更先进的技术:设置断点,插入代码到一个正在运行的程序中;我们将潜入到机器内部,偷窥和纂改进程的寄存器和数据段。

分类: debugger theory, gdb 标签: ,

gdb 和 watchpoint

2010年8月14日 8 条评论

watchpoint,顾名思义,其一般用来观察某个变量/内存地址的状态(也可以是表达式),如可以监控该变量/内存值是否被程序读/写情况。
watchpoint可以看成是一种特殊的”断点”, 其实现一般需要CPU支持硬件断点,如果纯软件实现watchpoint,那好像会很耗CPU.(我没去看gdb的软0watchpoint的实现,有时间得去研究下,不过如果让我来实现这个功能(和同事讨论过),应该是设置watchpoint所在的那个页表为不可读/访问,然后在缺页处理那检测当前的页和地址是否是软设置watchpoint所在的页和watchpoint的地址,如果是,则说明可以假设该watchpoint发生了). 目前支持watchpoint硬件断点的arch有x86,ppc和mips。

分类: gdb 标签: ,

GDB十分钟快速入门教程

2010年8月13日 3 条评论

本文转载自liigo’s blog

gdb快速入门教程,本文内容简约而不简单,强烈推荐初学的朋友看看。

分类: gdb 标签: ,