Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>LLD Map ViewerNew to Visual Studio Code? Get it now.
LLD Map Viewer

LLD Map Viewer

Yoon Jonghyun

|
153 installs
| (0) | Free
A VSCode extension to view Clang LLD map files in a tree table view.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info
# LLD Map Viewer

A modern Visual Studio Code extension for visualizing Clang LLD map files

Version VS Code License


LLD Map Viewer is a powerful Visual Studio Code extension that transforms complex Linker Language Data (LLD) map files into intuitive, interactive tree table views. Navigate through symbols, analyze memory layouts, and switch between hexadecimal and decimal formats with ease.

📸 Screenshot

Tree Table View

✨ Features

  • 🌳 Tree Table View: Visualize your LLD map files in an organized tree table format, allowing for easy navigation and inspection of symbols and their properties
  • 🔢 Number Format Switching: Seamlessly switch between hexadecimal and decimal formats for number fields to enhance readability and analysis
  • 🖱️ Interactive Interface: Expand and collapse tree nodes to focus on specific sections of your map files
  • ⏱️ Dual Progress Bars with Cancellation:
    • Top-level notification progress: Shows when opening large files (>1 second), with cancel button to fallback to text mode
    • Bottom window progress: Displays parsing progress with real-time line count updates
  • ⚡ Fast Stack-Based Parsing: High-performance tree building
    • Single-pass parsing: Full tree structure built in one iteration through the file
    • Space-counting algorithm: Matches proven legacy parser behavior
    • Lazy field evaluation: Field values (VMA, LMA, Size, etc.) parsed only when displayed
    • Column offset detection: Automatic detection of field positions from LLD header
    • Instant tree display: All nodes immediately visible and expandable
    • Memory efficient: Only raw lines stored, fields parsed on-demand
  • 📊 Pie Chart Visualization: (Coming Soon) Visualize data distributions with pie charts directly within the extension

🔧 Requirements

  • Visual Studio Code: Make sure you have Visual Studio Code installed.
  • Node.js: Required for extension development and dependencies.

⚙️ Extension Settings

This extension contributes the following settings:

  • lldMapViewer.parsingMode: Select the parsing mode

    • new (default): Fast stack-based parser with lazy field evaluation (LLD format only)
    • legacy: Original space-counting parser with immediate field parsing (all formats)
  • lldMapViewer.debugMode: Enable debug mode (default: false)

    • When enabled, parses files with both methods and compares results
    • Logs differences to the "LLD Map Viewer" output channel
    • Useful for testing and validation
  • lldMapViewer.logParsingStats: Log parsing statistics (default: false)

    • Logs parsing time and node count to the output channel
    • Useful for performance analysis

🐛 Known Issues

  • Performance with Large Files: Handling extremely large LLD map files may lead to performance degradation. Optimizations are in progress to address this.
  • Pie Chart Rendering: The pie chart feature is currently under development and may not render accurately for complex data sets.

📝 Release Notes

1.0.0

Initial release of lld-map-viewer with tree table view and number format switching capabilities.

1.1.0

  • Added support for hexadecimal and decimal number format switching.
  • Improved tree table performance and responsiveness.

1.2.0

  • Fixed empty symbol display issue

1.3.0

  • Added modern icon and improved visual design
  • Enhanced README documentation
  • General performance improvements

2.0.0 - Major Architecture Overhaul

Fast Stack-Based Parser with Lazy Field Evaluation

This major version introduces a high-performance parser specifically optimized for LLD format files:

Core Features

  • Fast Tree Building (single-pass, stack-based algorithm)

    • Full tree structure built in one pass through the file
    • Uses space-counting algorithm matching legacy parser behavior
    • Stack-based parent-child relationship building
    • Produces identical tree structure to legacy parser
  • Lazy Field Parsing

    • Field values (VMA, LMA, Size, Align, Symbol) parsed only when displayed
    • Raw line stored in each node for on-demand field extraction
    • Column offsets detected from LLD header for fast field access
    • Significant memory and performance improvement for large files
  • LLD Format Support

    • Optimized specifically for Clang LLD map file format
    • Automatic column offset detection from header line
    • Validates LLD format before parsing
    • Falls back to error if non-LLD format detected
  • Dual Parser Mode

    • New parser (default): Fast stack-based with lazy fields (LLD only)
    • Legacy parser: Original synchronous parser (all formats)
    • Debug mode compares both parsers to ensure identical results
    • Parser comparison tool logs any differences found

Technical Enhancements

  • Stack-Based Tree Building Algorithm

    • Matches legacy parser algorithm exactly (space counting + stack)
    • Single-pass through file content
    • O(n) time complexity with minimal memory overhead
    • Proper parent-child relationships via stack depth tracking
  • Column Offset Detection

    • Automatic detection of VMA, LMA, Size, Align, Symbol column positions
    • Reads header line to determine field positions
    • Fast field extraction using detected offsets
  • Lazy Field Parsing (TreeNode.ts)

    • Field values cached after first access (getSymbol(), getSize(), etc.)
    • Raw line stored for parsing on-demand
    • Column offsets shared across all nodes for fast field extraction
  • Progress Bar System

    • Top-level notification progress (file opening with cancellation)
    • Bottom window progress (parsing status with line counts)
    • Real-time updates during tree building

Performance Improvements

  • Single-Pass Parsing: Full tree built in one iteration
  • Lazy Evaluation: Fields parsed only when displayed in view
  • Memory Efficiency: No redundant string storage (raw line only)
  • Fast Startup: Optimized for LLD format with column detection
  • Scalability: Handles large files efficiently

Breaking Changes

  • Complete rewrite of parsing engine
  • New state management system
  • Modified internal TreeNode structure

Dual Parser Mode & Testing

  • Legacy Parser Preserved: Original v1.x synchronous parser available via lldMapViewer.parsingMode setting
  • Debug Mode: Compare both parsers side-by-side to validate tree structure consistency
  • Automated Tests: Unit tests verify identical output between parsing methods
  • Parser Comparison Tool: Built-in tree comparator reports any differences with detailed logs
  • Test Suite: Validated against multiple map file formats (GNU ld, LLD, MSPGCC, etc.)
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2025 Microsoft