Zovo tools

Linker Map Viewer Online

Drop a linker .map file to see where your FLASH and RAM go: region bars, the biggest object files and symbols, and sortable tables of sections, libraries, symbols and discarded sections. No install, no account and no upload.

Linker Map Viewer & Map File Analyzer for VS Code and Cursor, free

Optional Zovo Pro, USD 19 once: size reports, size history of a folder of builds and JSON export. 3 free tries for each.

Your file never leaves this browser. The page reads it on your computer. Nothing is uploaded, there are no tracking cookies, and it keeps working offline once loaded.

Drop a .map file here

or

Linker maps from GNU ld (gcc, arm-none-eabi, ESP-IDF, Zephyr, Pico SDK), LLVM lld (clang, Rust), IAR ILINK and Keil armlink, any size.

Open this in VS Code or Cursor

This page runs the parser of the free Linker Map Viewer extension. In VS Code and Cursor it also draws a treemap, compares the map of an older build with this one, opens the source file of a symbol with a double-click, and reads the MEMORY block of a linker script next to an lld map by itself.

Free, MIT license. About Linker Map Viewer for VS Code.

Zovo Pro

Size reports, size history of many builds and JSON export. Zovo Pro, USD 19 once.

In the Linker Map Viewer extension, Zovo Pro writes a Markdown size report for a pull request (region use, the 20 biggest object files and symbols, and what changed against an older map), a size history table of a folder of build maps, and the whole map as one JSON file for your own scripts or CI checks. Each Pro tool works 3 times for free. One payment covers the Pro tools in 22 Zovo extensions. Everything that is free stays free.

After a card payment you get a key on the page. With GitHub Sponsors you sign in from the extension. Details on the Zovo Pro page.

Related tools

Questions

Is my map file uploaded anywhere?

No. The page reads the file inside this tab, in 4 MB steps in a background worker. Its Content Security Policy sets connect-src to none, so the page cannot send your map anywhere. Open the Network tab of your browser tools and you will see no request when a map opens.

Which linkers does it read?

GNU ld (gcc, arm-none-eabi-gcc, ESP-IDF, Zephyr, the Raspberry Pi Pico SDK, STM32CubeIDE, avr-gcc, RISC-V), LLVM lld (clang and Rust embedded), IAR ILINK 7.x and 8.x, and Arm Compiler armlink 5 and 6 from Keil. The format is found from the first lines of the file. A .js.map source map is recognized and refused.

Do the numbers match the linker?

For GNU ld maps the region totals equal what ld prints with its print-memory-usage option. Discarded input sections get their own tab and are never counted in a region. GNU ld maps list global symbols without sizes, so a size marked ~ runs from the symbol to the next one in the same input section.

My lld or Rust map shows no memory regions. Why?

lld maps do not list the MEMORY block. Click Add a linker script and pick the memory.x or .ld file of the build: the page reads its MEMORY block and draws the region bars. You can also drop both files at once.

How do I make my linker write a map?

With gcc or clang add -Wl,-Map=firmware.map to the link step (add the cref option too for the list of files that use each symbol). With CMake use target_link_options(app PRIVATE -Wl,-Map=firmware.map). IAR and Keil have a map option in the linker settings. ESP-IDF, Zephyr, the Pico SDK and PlatformIO already write one into the build folder.

How big a map can it open?

There is no size limit of its own. The map is read in slices and parsed line by line in a worker, and the table shows 500 rows at a time with Show more rows, so a map of many MB with a million symbols does not freeze the tab.

Does it work offline?

Yes. After the first visit the page keeps a copy of its own files, so it opens maps with no connection.

What is free and what is Zovo Pro?

Everything on this page is free, and so are the tables, the treemap and the compare of two builds in the VS Code extension. A size report for pull requests, the size history of a folder of builds and the export of the whole map as JSON are Zovo Pro in the extension, with 3 free tries each. One USD 19 payment covers the Pro tools in every Zovo extension.