Browse by type
Cobalt Fusion presents:
DebugView++ is primarily a viewer for Win32 OutputDebugString based logging in the style of Sysinternals DebugView. But can also be attached to virtually any other kind of logging, such as: - Android ADB (basically any console based standand 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 below.
Expected changes in next version 1.7.x (upcoming ~ Jan 1 2017): - bugfixes - last version with (official) XP support - internal refactoring from boost to C++11/14 constructs - no features planned, if you're missing something you need, file an issue!

Here is a list of current features:
Added in 1.5:
Not new features, but often overlooked, see below for details - 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
Changes in 1.7.x so far: - restructuring log-sources code - experimental horizontal scrolling by dragging mouse - fixed a bug in version 1.6.48 that prevented dbgview-agent messages from showing - added name of tailing file in window title - fixed swallowing newlines - fixed DebugviewConsole (was broken in 1.6) - fixed all tests - fixed threading-issues
Screenshot demonstrating bookmarks and highlighting features.
Highlighted:
[^\s]*\\[\\\w+\.\s]+ filenames in blue0x\w+ hexadecimal numbers in redUnittest lines with the word 'Unittest' have a lightgreen backgroundSee 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)
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 data value in your logging, since the actually value may differ, you cannot use normal matching to highlight them. With RegexGroups you can match text before or _after the actual token you want to highlight.
Example:


Filters can be defined per view, for example choose File -> New View, and the filter dialog will popup. Pressing OK will open a new view without any filters.
Different types of filters:
All filters support regular expressions, if you are not familliar with regular expressions you can just type any word or part of a word to match.
Practical uses:
Include, exclude, once and highlight filters are the most intuitive filters to use. Track and stop can be a little confusing, let me try to give some examples.
track: use this filter to focus interesting lines that do not occur very often, but at a regular interval, for example, so you are monitoring a process that logs output every 30 seconds and you need to check the result.
stop: this filter is good when some special event occurs (an exception?) and you want to inspect the context of the event in the log before continuing. A press of the 'end' button will resume auto scrolling.
link views: the selected line in the current view is located re-selected when you switch to another view. This is done on a best-effort bases, so if the exact line is not found, the nearest line is selected. In that case switching views will cause the currently selected line to change.
Consider this use case:
If you want to have auto scoll on, but some high frequeny messages are annoying you, but you cannot exclude them because they help you diagnose your event when it occurs, try this:
Use two views, one where the diagnostic messages are filtered and autoscroll is on, and one where the messages are included (and maybe highlighted), next turn on the 'link views' feature.
Now you can monitor the filtered view, and when your event occurs, select a line and switch to the unfiltered view, the same line is now highlighted, but in full unfiltered context.
process colors: If enabled each process (even processed with identical names) will get a its own background color automatically without adding any filters.
Auto Scroll: scrolls down to new incoming lines automatically
Auto Scroll Stop: If enabled 'auto scroll' is turned on when the last line in the view is selected, and also turned off if any other line is selected.
Bookmarks: bookmarks are view specific and can be placed on a line by clicking left of the line number or Ctrl+F2, press F2 to move to the next bookmark. Bookmarks are temporary, so cannot be saved.
ClockTime: when enabled the time is displayed as provided by the system's real-time clock (RTC). Such a timestamp has a 16ms resolution on a typical desktop PC. When disabled, time is displayed as a relative time to the first message, however this timestamp is obtained from the High-Performance Counter (HPC) which typically has a sub-microsecond resolution.
The resolution should not be confused with accuracy here, the recorded timestamp is not the actual time the message occured, it is the time the message was received by DebugView++. Also there is no quarantee that the time between occurance and reception of messages is constant, however in practice this is pretty constant :)
This is a Visual Studio 2010 project with the following dependencies (download and install separately) - boost 1.63, https://sourceforge.net/projects/boost/files/boost/1.63.0.beta.1/boost_1_63_0_b1.zip - WTL 8.0, http://sourceforge.net/projects/wtl/, choose WTL80_sf.exe - zip.exe, http://gnuwin32.sourceforge.net/packages/zip.htm, choose [zip-3.0-setup.exe]
The libraries must be installed in /Libraries and zip.exe installed, add the binary directory to your path.
-= Cobalt Fusion =-
Gert-Jan de Vos mailto:boosttestui@on.nl
Jan Wilmans mailto:janwilmans at gmail.com
$ claude mcp add DebugViewPP \
-- python -m otcore.mcp_server <graph>