Power Qt Development with GammaRay and Other Helpful Tools
In this final installment of our Qt Developer's Bag of Tricks series, I'll look at some helpful tools that didn't fit into any of the categories covered previously.
GammaRay
GammaRay (1) is a tool for examining and manipulating the internals of Qt applications at run time. Unlike conventional debuggers, it understands the implementation of Qt, allowing it to visualize application behavior at a higher level, including signals, slots, properties and even scene graphs, model/view and state machines. It is free software, licensed under the GPL. A screen shot is shown below, being used with a spreadsheet application:
I had no trouble building it from source code cloned from the git repository (2) on an Ubuntu desktop system.
Networking Tools
One category of tools we didn't cover previously was networking. Here is a brief list of some tools that can be useful for debugging and solving problems in this area. Many of these come standard on most Linux systems. Other typically need to be explicitly installed or built from source.
ip - Show/manipulate routing, devices, policy routing and tunnels.
Nagios (3) - An application that monitors systems, networks and infrastructure. It alerts users when things go wrong and alerts them a second time when the problem has been resolved.
netcat/nc - A utility for just about anything under the sun involving TCP, UDP, or UNIX-domain sockets. It can open TCP connections, send UDP packets, listen on arbitrary TCP and UDP ports, do port scanning, and deal with both IPv4 and IPv6.
nmap - Network exploration tool and security/port scanner.
tcpdump - Dump traffic on a network.
ntop (4) - Computer software that probes a computer network to show network use in a way similar to what the program top does for processes.
ngrep - Network grep. Strives to provide most of grep's common features, applying them to the network layer.
ss - Utility to dump socket statistics. It allows showing information similar to netstat. It can display more TCP and state information than other tools.
vnstat - A console-based network traffic monitor. It keeps a log of hourly, daily and monthly network traffic for the selected interfaces.
wireshark - A GUI network protocol analyzer. It lets you interactively browse packet data from a live network or from a previously saved capture file.
zabbix (5) - Zabbix is enterprise Open Source monitoring software for networks and applications. It is designed to monitor and track the status of various network services, servers, and other network hardware.
Summary
We've now come to the end of this blog series. I hope you found it useful. If you did, please share it with your colleagues. For convenience, under References (below) I've provided links to each of the installments of the Qt Developer's Bag of Tricks series. While researching these blogs I discovered and explored a number of new tools. If there are other tools you have found indispensible for Qt development, I encourage you to introduce them in the comment section.
References
- http://www.kdab.com/gammaray
- https://github.com/KDAB/GammaRay/wiki
- https://www.nagios.com
- http://www.ntop.org
- https://www.zabbix.com
Links to all the installments of the series:
- Part 1 - Indispensable Debugging Tools
- Part 2 - Performance Profiling Tools
- Part 3 - A Look at Tracing Tools
- Part 4 - A Look at Static Analysis Tools
- Part 5 - Explore Memory and Resource Leak Detection Tools
- Part 6 - Embedded Tools
- Part 7 - Simulators
- Part 8 - Integrated Development Environments
- Part 9 - Miscellaneous