前言
Redis是用C语言开发的,但并没有直接使用C语言数组去表示字符串,而是使用简单动态字符串(Simple dynamic String,简称SDS)作为字符串的底层实现。
以下给出SDS相关的一些常见问题,通过源码分析和实际验证,思考这些问题的答案,了解实现原理和设计思路。
ARMv8 A64汇编中,立即数是如何表示的?不同的指令对于立即数的表示有差异吗?
在Stackoverflow上发现类似的讨论:https://stackoverflow.com/questions/30904718/range-of-immediate-values-in-armv8-a64-assembly
GDB不仅可以用来调试程序,还可以直接修改被调试程序的二进制文件。这种方式相比于改源码重新编译、gdb attach
有什么优势呢?考虑以下企业生产环境中的几个调试场景:
以下举一个简单的例子,介绍GDB修改程序二进制文件的技巧: