调试技术
他山随悟
这个作者很懒,什么都没留下…
展开
-
vscode调试嵌入式c程序
最近读一份只能运行在嵌入式平台上的三无代码,由于数据结构比较复杂,没办法只能gdb一步步跟着读,gdb一边list、一边print还得一边next,效率很低下。在ubuntu上用过vscode之后,就觉得用vscode调嵌入式c程序应该不错,花了一些时间尝试了一下,果真不是很复杂。原理上主要使用了gdb的远程调试,远程gdb调试时,使用了gdb的mi(machine interface)接口,...原创 2018-07-02 14:28:05 · 10082 阅读 · 1 评论 -
fuse接口用法说明
fuse接口用法说明fuse介绍fuse即Filesystem in Userspace,用户空间文件系统,可以在应用程序中实现文件系统,能够在用户态使用标准的文件操作,如cat、ls、grep、重定向等功能,虽然效率比内核态要低,但胜在方便。很多场景下用起来还是非常方便的。fuse本身是内核提供的一个功能,内核开启fuse支持后,会在/dev目录下,生成fuse设备节点,应用层可以通过该设...原创 2018-09-29 19:00:12 · 20153 阅读 · 3 评论 -
打造嵌入式c调试系统1-什么是调试系统
本系列文章针对嵌入式环境下c语言应用而言的,对其他系统、语言的程序有一定的参考意义,毕竟调试思想应该是相通的。什么是调试系统调试(debug)没有标准的定义,个人的理解是,调试是一种能够快速定位乃至能预防问题发生的技术手段。调试针对的是已发生问题的定位,这一点问题不大,对于预防问题发生有些人可能不赞同,其实,程序能够正常运行,不代表程序没有问题(没有完美的软件),就像人,看起来活蹦乱跳的,但不...原创 2018-10-17 14:55:32 · 761 阅读 · 0 评论 -
打造嵌入式c调试系统2--状态信息实现
本文介绍用户态状态信息的设计方法,用户态不像驱动,驱动加状态信息,可以用proc系统,可以用debugfs,反正就是现成的,用户态目前没有统一的解决方案,要自己设计,本文介绍了一些常用的设计思路,以供参考。状态信息什么是状态信息,直接看两个例子:典型的状态系统是linux的proc(proc是内核态的,本文主要讲的是用户态应用状态信息设计,举这个例子只是外在表现的借鉴),如下:~ # c...原创 2018-10-17 15:02:45 · 311 阅读 · 0 评论