摘要:
linux下C++开发工具: emacs/vim 编辑器 gcc/g++ 编译器 gdb 调试工具 valgrind 内存泄露检查 doxygen 文档组织工具 linux基本命令: 1.windows linux互传文件 rz,sz makefile编写: 首先我们还需要了解一下makefile。 阅读全文
摘要:
ntdll中保存了kernel32函数的指针 阅读全文
摘要:
虚拟内存:将不连续的物理内存抽象化后方便上层使用的内存。 windows虚拟内存分布: 32位cpu: 32bit cpu的寻址空间是0 ~ 4 G(2^32),低2G为用户地址空间(user space),对应r3权限,用户的进程都工作在这个空间;高2G为系统地址空间,对应r0,为所有系统组件,驱 阅读全文
摘要:
dynamic type: 比如 Here k is a reference to an object of type A, but the real type of the referred object, its dynamic type, is B. Here "dynamic" has th 阅读全文
摘要:
thread-safe: 如果一个函数在多线程的条件下仍然保持计算结果和单线程一样,就说明它是线程安全的。 线程安全的函数: 不包含静态数据区的变量,只有堆栈变量; 有静态数据区的变量,然而会加锁; 可重入: 对于单个线程,如果执行到中途,打断了又执行一次,计算结果仍然保持正确,说明这个函数是可重入 阅读全文
摘要:
每个模块都是一个excute,全局变量存放在各自的.data(必包含)段(初始化的数据块,全局数据区,用来存放全局变量和静态变量。) 所以模块之间的全局变量没有联系。 但是,如果模块A导出了变量a,模块b引用:extern a;则b链接阶段会去找这个extern a;在A里面找到,则根据a的lib填 阅读全文
摘要:
https://zhuanlan.zhihu.com/p/20628410 静态对象每个模块一个 如果每个模块调用static instance()实现不了,这样不同模块instance()出来的是不同的实例对象,可以在模块初始化 module_main::init(主模块指针) { 指针->reg 阅读全文
摘要:
微软说:32位的驱动不能运行在64位 64位程序不支持 asm http://www.yiiyee.cn/Blog/asm/ https://www.youtube.com/watch?v=cfN7cCzHrrM 阅读全文
摘要:
文档:https://msdn.microsoft.com/zh-cn/library/windows/hardware/ff554690(v=vs.85).aspx 1.用户模式和内核模式: https://msdn.microsoft.com/zh-cn/library/windows/hard 阅读全文