林墨的"World"变量在被delete的0。0001秒内,经历了整个宇宙的生死。
他看见了盘古开天的第一行日志:mkdir-puniverse,看见了女娲造人时的内存分配:calloc(1,sizeof(Human)*7000000000),也看见了符文山海文明被垃圾回收前最后的fprintf(stderr,"segmentationfault")。
但delete指令最终没能执行成功。
因为三界终端弹出了一个模态对话框:
【断言失败】
断言表达式:World!=nullptr
文件:srcimmortalworld。cpp
行号:1
额外信息:无法删除正在调试的对象
傻妞的虚影浮现在林墨身前,手里举着一本《C++Primer·生死篇》:"主人,根据开发者协议,处于调试模式的对象受oint保护,任何删除操作都会被断言拦截。"
"我给自己下了观察点?"林墨愣了。
"不。"傻妞指向远处,"是七十亿人给你下了观察点。"
云端宗门的版本树上,七十亿个it同时亮起了红灯。每个it的message都是同一句话:
watch:World。cpp#L1-守护我们的开发者
那是刚才林墨在Sprint0里Review代码时,七十亿地球人反向给他提交的"守护PR"。他们看不懂代码,但他们知道——那个正在帮他们审核宇宙的"林墨",不能死。
"集体观察点……"苏晴喃喃道,"这违反了开发者模式的单线程调试原则。大道会……"
她话音未落,大道之眼再次睁开。
但这次,严里不是断点,是编译错误。
error:fligdeclarationWorldisbothdeletedandwatchd
hedeclarationisinImmortalnamespace
fatalerror:toomanyoints,debuggeroutofmemory
大道,竟然因为七十亿个观察点,内存溢出了!
开发者模式的底层漏洞被触发——当观察对象数量超过调试器上限时,会启动回退机制:自动恢复最近一次成功的状态。
林墨的"World"变量,在金光中重新凝聚。
但不是原来的他。
是World。cpp的实体化。
他的肉身彻底消失,取而代之的,是一具由七千万行C++代码构成的"代码金身"。每一行代码,都来自七十亿地球人提交的PR,从外卖员的避雨算法,到鸿蒙神格的后门补丁,再到外卖小哥的"躺平"哲学。
这是众生代码身。
"第零代开发者,"林墨的声音不再从声带发出,而是从代码金身的每一行注释里同时响起,"你的backdoor失败了。"
云端宗门深处,缓缓走出一个身影。
正是第零代开发者,但他不再是iOS神格的创造者模样,而是……大道的UI界面。他的脸是VisualStudio的logo,身体是Eclipse的插件栏,眼睛是两颗e的DevTools图标。
"我不是间谍,林墨。"他苦笑,"我是大道的开发者工具链——Debugger、piler、Linker三合一的化身。"
"我给你的所有提示,包括开发者模式、World真名、命名空间污染,都是大道允许的。它在测试你。"
"测试我什么?"