LLD Map Viewer transforms Clang LLD (LLVM Linker) map files into intuitive, interactive tree table views. Version 2.0 features a new stack-based parser with lazy field evaluation.
-
🌳 Tree Table View
- Visualize LLD map files in an organized tree table format
- Hierarchical structure showing parent-child relationships
- Expand and collapse nodes to navigate through symbols
- Clear indentation for easy understanding
-
🔢 Number Format Switching
- Toggle between hexadecimal and decimal number formats
- Switch formats without re-parsing the file
-
⚡ Stack-Based Parser
- Single-pass tree building algorithm
- Lazy field evaluation (fields parsed only when displayed)
- Designed specifically for LLD format files
-
🖱️ Interactive Interface
- Progress indicators during file opening
- Cancellable file opening with fallback to text mode
-
📊 Pie Chart Visualization (Coming Soon)
- Visual Studio Code: Make sure you have Visual Studio Code installed.
- Node.js: Required for extension development and dependencies.
This extension contributes the following settings:
-
lldMapViewer.parsingMode: Select the parsing mode (both work with LLD format only)new(default): Stack-based parser with lazy field evaluationlegacy: Original parser with immediate field parsing
-
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
- LLD Format Only: This extension only works with LLD (LLVM Linker) format map files. Other formats (GNU ld, MSPGCC, etc.) are not supported.
- Pie Chart Rendering: The pie chart feature is currently under development.
Initial release of lld-map-viewer with tree table view and number format switching capabilities.
- Added support for hexadecimal and decimal number format switching.
- Improved tree table performance and responsiveness.
- Fixed empty symbol display issue
- Added modern icon and improved visual design
- Enhanced README documentation
- General performance improvements
This major version rewrites the parsing engine with a new stack-based parser optimized for LLD format files:
-
Stack-Based Tree Building
- Full tree structure built in one pass through the file
- Uses space-counting algorithm
- Proper parent-child relationship building
-
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
-
LLD Format Only
- Designed specifically for Clang LLD map file format
- Automatic column offset detection from header line
- Validates LLD format before parsing
-
Dual Parser Mode
- New parser (default): Stack-based with lazy field evaluation
- Legacy parser: Original parser with immediate parsing
- Debug mode compares both parsers to ensure identical results
-
Stack-Based Algorithm
- Uses space counting with stack for building tree structure
- Single-pass through file content
- Proper parent-child relationships via stack depth
-
Column Offset Detection
- Automatic detection of VMA, LMA, Size, Align, Symbol positions from header
- Field extraction using detected offsets
-
Lazy Evaluation
- Field values cached after first access
- Raw line stored for on-demand parsing
-
Progress Indicators
- Progress bars during file opening
- Cancellable operations
- Complete rewrite of parsing engine
- New state management system
- Modified internal TreeNode structure
- Legacy Parser Preserved: Original parser available via
lldMapViewer.parsingModesetting - Debug Mode: Compare both parsers to validate tree structure consistency
- Parser Comparison Tool: Built-in tree comparator reports any differences
- Test Suite: Basic tests for LLD format validation
