摘要:
identifier C++的前端对identifier做了扩展,在每个identifier中还包含了两个cxx_binding字段:namespace_bindings和bindings。当通过字符串找到一个identifier的时候,同时顺带获得了两个binding信息。 /* Language 阅读全文
摘要:
问题 众所周知,程序员大部分时间并不是在写代码而是在浏览和调试代码。对于一个大型项目,或者不是很熟悉的模块,浏览代码是通常需要各种跳转。 一个常见的场景时:当通过搜索(例如linux下的grep工具)或者ctag跳转到某个引用的时候,我们可能并不知道此时所在何处。比方说,是在哪个函数内,是在哪个类内 阅读全文
摘要:
# 问题 在python中,class中函数的定义中有一个特殊的self指针,如果一个函数有一个self参数,通常意味着这是一个非静态函数,也就是调用的时候第一个参数是对象指针,只是这个指针是调用这个函数时由python来自动填充。 ```py tsecer@harry: cat cls_mth.p 阅读全文
摘要:
# 问题 python中的模块主要通过import实现。一个常见的典型场景是在A模块import模块B的func,并调用B模块的func;而B模块的func又引用了所在模块B的gvar变量。这个过程中A其实只import了模块B的func函数,在A模块调用B模块的func时,func函数能不忘初心, 阅读全文
摘要:
# 问题 在开发过程中,可能需要查看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类型,这就意味着可以通过 阅读全文