如何高效学习debug技能,提升编程能力?

摘要:参考 https:blog.csdn.netrikeyonecategory_10354155.html Linux内核故障分类和排查 Linux内核中oops 错误解析以及问题定位 panic和oops的区别 内核问题分析文章 L
参考 https://blog.csdn.net/rikeyone/category_10354155.html Linux内核故障分类和排查 Linux内核中oops 错误解析以及问题定位 panic和oops的区别 内核问题分析文章 Linux中的错误码 Remote Serial Console HOWTO 配置串口 Internet FAQ Archives 服务器案例查询助手 Welcome to learning debugging All GDB Content 谈复杂软件低概率问题定位和复现 测试工具 LTP:https://linux-test-project.readthedocs.io/en/latest/index.html 内核 工具 kdump&crash openEuler kernel 技术分享 - 第1期 - kdump 基本原理、使用及案例介绍 openEuler kernel 技术分享 - 第3期 - Crash工具基本使用及实战分享 crash、kdump工具学习 crash工具和x86-64汇编基础 使用crash工具分析高通ramdump early kdump Documentation for Kdump - The kexec-based Crash Dumping Solution VMCOREINFO Linux Kdump 机制详解 crash实战:手把手教你使用crash分析内核dump drgn github: https://github.com/osandov/drgn 使用手册 User Guide A kernel debugger in Python: drgn Powerful and Programmable Kernel Debugging with drgn BPF drgn tools drgn: How the Linux Kernel Team at Meta Debugs the Kernel at Scale drgn - Linux 调试的另一只翅膀 [上] drgn - Linux 调试的另一只翅膀 [下] Enter the drgn 使用drgn分析kdump: https://www.cnblogs.com/pengdonglin137/articles/18377649 示例: sudo drgn -s /mnt/linux-6.10/vmlinux -c /var/crash/202408232354/dump.202408232354 使用drgn分析live kernel: -示例: sudo drgn -s /mnt/linux-6.10/vmlinux 内核中的一些基于drgn的脚本 tools/rcu: Add drgn script to dump number of RCU callbacks tools/cgroup: add memcg_slabinfo.py tool blkcg: add tools/cgroup/iocost_monitor.py decode_stacktrace.sh 使用decode_stacktrace.sh解析内核调用栈 faddr2line 内核脚本faddr2line pengdl@ubuntu:~/x86/linux-5.19$ ./scripts/faddr2line ./vmlinux proc_reg_open+255 blk_mq_dispatch_rq_list+599 proc_reg_open+255/0x1f0: proc_reg_open at fs/proc/inode.c:524 blk_mq_dispatch_rq_list+599/0x850: blk_mq_dispatch_rq_list at block/blk-mq.c:1897 pengdl@ubuntu:~/x86/linux-5.19$ ./scripts/faddr2line ./fs/proc/inode.o proc_reg_open+255 proc_reg_open+255/0x1f0: proc_reg_open at /home/pengdl/work/Qemu/x86/linux-5.19/fs/proc/inode.c:524 stack canary Linux 内核安全增强—— stack canary __stack_chk_fail 栈溢出问题定位 反汇编 用objdump只反汇编想要的函数 硬件断点 bpftrace watchpoint/asyncwatchpoint
阅读全文