The debugging capabilities of Mesen are split across a number of different tools, including the debugger itself:
Assembler: Allows you to edit a game’s code or run custom code on-the-fly.
Debugger: View the code, add breakpoints, labels, watch values, and much more. A separate debugger window exists for each supported CPU.
Debug Log: Displays a log of various emulation-related events (uninitialized memory reads, SGB packets, etc.)
Event Viewer: Visualize the timing of a variety of events (register read/writes, nmi, irq, etc.).
Memory Tools: Contains a hex editor and access counters for all memory types.
Performance Profiler: Profiles the CPU’s execution to help find bottlenecks in code.
PPU Viewers: Tools to display tiles, tilemaps, sprites and palettes.
Register Viewer: Displays register/state information for most chips in the SNES/cartridge.
Script Window: Allows the execution of Lua scripts, which can communicate with the emulation via an API.
Trace Logger: View or log to a file the execution trace of any of the supported CPUs.
Additionally, some other smaller features are available from the main debugger window. e.g: