
NetDebugPlot: Real-time charts for debugging
September 8, 2012I 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.
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 //SetNetLogIPAddress("127.0.0.1"); //SetNetLogPort(13000); //SetNetLogEnabled(false); srand(0); while (true) { float val1 = (float)((rand() % 25)*(rand() % 2 == 0?1:-1)); float val2 = val1 + (float)(rand() % 25); NetLog(val1); NetLog("test", val2); Sleep(delay); } return 0; }
More screenshots with various series and zoom levels / time scales:
Thanks for the toolkit NetDebugPlot you have explored!
I was wandering on the Internet before I met it, and it is exactly what I need. The idea of using client-server model to communicate is nice!
The software is easy to use, but I have found several bugs since I downloaded it yesterday. Here are some:
1. sending message to the server when the server is not started can slow the application obviously (I have client and server on one same machine)
2. sometimes the renderer just does not work, and it gives the error message “index out of range, and it should be none-negative and be smaller than the size of the set”. Seems like happened with an array or something like.
Thanks again for your share.