GNUPro Toolkit for Linux v1.0
Manufacturer: Cygnus Solutions
Price: $79.00 US
Reviewer: Daniel Lazenby
GNUPro Toolkit for Linux is designed for developing both commercial and noncommercial Linux applications on native Linux platforms. It is a set of tested and certified, open-source, GNU standard C, C++ and assembly language development tools. The reviewed release of the product (v1.0) is a Linux-only product. This packaging of the Toolkit is specifically targeted toward the Linux desktop developer.
The compiler and development tools consist of GNU's C compiler (ANSI conforming), C++ compiler (ANSI tracking), assembler, C preprocessor, linker, debugger and the GNUPro visual debugger. The GNUPro libraries include standard ANSI C runtime, math subroutine libraries, C++ class and C++ iostreams. All of the compiler and development tools, except gdbtk, are command-line tools. (gdbtk brings up the GNUPro visual debugger). The other command-line tools function like standard GNU tools.
A set of binary and general utilities is also included. Tools such as objcopy, objdump, ranlib, strip, ar and nm are examples of the included binary utilities. The general utilities provide a set of tools for comparing and merging files. Tools such as cmp, diff, diff3, sdiff and patch are included in the general utilities.
For me, GNUPro's visual debugger makes debugging easier. I like being able to see graphically what is happening. Figure 1 contains a KDE environment screen capture of the debugger's Source Window.
Typical menu, tool, display window and status bars are provided. The tool bar provides run, stop, function navigation and assembler navigation buttons. Then there are the register, memory, stack, watch expressions, local variables, break points and console dialog box buttons. These buttons are followed by the stack navigation buttons. Each of the function buttons implements or executes a GNU gdb command-line interface command. The dialog buttons open windows that display related information. The Register Window button dynamically displays registers and their content. Memory is dynamically displayed in the Memory Window. The current state of the call stack is displayed in the Stack Window. The Source Window will update its display to reflect any selections made in the Stack Window. An “expressions to watch” window is displayed by the Watch button. This window will be blank unless expressions, registers or pointers have been identified for watching. Current values of local variables are displayed in the Local Variables Window. A list of all defined breakpoints is shown in the Breakpoint Window. Another way of managing breakpoints that may not be readily visible/accessible in the Source Window is provided by the Breakpoint Window. A Console Window is displayed by the console button. This window provides a command-line interface to GNUPro Debugger.
A mouse click or static cursor within the Source Window produces several pieces of information. The current value of a variable is displayed when the mouse cursor is held over a variable. Holding the cursor over a variable and right-clicking the mouse produces a pop-up menu. This menu offers two choices: add the item to the watch list, or dump the memory. Selecting either of these produces a dialog box displaying the selected information. Executable lines are shown with a minus sign on the left side of the window. Left-clicking the mouse in this region will either add or remove a break point. Right-clicking the mouse offers a pop-up menu with a couple of break point management options.
Below the status line are three drop-down list boxes. All of the source and header files associated with the executable are presented in the left-most box. The middle box displays all functions in the source or header currently displayed. Any of the items in these two list boxes may be selected for display. Four items in the right list box control what is being displayed. The display options are source only, assembly only, source and assembly mixed, and a split screen with source on top and assembly at the bottom.
- High-Availability Storage with HA-LVM
- DNSMasq, the Pint-Sized Super Dæmon!
- March 2015 Issue of Linux Journal: System Administration
- Localhost DNS Cache
- Real-Time Rogue Wireless Access Point Detection with the Raspberry Pi
- Days Between Dates: the Counting
- PostgreSQL, the NoSQL Database
- The Usability of GNOME
- Linux for Astronomers
- You're the Boss with UBOS