摘要:
Chromium各版本可能有差异,我的版本是chromium.r197479,2013/08前后下载的source code.Visual Studio Ultimate版本有工具可以自动生成项目依赖关系图,可惜我只有2010 express以及2012 professional...所以我就手动来绘制项目依赖关系吧,(726个项目)哭...每个.vcxproj文件都有类似下面的item,描述所依赖的其他工程. {41244340-17E7-F642-C42E-CC987B190D2C} false chrome.exe:Include="packed_extra_... 阅读全文
摘要:
基本规则:只有debug mode enable的机器,产生的dump file才会保存dbgprint的buffer。默认!dbgprint的buffer size是4k.增加buffer size:...\Windows Kits\8.1\Debuggers\x86\kdbgctrl.exe比如设成 1M大小,kdbgctrl.exe -sdb 0x100000设置每次重启之后都会失效,所以重启后都需要敲这个命令.Take care:当我把buffer设置成0x100000(1M)之后,!dbgprint却只能显示20KB左右的ascii的打印.这应该是!dbgprint的bug,剩余的部 阅读全文
摘要:
1.创建PDE,page directory entry,用来存放virtual memory physical memory之间的映射关系2.创建virtual memory跟可执行文件(.exe,.dll...)之间的映射关系,缺页的时候需要从文件里那数据放到内存里的3.对CPU的PC寄存器设置为可执行文件入口地址这样就ok了,后续用到什么memory,MMU会分配/释放相应的物理内存,并填写PTE(page directory entry).装载过程中一个重要的步骤是配置IAT(Import Address Table).PE文件Optional Header中有两个Directory. 阅读全文
摘要:
在\src\build\Debug\locales\目录下存放着各国语言所需要的资源文件xx.pak,我这边共有53中语言支持。命令行进入src\build\Debug目录,敲:chrome.exe --lang=zh-CN就能用中文简体,zh-CN可以根据需要换成各种语言版本。Chrome的整个solution中,每种语言都会有个相应的工程文件,如src\chrome_frame\locales\zh-CN.vcxproj整个工程只有一个.rc文件,貌似还是grit用对应的.xtb文件生成的(src\chrome\app\resources\generated_resources_zh-CN 阅读全文
摘要:
.grp: Generate your project。是由Json(JavaScript Object Notation)(or Python?)来解析,根据环境(OS,Compiler..)来生成相应Project的配置文件。对于工程生成之后,其实就可以忽略这些.grp文件了。.grd —————> .rc ———> .dll.grd:负责存放 chromium 字面用到的英文字符串,以及图片路径 和html 路径。标签,定义会输出的文件。当然还有各种tag…给图片定义一个idr:.xtb:解析.grd文件,翻译生成对应的.rc文件。在其中定义好项目中所需使用的id与对应的值。 阅读全文
摘要:
之前一些文章本来是草稿状态,一次性全release出来了,排版上可能看上去不太舒服,等哪一天研究下改改排版。Here继续chromium的UI,看看,浏览器的外壳是怎么被画出来的:)可以先关注下几个project:chromium\src\chrome_frame\locales\th.vcxprojchromium\src\chrome\theme_resources.vcxprojchromium\src\chrome\theme_resources_gen.vcxprojTBD 阅读全文
摘要:
union跟位域都可以节省内存,而且union在某些地方还能起到更好看的效果?比如:struct Matrix{ union { struct { float _f11, _f12, _f13, _f21, _f22, _f23, _f31, _f32, _f33; }; float f[3][3]; }_matrix;};struct Matrix m;这个union表示一个3x3的矩阵,直接用m._matrix._f11就能访问矩阵的1,1元素。这样是不是看上去好看点?不觉得好看?好吧,... 阅读全文
摘要:
做了张很丑陋的图,估计还不准确...先凑合看吧~ 阅读全文
摘要:
achieve structure from a simple address Dt addressknow pending IRP in a module!thread xxxxxx到底能提供哪些Information:3: kd> !threadTHREAD ffffe0000341f040 Cid 0004.0590 Teb: 0000000000000000 Win32Thread: 0000000000000000 RUNNING on processor 3IRP List: ffffe00002dadb10: (0006,03a0) Flags: 00060000 ... 阅读全文
摘要:
1.push parameter,%rdi,%rsi,%rdx,%rcx,%r8,%r9 用作函数参数,依次对应第1参数,第2参数。。。2. push return address3. push ebp,(current stack frame's base pointer)jump to the caller.4. push local variable.5. sub esp to pre-allocate stack resource instead of push later.其实stack frame上不止存放parameter->return address->e 阅读全文