Linux问题调试
文章平均质量分 93
Linux问题调试
厛,記憶の鍾
这个作者很懒,什么都没留下…
展开
-
Linux问题调试(4)--内存问题与tcmalloc
之前的文章介绍过Asan来定位内存泄漏问题,虽然已经被集成到各大编译器中,但它的使用可能受到特定环境或配置的限制。例如,在某些复杂的系统或应用程序中,ASan可能会因为与程序的交互复杂性而遇到挑战,导致难以准确诊断问题。Linux问题调试(2)--内存问题与asan工具。原创 2024-08-07 10:03:33 · 651 阅读 · 0 评论 -
Linux问题调试(2)--内存问题与asan工具
asan算法的思想是:如果想防住Buffer Overflow泄漏,只需要在每块内存区域右端(或两端,能防overflow和underflow)加一块区域(RedZone),使RedZone的区域的影子内存(Shadow Memory)设置为不可写,如图1所示。3、运行时库run-time library:运行期间,对代码进行修改,主要是修改了malloc和free函数的实现方法,在heap上分配内存时,在应用数据前后创建毒区(poisoned redzones),用于检测heap类型的越界访问的错误。原创 2024-07-19 17:04:12 · 646 阅读 · 0 评论 -
Linux问题调试(3)--调试文件(core、map、Debug)的生成与调试工具(Addr2line、GDB)的使用
Linux平台生成的可执行文件,带有Debug或Release属性。Debug通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员对程序的调试。在Debug环境下,我们可以使用调试技巧,如观察监视、内存、反汇编等等。Release称为发布版本,它往往进行了各种优化,使程序在代码大小和运行速度上都是最优解,便于用户使用。map文件通常由链接器(Linker)生成,在构建过程中,链接器负责将各个编译单元(如.o或.obj文件)组合成一个可执行文件或库。原创 2024-07-28 21:49:04 · 678 阅读 · 0 评论 -
Linux问题调试(1)--CPU问题与火焰图
在开发Linux项目的过程中,会时常出现CPU的高消耗而导致的一些异常问题,例如网络包的频繁收发引起系统阻塞,从而导致软狗超时问题等。本文总结了本人项目开发过程中使用的CPU性能调试方案。原创 2024-07-18 15:05:01 · 1110 阅读 · 0 评论