Posts Tagged ‘debugging’



March 2, 2013

I just released a little tool called MiniConsole. It’s a general purpose console, that can launch commands like DOS shell commands, batch files, python scripts, etc.

miniconsole screenshot

I’m using it to launch the dev server of Google App Engine, actually devappserver2 which only comes as a python command line to execute in a DOS prompt. So by launching it in MiniConsole I can resize the window as I want and color errors, warnings, exception, 404s, 500s, etc. In my case, why not use Google App Engine Launcher? Because the log window is not that good and it doesn’t support devappserver2 anyway.

It has very simple file system completion and remembers the last command, working directory, highlights, window size and position. You know, the little things. It can also redirect CTRL+C to the process, which for GAE will close it properly, saving datastore, search indexes, etc.

Download and more info here


NetDebugLog for Linux, NetDebugPlot update

September 16, 2012

NetDebugLog, the open source C++ client for NetDebugPlot, is now compatible with Linux (tested with Ubuntu 12.04.1 LTS)!

NetDebugPlot also got a major update with a huge performance increase and a few other improvements.

netdebuglog windows linux ubuntu logo


NetDebugPlot: Real-time charts for debugging

September 8, 2012

I just released NetDebugPlot, a tool to debug and visualize program internals. It’s a basic real-time line chart viewer that can get connected to a local or remote program via NetDebugLog.

NetDebugPlot: real-time chart for debugging

Here is the feature list:

  • Real-time line charts
  • Scale time and Y axis with scroll mouse or text boxes
  • Each series has its own color
  • Pause chart (data continues to be received)
  • Save chart to .jpg image
  • Change client’s port number

NetDebugLog is an open source C++ client for NetDebugPlot (GitHub project page). There are 1 .cpp and 1 .h files to include in a project to make it all work. It consists of a TCP client, a couple configuration and logging functions. It’s currently implemented with Winsock and QueryPerformanceCounter (high resolution timer) and could easily be ported to other platforms.

Here is how to use it:

#include <iostream>
#include "NetDebugLog/NetDebugLog.h"

int main(int argc, char* argv[])
	static int delay = 33;

	// Those are default

	while (true)
		float val1 = (float)((rand() % 25)*(rand() % 2 == 0?1:-1));
		float val2 = val1 + (float)(rand() % 25);

		NetLog("test", val2);


	return 0;

More screenshots with various series and zoom levels / time scales:

NetDebugPlot: real-time chart and data series

NetDebugPlot: real-time chart and zooming screenshot

Download and more info here


MiniPlot and debugging

August 29, 2012

There are tons of function plotters and there is Excel to plot data series but I needed something else so I made MiniPlot.

Instantly plot data with MiniPlot

This software lets you type in or paste any number of data series and generate corresponding line charts on the fly. It’s dead simple to use and there is no button to click to generate charts, it’s instantaneous.

Here is the feature list:

  • Updates as you type
  • Automatically fits all series
  • Auto axis scale with window size
  • Each series has its own color
  • Chart types: line, point, column, area
  • Save chart as .jpg image
  • Copy image to clipboard

I spend a lot of time reading the Visual Studio output window and the lines coming out of logs and tracepoints. But it can be full of other garbage like other log categories that I don’t really want to turn off, or random Visual Studio output about threads, dlls and all.
When I need to visualize my data, I’d copy paste the VS output in a text editor, remove all the garbage and end up with my values properly printed each per line, I’d open up Excel and paste those values, insert a new line chart, and I’d finally have a chart representing my data.

Now, with MiniPlot I just select all the text in the Visual Studio output window and paste it in there and I have my line chart instantly.
Whenever I can I just add tracepoints to the program I’m debugging, put in the textbox something like: playerSpeed {playerSpeed}, and paste the output in MiniPlot (which ignores all the crap that doesn’t match the 2 supported formats to add a point) so I can visualize what’s going on without recompiling my application nor having to use a text editor + Excel.

Series can be displayed as line, point, column or area charts.

MiniPlot chart types (point, line, column, area)

There is no install needed (though you need .NET Framework 3.5), it’s just a 500KB standalone executable.

Download and more info here