摘要:
# 问题 在开发过程中,可能需要查看cpp文件生成的汇编代码来确认一些问题。由于单纯的汇编代码看起来并不太容易捋清楚内部逻辑,所以最好能够把源代码的位置列出来。在gdb的早期版本中,这个功能是通过disas命令的/m修饰符(选项)来实现的。 如果使用过这个选项就会发现,这个功能显示的结果使人非常困惑 阅读全文
摘要:
# setup中的header 在header.S结构中定义了一个使用汇编语言定义的hdr结构,这个结构是bootloader和内核setup代码之间通过boot协议约定的: 在哪个位置是什么字段,字段是什么意义都是bootloader和内核达成共识的,我们甚至可以认为:这个协议类似于tcp/ip的 阅读全文
摘要:
# doc Python语言从排版上看强制要求了一些书写规范,算是强制赋予了每个程序员一个"代码洁癖"。作为规范的一部分,可以在在类函数的开始增加注释,并且语言本身为这种注释做了"背书":可以通过help展示这个帮助文档的内容。 这个本来是Python一个很细小的功能,也是一个很有意思的语法糖(因为 阅读全文
摘要:
# key-value database 一直以为"key-value database"是一个很新的概念,但是[维基](https://en.wikipedia.org/wiki/Key%E2%80%93value_database)明确说明了这种概念在很早的Unix系统中就自带了一个基于key- 阅读全文
摘要:
# Config UE的很多配置是通过ini文件实现的,相对于二进制文件来说,ini文件的优点是读取、阅读、修改都非常方便,因为所有的文本编辑器都可以修改。但是UE中的ini文件可谓是眼花缭乱,在Engine、project文件夹下,同样的Engine.ini可能存在baseengine.ini、d 阅读全文
摘要:
# typeof 对于传统的C/C++程序员来说,反射(reflection)始终是一个新奇(extrotic)的存在,而typeof是语言内置的获取一个类型的方法。当然获得一个特定类型的typeof并不特殊,但是这个typeof的返回值是一个Object,并且是一个Type类型,这就意味着可以通过 阅读全文
摘要:
# 入门 初来乍到了解一门新的语言,它可能和熟悉的c/c++有不小差别,整体上需要首先了解下语法文件的整体结构。例如,源文件整体结构如何。 乍看CSharp源文件(compile unit)的结构,[官网](https://learn.microsoft.com/en-us/dotnet/cshar 阅读全文
摘要:
gdb 从git上看到的提交记录,关键的修改是在elf_core_file_matches_executable_p函数中添加的对于build_id的比较。 ///@file: gdb-10.1\bfd\elfcore.h bfd_boolean elf_core_file_matches_exec 阅读全文
摘要:
reference 引用是C++相对于C语言指针引入的一个新语法,可以以简单变量来使用指针。这种语法在使用的时候还是比较方便的,但是也在模板类型推导的过程中也带来了一些需要额外关注的细节。 例子 下面的例子中,rt是一个引用类型,问题是在模板参数函数Harry的定义中,模板参数TSECER并没有包含 阅读全文
摘要:
函数返回 如果一个函数的返回点比较多,而且函数比较长,想通过调试器知道函数从哪个位置退出就会比较麻烦。有些资料说一般编译器的所有return最终会经过同一条ret(机器指令)返回,所以只要找到该指令的位置打断点即可。这个对于没有开优化的指令可能是正确的,开启优化生成的二进制中经常可以看到一个函数内有 阅读全文