暑假参加了编译系统设计赛,受益匪浅。在比赛初期,拖延症严重,同时经常感觉学习资源匮乏,而且也还在摸黑阶段,心理压力下经常就会高估学习的困难,觉得是不可逾越的大山。尤其是编译器后端,这方面相关的学习资源感觉非常匮乏。现在看来,前期确实没能重视一些重要的学习资源,后面走弯路学会了已经晚了。
静态分析学习资源分享
静态分析学习资源分享。
堆复习
堆复习
64位时, 默认开启的fastbin范围(chunk总大小)是0x20 - 0x80 32位TODO
tcache是64个单向链表,最多7个节点(chunk),chunk的大小在32bit上是8到512(8byte递增);在64bits上是16到1024(16bytes递增)。 fastbin只有10个链表, 范围肯定很小, 而和smallbins有62个, 大小基本重合.
当某一个tcache链表满了7个,再有对应的chunk(不属于fastbin的)被free,就直接进入了unsortedbin中。 tcache_perthread_struct结构,一般是在heapbase+0x10(0x8)的位置。对应tcache的数目是char类型。