Hello,今天又是Q哥来给大家进行分享了~
当屏幕弹出“Segmentation fault”时,程序员该怎么办?之前文章已经教给大家一个通用的方法就是利用backtrace函数和addr2line命令定位问题,没看过上一篇文章的小伙伴可以戳这里查看如何轻松搞定“Segmentation fault”,看这篇就够了!
如果你熟悉gdb,当程序跑飞,我们可以执行backtrace(简写bt)命令,可以dump出异常调用栈。如果你在大厂呆过,你应该知道,商用的定位方法是不允许使用gdb的,只能通过命令行和日志定位问题。
所以,今天我们一起分析下gdb源码中backtrace怎么实现的,然后活学活用,把这个功能在任意硬件平台(ARM/MIPS/X64/X32...)上移植出来。