DebugViewPP
DebugView++, collects, views, filters your application logs, and highlights information that is important to you!
Install / Use
/learn @CobaltFusion/DebugViewPPREADME
Contact information
Debugview++ v1.20.x.x (Summer 2025 Update coming soon!)
- new features: capture kernel messages, verbose mode and pass-through mode, big thanks to x64bugreport and 593749519 for providing information, contributions and test scenarios.
- fixed #365: support for messages from UWP applications (poorly tested), feedback welcome!
- fixed #396: depending on the runtime dlls, this broke when we moved to cmake, now we link the runtime statically again.
- fixed title bar not being updated when 'Global Win32' was toggled.
- new commandline argument /tab:<name> to select a tab that get focus at startup, contributed by KirisameMarisa
- removed color support from 'include' filter by request (a highlight filter can still achieve the same result), contributed by Ishmaeel.
- faster building by adding /MP.
-- Notice:
- This project is in low-maintenance mode, this means new features are only added if PRs are provided with tests.
- Updates are limited to keeping the status-quo and OS-related updated.
- I'm looking for maintainers, so if you would like to join me in bugfixing or adding features, please let me know.
- 2022 update: The project was migrated to VS2022 and boost 1.80, WindowsXP (32 bit) support was removed.
- the OutputForwarder companion extension for VS2022 can be found in the Visual Studio Marketplace
- nuget.exe can be downloaded from https://www.nuget.org/downloads
Debugview++, currently at v1.9 (2024 Update!)
Download latest release, I would really like to hear what you think! Leave any comments here
Download head version ** only pick this if your feeling lucky and want to try the latest commits **
Questions? Find me at @janwilmans.bsky.social or chat on discord as 'janwilmans'. There is also a slack channel. If you need an invite, go here.
Debugview++ started as a viewer for Win32 OutputDebugString messages in the style of Sysinternals DebugView. However, it can now be attached to virtually any other kind of logging, such as:
- tailing ascii and UTF logfiles (just drag it onto the window)
- Android ADB (or any console based standard output)
- serial ports (using plink)
- sockets, telnet or ssh ports (also using plink)
- it can listen for UDP messages, handy in distributed systems
See examples down below.
Sponsors
This project is sponsored by:
Build in code analysis, handy auto-fixes and refactoring options
Gather and analyse crash information.
We use Incredibuild to make use of all cores of multiple machines to accelerate building our C++ projects.
So when is this Debugview++ thing useful?
- first of all, with debugview++ you can see messages from different processes, not just 'attached' processes.
- also: filtering, coloring and linking. To make sense of a large amount of information humans need to filter it or order it understand it. Also it helps if important events have different colors to quickly interpret the occurring patterns.
- finally, filtering is nice, but sometimes you need to see a line in its context to understand it, this is where linked views can help to quickly switch between a fully filtered view and a fully detailed view.
New in stable version 1.8.x:
- bugfixes (namely in file-tailing)
- tested on windows 10
- last version with (official) XP support (v141_xp target)
- internal refactoring from boost to C++11/14 constructs
- better commandline support using docopt.cpp
- added filtering command line options
- no other new features planned, if you're missing something you need, file an issue!
Features we dream about and will create when we choose to spend the time:
- a gantt chart-like view, a horizontal timeline, with bars/flags/signs on it to identify events
- a better plugin based input system
- transparent background streaming to disk
- proper memory limits
Known issues:
- the history limit doesn't work right, this is troublesome for long-running duration-tests. A workaround is to send 'DBGVIEWCLEAR' before each test-cycle (this clears all logs from memory).
- there is no 'pass-through' mode like the original dbgview had, if you can help me implement this, please contact me.
- same goes for catching kernel messages, help wanted.
References
Screenshot

Here are some features:
- single selfcontaining executable, setup is provided but not required
- minimal delay of the traced application, compared to the original dbgview a factor of 10 better.
- fast and responsive user-interface, even with +50.000 incoming lines per second
- runs without prerequisites on WinXPSP3 and up (v1.5 and earlier also on WinXPSP2)
- in-memory compressed logbuffer using google snappy (typically -50% RAM consumption)
- tailing files (drag ascii or UTF files into debugview to tail it)
And more features:
- capture both Win32 and Global Win32 messages
- tabbed views
- resolve process PID to name and track their lifetime
- filter by process or message
- advanced filtering, exclude, track, stop, clear (optionally using regular expressions)
- line and token highlighting (create your own syntax highlighting)
- SAIT (search-as-I-type) + token highlighting
- bookmarks
- statusbar shows detailed log/view/selection information
- open saved logs for post-mortem analysis
- commandline version
- capture stdin piped messages, allows you to connect any kind of logging
- beep-filter for monitoring without seeing the screen (To hear it make sure a 'Default Beep' sound is defined in Control Panel->Sounds)
- clear Log now releases the message buffer instead of reusing the memory (useful when running debugview for a very long time)
- tailing logfiles over samba network (experimental)
- support for reading and tailing Sysinternals Dbgview logfiles (in the four most common formats)
- socket listening, Log->Sources->Add can add TCP and UDP listeners, the protocol is sending raw newline terminated strings. Multiple lines can be send in one packet.
- dbgview agent client mode allowing logging of kernel messages
- timezone independent and human readable timestamps in the logfiles
- add basic support for unicode, UTF-8 via OutputDebugString and both UTF8 and UTF16 with BOMs when reading files
- View->Process Colors, easy way to give every process its own color!
- Options->Link views, best effort to synchronize the line-selection over all views
Download old version (stable, dated 20 Sept 2015)
Screenshot demonstrating bookmarks and highlighting features.
Highlighted:
- regex (token filter):
[^\s]*\\[\\\w+\.\s]+filenames in blue - regex (token filter):
0x\w+hexadecimal numbers in red - regex (highlight filter):
Unittestlines with the word 'Unittest' have a lightgreen background - a doubleclick on 'bytes' causes all instances of 'bytes' to highlight in yellow
See http://www.cplusplus.com/reference/regex/ECMAScript/ for all options for supported regular expressions
Android ADB example:

Screenshot demonstrating connecting to ADB logcat (Android Debug Bridge)
More examples
Connect any pipe:
To connect directly to a port or service, plink can be used, make sure an instance of debugview++ is already running before running this command:
plink -ssh -batch -v 192.168.0.1 2>&1 | debugview++
Notice that 2>&1 is used before the pipe (|) symbol to redirect stderr to stdout.
Connect to sysinternals dbgview agent for kernel messages:
Example: connect to sysinternals DbgView Agent, first start Dbgview.exe /a /k (/k for kernel messages) And connect DebugView++ using Log->Connect DebugView Agent. Note that 'Log->Connect DebugView Agent' assumes the agent is running on the same workstation as DebugView++ so it connects to 127.0.0.1. If you need to connect to a remote agent, use Log->Sources...->Add->DbgView Agent and fill in the ip-address.
Use RegexGroups + Token Highlighting:
Suppose you want to highlight some dat



