在开源大流行和AI会写代码的时代里,软件调试正变得越来越难。开源和AI两股力量都让代码很容易得到,但代码聚集容易,消化困难。五花八门、纵横交错的代码堆积到一起后,有些地方并不契合。一旦出了问题,很难找原因和调试。以调试器为核心的调试技术是征服软件世界的一把利剑,在AI加持的大代码时代里会变得更加重要。要想成为不被时代抛弃的软件高手,认真修炼软件调试这门剑法是非常必要的。本训练营精选12个真实案例,让学习者在生动的故事中进入“战斗”状态,在实战中“事上磨练”,快速进阶。这些案例大多来自U-Boot、Linux内核、Chrome浏览器等重大开源项目或产品,包含2个尚处于0-Day状态的Linux内核漏洞。
整个实战营既有深度,又有广度,软件角度覆盖U-Boot固件、以及Windows和Linux两大平台,硬件方面覆盖ARM和X86两大架构,编程语言方面涉及C/C++、Bash脚本、设备树(DTS)等。涵盖的技术包括交互式调试(用户态和内核调试),Panic和蓝屏调试,内核消息分析,转储文件分析,逆向工程等。实战营由《软件调试》和《格蠹汇编》的作者张银奎亲任教练,现身说法。
课程大纲
Linux内核电源管理模块
中的数组越界和劣质代码
要点:内核启动失败、KASAN、越界、用户空间模拟、ASAN、谷歌的俄罗斯研发团队、指针数组、malloc和calloc、触发github的Blame视图、哪些人改过、众目睽睽之下的BUG、林纳斯法则为何失效?
充电图标显示异常
要点:充电图标、Linux内核的电能管理、dynamic_debug、debugfs、动态启用、在命令行启用、通过虚文件看状态、供电给谁(supplied_to)和谁给我供电(supplied_from)、电池驱动、设备树脚本、解决问题和引入新的问题。
从挂死的Chrome中
抢救未提交的图文
要点:谷歌的软件哲学、Chrome挂死、多进程模型、地址空间、栈和堆、Win32堆、WinDBG、搜索堆、保存为文件。
Linux系统启动黑屏
要点:Linux系统启动过程、内核的init目录、INITRD和INITRAMFS、根文件系统、populate_rootfs、数据损坏、 上调试器(NDB)、把内存数据保存到文件、比较文件、数据断点、栈溢出。
安装Ubuntu的异常缓慢之谜
要点:信创背景、老版本的Ubuntu、花屏、nomodeset参数、drm和modeset、控制台界面、log、缓慢根源、DDR、愚蠢的内存。
Indler漏洞深度解析与反思
要点:Linux内核oops、ARM的ESR寄存器、野指针、KASAN、slab分配器、内存访问越界、0-Day、源代码分析、修补方案、现状、反思。
PCIe链路失败导致的
无法从NVME硬盘启动
要点:兰友报告的问题、随机的启动失败、链路失败、PCIe精要、两个GPIO、上电和复位、延迟和稳定性。
Ubuntu登录异常缓慢
要点:GDK8升级、登录异常缓慢、系统日志、激活服务、UPower、systemd及其家族、systemd-analyze、blame名单、systemctl、上调试器、调试模式、命名空间。
启动失败之构建脚本谜团
要点:系统镜像构建之挑战、armbian的构建系统、artifacts、挂在根文件系统失败、缺少ext4文件系统、Kconfig、.config、是谁改了设置?补丁、脚本的扩展机制、调试bash脚本的挑战和策略。
声卡无声难题
要点:Linux的声音子系统、pipewire、pw-top、配置文件、音频codec、ES8326、I2S、时钟源、设备树语法深究。
频繁的Oops和长期持有锁
要点:频繁的内核Oops、内核线程持有锁、代码源头、锁监督机制、充电检查、内核选项、修改、反思。
闪存烧写失败和调试第一心法
要点:闪存烧写原理、“闪存算法程序“、烧写失败、著名的OpenOCD库、在Windows上使用VC编译、while循环、内存对齐、typeof运算符和C23标准。
报名方式
与以往固定上课地点不同,本实战营首次尝试新的举办模式,由参加者提议举办城市,按如下规则进行:
报名时请提出你建议的举办城市,每个城市的第一位报名者自动成为该城市实战营的营长,如果实战营在这个城市成功举办,将获得《格蠹新编》签名本一册。
每个城市报名满15人后就将确定在该城市举办,举办日期为满15人之日起2个月内的周六周日两天,如果参加者有时间冲突,将以投票方式决定。
如果报名指定城市后,3个月内未满15人,既可以选择就近城市或者庐山(包住宿,不包交通)上课,也可以申请全额退款。
课程费用
选项A
包含内容:
课程学习
配套讲义
午餐
实践安排:
课上连接试验机操作部分试验,其它观看演示。
收费标准:
一线城市(北京/上海/广州/深圳):2986元 / 人
其他城市:1986元 / 人
选项B
包含内容:
课程学习
配套讲义
午餐
挥码枪
GDK8套件
实践安排:
课上使用自己的设备做大部分试验,课后可带走继续实践。
收费标准:
一线城市(北京/上海/广州/深圳):3986元 / 人
其他城市:2986元 / 人
选项C
包含内容:
课程学习
配套讲义
午餐
挥码枪
幽兰代码本
实践安排:
课上使用自己的设备做几乎全部试验,课后可带走继续实践。
收费标准:
一线城市(北京/上海/广州/深圳):4986元 / 人
其他城市:4286元 / 人
联系我们
Lisa
邮箱:lisa.long@nanocode.cn
微信:13801874134
Gary
邮箱:jiali.liu@nanocode.cn
微信:17621086819
公司付款信息
账户名称:格蠹信息科技(上海)有限公司
开户行:招商银行股份有限公司上海浦江镇支行
账号:1219 3085 8010 501
-END-
【盛格塾】
正心诚意,格物致知
以人文情怀审视软件,以软件技术改变人生
格友公众号
盛格塾小程序
扫描上方二维码或在微信中搜索“盛格塾”小程序
可以阅读更多文章和有声读物
往期推荐