全栈调试实战营之二线拍案惊奇

在开源大流行和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标准。

报名方式

与以往固定上课地点不同,本实战营首次尝试新的举办模式,由参加者提议举办城市,按如下规则进行:

  1. 报名时请提出你建议的举办城市,每个城市的第一位报名者自动成为该城市实战营的营长,如果实战营在这个城市成功举办,将获得《格蠹新编》签名本一册。

  2. 每个城市报名满15人后就将确定在该城市举办,举办日期为满15人之日起2个月内的周六周日两天,如果参加者有时间冲突,将以投票方式决定。

  3. 如果报名指定城市后,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-

【盛格塾】

正心诚意,格物致知

人文情怀审视软件,以软件技术改变人生

格友公众号

盛格塾小程序

扫描上方二维码或在微信中搜索“盛格塾”小程序

可以阅读更多文章和有声读物

往期推荐

从损坏的硬盘中抢救没有备份的书稿

Git使用经验点滴

再战声卡无声难题(下)

安装UBUNTU时遇到的黑手

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值