最新文章

分享一种你可能不知道的bug定位方法
在嵌入式Linux开发中,使用gdb对core文件进行调试是一种有效的定位程序崩溃的方法。这种方法在之前的文章中也有提到过。实际工作中,使用gdb调试core文件可能会面临一些问题。在本文中,我们将分享关于core文件的几点内容,包括core文件是什么、前台进程生成core文件的方法、后台进程生成core文件的方法、以及如何调试core文件。另外,我们还会提到导致崩溃栈信息有限的可能原因。

一个超级实用的单片机调试组件!
DWT 中有剩余的计数器,它们典型地用于程序代码的“性能速写”(profiling)。通过编程它们,就可以让它们在计数器溢出时发出事件(以跟踪数据包的形式)。

例子 | 环形队列来实现串口数据接收
对于从事编程工作的人来说,应该都学过数据结构,并且对队列这个概念有一定的了解。而环形队列是队列的一种特殊形式,它在实际应用中非常广泛。由于关于环形队列的内容已经有很多文章讨论,理论知识可以参考其他人的文章。这里我推荐一篇非常好的文章,名为《STM32进阶之串口环形缓冲区实现》,它详细介绍了如何使用STM32微控制器实现串口的环形缓冲区。

推荐一个资源占用极少的json解析器!
最近我在处理一位离职同事编写的代码,他的代码主要负责与云平台进行交互,并且使用标准的JSON格式进行通信。他采用了cJSON库来解析JSON数据。不幸的是,这位同事在防御性编程方面技术很差,很多地方没有进行必要的内存释放操作,也没有进行指针判空,直接使用了指针。在多线程环境中,这种做法非常危险。因此,当我和另一位同事接手这部分代码后,出现了大量的白屏和卡死等问题。经过一段时间的调试和定位,我们发现这些问题是由于代码编写不严谨所导致的。

实现一个高效率的内存拷贝函数memcpy
其功能是将src开始位置的n个字节数据复制到dest。如果dest中已经存在数据,将被覆盖。memcpy函数的返回值是dest的指针。memcpy函数定义在string.h头文件中。

Linux工作站加固的6个方法
就像我之前所提到的那样,安全就像是在公路上开车 – 比你慢的人都是白痴,比你快的人都是疯子。本文中介绍的准则只是一系列基本的核心安全规则,它们并不能涵盖所有方面,也无法替代经验、谨慎和常识。你需要根据你所在企业的环境稍作调整以适应这些建议。

教你关闭一个不活动的或者空闲的SSH会话
如何终止一个闲置的 SSH 会话?开始,可以利用 w 命令来检测闲置或空闲的 SSH 会话。然后,借助 pstree 命令获取闲置会话的进程 ID(PID)。最后,使用 kill 命令终止该会话。