“The issue isn’t the hardware,” Eleanor said, rubbing her eyes. “It’s the software. There’s a pointer dereference that only corrupts memory when the temperature sensor hits a specific threshold. I’ve run every static analyzer we own. Nothing catches it.”
That night, as she packed up, Eleanor looked at her terminal—still open, still showing PC-lint Plus SE’s final summary:
“No. Too expensive.” He paused. “But I bought you the standard PC-lint Plus. It won’t catch everything SE can, but it’ll catch most. And for the rest...” He slid a worn notebook across the desk. On the cover, Eleanor had written years ago: “Trust, but verify with static analysis.”
She pointed PC-lint Plus SE at the flight control module’s core file: nav_sensor.c .
“Can we keep the license?”
“We can’t. But we also can’t afford a drone that falls out of the sky. I’ll pull strings.” Two hours later, a license file landed in her inbox. Eleanor downloaded the tool, a command-line beast with no GUI, just a configuration file that looked like an ancient spellbook. She spent the next hour tuning it: setting the dialect to C17, enabling MISRA C:2023, turning on the aggressive interprocedural analysis, and—her final gambit—flipping on .
“I thought we couldn’t afford the SE tier,” she said.
Hank nodded. “PC-lint Plus SE doesn’t just find bugs. It finds intentions . It sees the ghosts in the machine—the paths your code could take, even if it never has before.”
“That’s it,” she whispered.
In the fluorescent-lit cubicle of a mid-sized aerospace firm, Eleanor, a senior embedded systems engineer, stared at her screen. On it, a flight control module for a new drone was failing its hardware-in-the-loop test for the third time. The code was old, inherited from a defunct contractor, and riddled with subtle bugs that only appeared after seventeen hours of run-time.