摘要:
一、 clone函数的man手册说明 clone man手册的说明: /* Prototype for the glibc wrapper function */ #include <sched.h> int clone(int (*fn)(void *), void *child_stack, i 阅读全文
摘要:
一、vim对python脚本的支持 vim作为一个开发环境,不仅支持原生的vim脚本,还支持其它的动态脚本语言,例如lua、ruby、perl、python等。这些脚本语言在vim的源代码中都是通过if_XXX型文件实现。具体对于python的支持来说,实现在if_python.h、if_pytho 阅读全文
摘要:
一、submodule功能 有时候,一个项目会引用一些外部模块,特别是一些开源项目之间经常会有依赖(或者被依赖)。svn可以通过external来引用外部库,git则通过submodule实现。但是,git对于submodule的处理比较简单。事实上,git submodule是一个bash脚本文件 阅读全文
摘要:
一、generator 1、generator的类型 在每次调用cmake(可执行文件)的时候,会创建一个对应的cmake(源码中的cmake类)实例,并调用这个它的Run接口。从这个类的定义可以看到,它的成员中只有一个std::unique_ptr<cmGlobalGenerator> Globa 阅读全文
摘要:
一、问题 从python的源代码可以看到,python中有符号表(symtable.c)相关代码。但是作为一种动态语言,它为什么需要符号表呢?猜测可能有下面的原因: 1、词法去重 对于重复出现的变量名,在生成字节码的时候使用相同的字符串。例如x = x + 1x出现了两次,有了符号表,在生成的字节码 阅读全文
摘要:
一、问题 如果我们希望在一个断点的command中再设置一个breakpoint的command,从gdb的文档看,当前是不支持这种功能的,所以此时需要考虑其他的方法。下面是gdb文档说明Any other commands in the command list, after a command 阅读全文
摘要:
一、git内部objects文件的格式 在执行git cat-file命令的时候,可以看到提示文件的类型可以有四种:blob、tree、commit和tag。其中的blob和tree是比较直观的概念,也是比较常用的概念,tag相对更加简单,而这个commit是通常被忽视的一种类型。但是这种类型恰好又 阅读全文
摘要:
一、导航数据的构造 导航数据的主体来自几何图形,但是离线联通就不是来自几何图形,所以要额外处理。从软件实现的角度看,这个额外处理要具有通用性。UE通用是通过INavRelevantInterface和FNavigationRelevantData来实现,两个结构的名字也非常直观,一个是“导航相关接口 阅读全文
摘要:
一、如何展示actor的属性 查看/修改一个对象的时候,我们都是在编辑器中打开地图,然后选中地图中的一个actor,右侧就会自动出现该actor对应的属性列表。下面是一个选中一个Actor对象时创建对应更新属性对象的调用链。可以看到,当选中一个Actor对象时,对于该对象的属性遍历是自动进行。由于U 阅读全文
摘要:
一、命令使用 在gdb中,可以通过info vtbl来查看一个指定对象指针的当前虚函数表信息。这里比较简单的问题是虚函数的位置,但是在多重继承甚至虚继承的情况下这个问题其实也并不简单。另一个基础问题是一个类型的虚函数表的大小。下面是使用gdb的一个例子tsecer@harry: cat gdb.pa 阅读全文