摘要: 在嵌入式linux平台使用gdb调试进行远程调试需要安装gdbserver,gdbserver工作在目标板上,通过串口或者网线与主机上的gdb互联实现远程调试。 Gdbserver需要根据不同的嵌入式平台来编译生成,首先到http://ftp.gnu.org/gnu/gdb/下载合适的版本。然后在本地进行编译。在Unbuntu下编译gdb需要安装ncurses 库,在redhat上通过yum install “Development tools” 安装依赖就可以了。 首先编译主机端gdb,编译过程如下: 解压源码包: $> tar xzvf gdb 7.3.1.tar.gz 进入... 阅读全文
posted @ 2014-03-23 20:55 KingsLanding 阅读(3207) 评论(0) 推荐(0) 编辑
摘要: 据说再高的高手在写多线程程序的时候都难确保不会产生死锁,死锁的调试也就成为一个比较常见的问题,假设有下面这样一个问题: 一个正在生产环境下运行的进程死锁了,或者你只是在跑一个程序,并没有在调试器里面打开它,然后发现没有响应,日志输出也停止了。由于你是一个有经验的程序员,会想到“我刚刚加上了新的锁策略,不一定稳定,这可能是死锁了“。但是你不想就这么杀掉进程,因为多线程的 bug 不容易重现,遇上一次死锁可能要凭运气,错过了这次,它下次死锁可能会出现在你演示给老板看的时候……怎么办? 对于这样的问题可以借助Core Dump来调试。 什么是Core Dump? Core的意思是内存, ... 阅读全文
posted @ 2014-03-23 12:09 KingsLanding 阅读(12103) 评论(0) 推荐(2) 编辑