Red Hat Enterprise Linux 6

Developer Guide

An introduction to application development tools in Red Hat Enterprise Linux 6


Robert Krátký

Red Hat Customer Content Services

Don Domingo

Red Hat Customer Content Services

Jacquelynn East

Red Hat Customer Content Services

Legal Notice

Copyright © 2016 Red Hat, Inc. and others.
This document is licensed by Red Hat under the Creative Commons Attribution-ShareAlike 3.0 Unported License. If you distribute this document, or a modified version of it, you must provide attribution to Red Hat, Inc. and provide a link to the original. If the document is modified, all Red Hat trademarks must be removed.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.


This document describes the different features and utilities that make Red Hat Enterprise Linux 6 an ideal enterprise platform for application development.
1. Collaborating
1.1. Git
1.1.1. Installing and Configuring Git
1.1.2. Creating a New Repository
1.1.3. Cloning an Existing Repository
1.1.4. Adding, Renaming, and Deleting Files
1.1.5. Viewing Changes
1.1.6. Committing Changes
1.1.7. Sharing Changes
1.1.8. Updating a Repository
1.1.9. Additional Resources
1.2. Apache Subversion (SVN)
1.2.1. Installing and Configuring Subversion
1.2.2. Creating a New Repository
1.2.3. Checking Out a Working Copy
1.2.4. Adding, Renaming, and Deleting Files
1.2.5. Viewing Changes
1.2.6. Committing Changes
1.2.7. Updating a Working Copy
1.2.8. Additional Resources
1.3. Concurrent Versions System (CVS)
1.3.1. Installing and Configuring CVS
1.3.2. Creating a New Repository
1.3.3. Checking Out a Working Copy
1.3.4. Adding and Deleting Files
1.3.5. Viewing Changes
1.3.6. Committing Changes
1.3.7. Updating a Working Copy
1.3.8. Additional Resources
2. Libraries and Runtime Support
2.1. Compatibility
2.1.1. Static Linking
2.2. Library and Runtime Details
2.2.1. The GNU C++ Standard Library
2.2.2. Boost
2.2.3. Qt
2.2.4. KDE Development Framework
2.2.5. GNOME Power Manager
2.2.6. NSS Shared Databases
2.2.7. Python
2.2.8. Java
2.2.9. Ruby
2.2.10. Perl
3. Compiling and Building
3.1. GNU Compiler Collection (GCC)
3.1.1. Language Compatibility
3.1.2. Object Compatibility and Interoperability
3.1.3. Running GCC
3.1.4. GCC Documentation
3.2. Autotools
3.2.1. Autotools Plug-in for Eclipse
3.2.2. Configuration Script
3.2.3. Autotools Documentation
3.3. build-id Unique Identification of Binaries
4. Debugging
4.1. ELF Executable Binaries
4.2. Installing Debuginfo Packages
4.2.1. Installing Debuginfo Packages for Core Files Analysis
4.3. GDB
4.3.1. Simple GDB
4.3.2. Running GDB
4.3.3. Conditional Breakpoints
4.3.4. Forked Execution
4.3.5. Debugging Individual Threads
4.3.6. Alternative User Interfaces for GDB
4.4. Variable Tracking at Assignments
4.5. Python Pretty-Printers
5. Profiling
5.1. Valgrind
5.1.1. Valgrind Tools
5.1.2. Using Valgrind
5.1.3. Additional information
5.2. OProfile
5.2.1. Using OProfile
5.2.2. OProfile in Red Hat Enterprise Linux 7
5.2.3. OProfile Documentation
5.3. SystemTap
5.3.1. Additional Information
5.4. Performance Counters for Linux (PCL) Tools and perf
5.4.1. Perf Tool Commands
5.4.2. Using Perf
5.5. ftrace
5.5.1. Using ftrace
5.5.2. ftrace Documentation
6. Documentation Tools
6.1. Doxygen
6.1.1. Doxygen Supported Output and Languages
6.1.2. Getting Started
6.1.3. Running Doxygen
6.1.4. Documenting the Sources
6.1.5. Resources
A. Appendix
A.1. mallopt
B. Revision History