rhel-devtools-en-3/0040755000076400007640000000000010063404332012502 5ustar jhajharhel-devtools-en-3/index.html0100744000076400007640000000764307734710337014527 0ustar jhajha Red Hat Enterprise Linux 3

Red Hat Enterprise Linux 3

Developer Tools Guide

ISBN: N/A
Table of Contents
1. Overview of Red Hat Enterprise Linux Developer Tools
2. Basic Principles of the Tools
2.1. Compiler and Development Tools
2.2. Libraries
2.3. Auxiliary Development Tools
2.4. gcc, the GNU Compiler Collection
2.5. cpp, the GNU Preprocessor
2.6. as, the GNU Assembler
2.6.1. Object Files
2.6.2. Assembler Directives
2.7. ld, the GNU Linker
2.8. gcov, the Test Coverage Tool
2.9. gdb, the Debugging Tool
2.10. make, the GNU Recompiling Tool
2.10.1. Example Makefile
2.11. binutils, the GNU Binary Utilities
2.12. Using info, the Documentation Tools
2.12.1. Reading info Documentation
2.13. Learn More About the Tools
3. Developing with Red Hat Enterprise Linux Developer Tools
3.1. Create Source Code
3.2. Compile, Assemble, and Link from Source Code
3.3. Run the Executable
3.4. Debug the Executable
3.5. Assembler Listings
3.6. Disassembling
Index
rhel-devtools-en-3/legalnotice.html0100744000076400007640000000601607734710337015677 0ustar jhajha

      1801 Varsity Drive
      Raleigh NC 27606-2072 USA
      Phone: +1 919 754 3700
      Phone: 888 733 4281
      Fax: +1 919 754 3701
      PO Box 13588
      Research Triangle Park NC 27709 USA
    

Manual identifier:

Red Hat is a registered trademark and the Red Hat Shadow Man logo, RPM, and the RPM logo are trademarks of Red Hat, Inc.

Linux is a registered trademark of Linus Torvalds.

All other trademarks and copyrights referred to are the property of their respective owners.

Copyright © 2003 by Red Hat Inc. This material may be distributed only subject to the terms and conditions set forth in the Open Publication License, V1.0 or later (the latest version is presently available at http://www.opencontent.org/openpub/).

HTML, PDF, and RPM versions of the manuals are available on the Documentation CD and online at http://www.redhat.com/docs/.

The GPG fingerprint of the security@redhat.com key is:

CA 20 86 86 2B D6 9D FC 65 F6 EC C4 21 91 80 CD DB 42 A6 0E

rhel-devtools-en-3/ch-overview.html0100744000076400007640000000775007734710337015655 0ustar jhajha Overview of Red Hat Enterprise Linux Developer Tools

Chapter 1. Overview of Red Hat Enterprise Linux Developer Tools

This manual introduces you to the Red Hat Enterprise Linux Developer Tools and its documentation set. After you read this, refer to the following documentation for details about the Red Hat Enterprise Linux Developer Tools:

HTML, PDF, and RPM versions of the manuals are available on the Documentation CD and online at http://www.redhat.com/docs/.

For more information on the tools and their history, see the following websites:

rhel-devtools-en-3/ch-basic-principles.html0100744000076400007640000001440207734710337017226 0ustar jhajha Basic Principles of the Tools

Chapter 2. Basic Principles of the Tools

Red Hat Enterprise Linux Developer Tools's C and C++ compilers, macro-assembler, debugger, binary utilities, libraries, and other development tools provide productivity, flexibility, performance, and portability. This chapter begins with a summary of the tools, then describes each tool in more detail.

To use a tool, open your system's terminal shell window and enter the tool's name as a command (gcc, for instance, invokes the compiler. For a summary of the Red Hat Enterprise Linux Developer Tools, refer to Section 2.1 Compiler and Development Tools, Section 2.2 Libraries, and Section 2.3 Auxiliary Development Tools.

To learn about working with the tools, refer to Chapter 3 Developing with Red Hat Enterprise Linux Developer Tools.

2.1. Compiler and Development Tools

The following lists the main tools for developing projects with Red Hat Enterprise Linux Developer Tools.

ToolDescription
cppC preprocessor (refer to Section 2.5 cpp, the GNU Preprocessor; and Using cpp, the C Preprocessor)
diff, diff3, sdiffComparison tools for text files.
gccISO-conforming compiler collection (refer to Section 2.4 gcc, the GNU Compiler Collection and Using the GNU Compiler Collection (GCC))
g++A frontend to gcc that defaults to interpreting files as being C++ source files even if they look like C source files
gcovCoverage analyzer, for testing code for efficiency and performance, and for use as a profiling tool (refer to Using the GNU Compiler Collection (GCC))
gdb -nwDebugger for debugging with command line input (refer to Section 2.9 gdb, the Debugging Tool and Debugging with GDB)
gdbDebugger for making applications work better (refer to Debugging with GDB)
ldLinker (refer to Section 2.7 ld, the GNU Linker and Using ld, the Gnu Linker)
makeCompilation control program (refer to Section 2.10 make, the GNU Recompiling Tool)
patchInstallation tool for source fixes

rhel-devtools-en-3/s1-libraries.html0100744000076400007640000000572707734710337015716 0ustar jhajha Libraries

2.2. Libraries

LibraryDescription
libcANSI C runtime library
libmC math subroutine library
libstdc++C++ class library

rhel-devtools-en-3/s1-auxiliary-dev.html0100744000076400007640000001377007734710337016522 0ustar jhajha Auxiliary Development Tools

2.3. Auxiliary Development Tools

The following components are also provided for general development:

ComponentDescription
asAssembler (refer to Section 2.6 as, the GNU Assembler and Using as, the Gnu Assembler)
infoOnline documentation tools (refer to Section 2.12 Using info, the Documentation Tools)
manman pages, the standard UNIX online documentation

The GNU binary utilities provide functionality beyond the main development tools (refer to Using binutils, the Gnu Binary Utilities).

UtilityDescription
addr2lineConverts addresses into file names and line numbers
arCreates, modifies and extracts from object code archives
c++filtDemangles and deciphers encoded C++ symbol names
dlltoolCreates files for builds, using dynamic link libraries (DLLs)
nmLists symbols from object files
objcopyCopies and translates object files
objdumpDisplays information from object files
ranlibGenerates index to archive contents
readelfDisplays information about ELF format object files
sizeLists file section sizes and total sizes
stringsLists printable strings from files
stripDiscards symbols

rhel-devtools-en-3/gcc-compilers.html0100744000076400007640000001603007734710337016135 0ustar jhajha gcc, the GNU Compiler Collection

2.4. gcc, the GNU Compiler Collection

The GNU Compiler Collection (GCC), is a complete set of tools for compiling programs written in C, C++, Objective C, or languages for which you have installed front-ends. The GNU compiler uses the following utilities:

To invoke the compiler, type:

gcc option, option...

Each option signifies input that allows you to control how the program compiles (for example, you can interrupt a compile process at intermediate stages). Use commas to separate options. There are many options available that provide specific types of compiled output, some for preprocessing, others controlling assembly, linking, optimization, debugging, and still others for target-specific functions. For instance, call the compiler with a -v option to refer to precisely which options are in use for each compilation pass.

gcc implicitly recognizes the following file extensions:

When referring to C++ compilation, g++ is its customary name. Because there is only one compiler, it is also accurate to use the gcc call, no matter what the language context. The g++ distinction is more useful when the emphasis is on compiling C++ programs, with the GNU compiler acting not merely as a preprocessor, but building object code directly from your C++ program source.

There is no intermediate C version of the program; avoiding an intermediate C representation of the program means that you get better object code and better debugging information. The GNU debugger works with this information in the object code to give you comprehensive C++ source-level editing capabilities.

When you compile C or C++ programs, the compiler inserts a call at the beginning of main to a _ _main support subroutine. To avoid linking to the standard libraries, specify the -nostdlib option. (Including -lgcc at the end of your compiler command line resolves this reference and links only with the compiler support library libgcc.a; ending your command's input with it ensures that you get a chance to link first with any of your own special libraries).

_ _main is the initialization routine for C++ constructors. Because GNU C is meant to interoperate with GNU C++, even C programs must have this call; otherwise, C++ object files linked with a C main might fail.

Compilation can involve up to four stages, always in the following order:

The first three stages apply to an individual source file: preprocessing establishes the type of source code to process, compiling produces an object file, assembling establishes the syntax that the compiler expects for symbols, constants, expressions and the general directives. The last stage, linking, completes the compilation process, combining all object files (newly compiled, and those specified as input) into an executable file.

For more information on the GNU compiler and its options, refer to Using the GNU Compiler Collection (GCC).

rhel-devtools-en-3/s1-cpp-gnu.html0100744000076400007640000001141007734710337015275 0ustar jhajha cpp, the GNU Preprocessor

2.5. cpp, the GNU Preprocessor

cpp is a C-compatible macro preprocessor that works with the GNU compiler to direct the parsing of C preprocessor directives. Preprocessing directives are the lines in your program that start with a # directive name (a # sign followed by an identifier). For instance, cpp merges #include files, expands macro definitions, and processes #ifdef sections. Another example is #define, a directive that defines a macro (#define must be followed by a macro name and the macro's intended expansion).

To refer to the output of cpp, invoke gcc with the -E option; the preprocessed file will print on stdout

The C preprocessor provides the following separate facilities:

There are two convenient options to assemble files that require C-style preprocessing. Both options depend on using the compiler driver program, gcc, instead of directly calling the assembler.

For more information on cpp, refer to Using cpp, the C Preprocessor.

rhel-devtools-en-3/s1-as-gnu.html0100744000076400007640000001162707734710337015130 0ustar jhajha as, the GNU Assembler

2.6. as, the GNU Assembler

as, the GNU assembler, translates text-based assembly language source files into binary-based object files. Normally it operates without you being aware of it, as the compiler driver program (gcc) invokes it automatically. However, if you are creating your own assembler source files, you must invoke as directly.

If, while using gcc, you want to pass special command-line options to the assembler to control its behavior, you need to use the `-Wa,<text>' command-line option. This option passes <text> directly to the assembler's command line. For example:

gcc -c -g -O -Wa,-alh,-L file.c

passes the -alh command line option on to the assembler. (This causes the assembler to emit a listing file that shows the assembler source generated by the compiler for each line of the C source file file.c).

For more information, refer to Using as, the Gnu Assembler.

2.6.1. Object Files

The assembler creates object files that, by convention, have the .o extension. These are binary files that contain the assembled source code, information to help the linker integrate the object file into an executable program, debugging information and tables of all of the symbols used in the source code.

Special programs exist to manipulate object files. For example, objdump can disassemble an object file back into assembler source code and ar can group together multiple object files into an archive or library file.

2.6.2. Assembler Directives

Assembler directives are commands inside the assembler source files that control how the object file is generated. They are also known as pseudo-ops, or pseudo-operations, because they can look like commands in the assembler programming language.

Assembler directives always start with a period (.). The rest of their name is letters, usually in lower case. They have a wide range of different uses, such as specifying alignments, inserting constants into the output, and selecting in which sections of the output file the assembled machine instructions are placed.

rhel-devtools-en-3/s1-ld-gnu.html0100744000076400007640000001400507734710337015115 0ustar jhajha ld, the GNU Linker

2.7. ld, the GNU Linker

The GNU linker, ld, combines multiple object files together and creates an executable program from them. It does this by resolving references between the different object files, grouping together similar sections in the object files into one place, arranging for these sections to be loaded at the correct addresses in memory, and generating the necessary header information at the start of a file that allows it to be run.

The linker moves blocks of bytes of your program to their load-time addresses. These blocks slide to their addresses as rigid units; their length does not change and neither does the order of the bytes within them. Such a rigid unit is called a section. Assigning runtime addresses to sections is called relocation. It includes the task of adjusting mentions of object-file addresses so they refer to the proper runtime addresses.

Each section in an object file has a name and a size. Most sections also have an associated block of data, known as the section contents. A section may be marked as allocatable, meaning that space should be reserved for it in memory when the executable starts running. A section may also be marked as loadable, meaning that its contents should be loaded into memory when the executable starts. A section which is allocatable but not loadable will have a zero-filled area of memory created for it.

A section, which is neither loadable nor allocatable, typically contains some sort of debugging information. Every loadable or allocatable output section has two addresses associated with it. The first is the virtual memory address (VMA), the address the section will have when the executable is running. The second is the load memory address (LMA), which is the address in memory where the section will loaded. In most cases the two addresses will be the same. An example of when they might be different is when a data section is loaded into ROM, and then copied into RAM when the program starts. This technique is often used to initialize global variables in a ROM-based system. In this case, the ROM address would be the LMA, and the RAM address would be the VMA. To review the sections in an object file, use the objdump binary utility with the -h option.

Every object file also has a list of symbols, known as the symbol table. A symbol may be defined or undefined. Each symbol has a name, and each defined symbol has an address. If you compile a C or C++ program into an object file, you get a defined symbol for every defined function and global or static variable. Every undefined function or global variable, which is referenced in the input file, will become an undefined symbol. You can refer to the symbols in an object file by using the nm binary utility, or by using the objdump binary utility with the -t option.

The linker is controlled by a linker script which is a text file containing commands in a simple language. The main purpose of the script is to describe how sections in the input files should be mapped into sections in the output file and to control memory layout of the output file. When necessary, the linker script also directs the linker to perform other operations.

The linker uses a default script that compiles into the linker executable, if you do not supply one via the -T command line option. Use the --verbose option to display the default linker script. Certain options (such as -r or -N) affect the default linker script. Linker scripts are written in a superset of AT&T's Link Editor Command Language syntax.

For more information, refer to Using ld, the Gnu Linker.

rhel-devtools-en-3/s1-gcov.html0100744000076400007640000000477207734710337014677 0ustar jhajha gcov, the Test Coverage Tool

2.8. gcov, the Test Coverage Tool

gcov, the code coverage/basic block profile display tool, enables you to analyze the basic block profile of your program by recording how often each basic block is executed. This information enables you to determine the sections of code on critical paths and the code blocks that are not executed at all.

rhel-devtools-en-3/s1-gdb-debugging.html0100744000076400007640000000671607734710337016426 0ustar jhajha gdb, the Debugging Tool

2.9. gdb, the Debugging Tool

GDB, the GNU debugger, has the principal purpose of allowing you to stop your program before it terminates. If your program terminates, the debugger helps you determine where it failed. To debug a file named file.c, first compile the file using gcc -g file.c as a command, where -g produces the debugging information. You then run the debugger. Refer to Section 3.4 Debug the Executable, for the steps involved in debugging.

Set breakpoints with the breakpoint command.

Navigate through the program with the step command or the next command.

The debugger debugs threads, signals, trace information, and other data in a program. Each time your program performs a function call, a block of data (the stack frame), which shows the location of the call, the arguments, and the local variables of the function is generated. The debugger allows you to examine the stack frame to get your program to work.

For more information, refer to Debugging with GDB.

rhel-devtools-en-3/s1-make.html0100744000076400007640000002032007734710337014641 0ustar jhajha make, the GNU Recompiling Tool

2.10. make, the GNU Recompiling Tool

make, the GNU recompiling tool, determines automatically which pieces of a large program you need to recompile and then issues commands to recompile them. make conforms to IEEE Standard 1003.2-1992 (POSIX.2) and is compatible with any programming language whose compiler can run with command line input from a shell. make is not limited only to building programs; it can be used for any task in which some files must update automatically whenever associated files change.

To use make, you must write a file (a makefile) that describes the relationships among files in your program and provides commands for updating each file. In a program, typically, the executable file is updated from object files, which are in turn made by compiling source files.

When using make to recompile an executable, the result may change source files in a directory. If you changed a header file, to be safe, you must recompile each source file that includes that header file. Each compilation produces an object file corresponding to the source file. If any source file has been recompiled, all the object files, whether newly made or saved from previous compilations, must be linked together to produce the new executable.

make uses the makefile database and the last modified files to decide which of the other files needs updating. For each of those files, make implements the commands recorded in the data base of the makefile. The makefile has rules which explain how and when to remake certain files that are the targets of a particular rule. A simple makefile rule has the following form:

target... : dependency... command

target is usually the name of a file that a program generates; examples of targets are executable or object files. A target can also be the name of an action to carry out, such as with the clean command (a command that, deletes all files from a build directory before building). A dependency is a file that is used as input to create the target. A target often depends on several files. command is activated by make wnen dependancy has changed. A rule may have more than one command, with each command on its own line. Usually a command is in a rule with dependencies and serves to create a target file if any dependencies change. However, the rule that specifies commands for the target does not require dependencies; for instance, the rule containing the delete command that associates with the target, clean, does not have dependencies. make activates commands on the dependencies to create or to update the target. A rule can also explain how and when to activate a command. A makefile can contain other text besides rules; a simple makefile requires only rules. Rules generally follow the same pattern.

Note that every command line in a makefile must begin with a tab character.

2.10.1. Example Makefile

edit : main.o kbd.o command.o display.o insert.o search.o \
                files.o utils.o
        cc -o edit main.o kbd.o command.o display.o insert.o \
                search.o files.o utils.o

main.o : main.c defs.h
        cc -c main.c

kbd.o : kbd.c defs.h command.h
        cc -c kbd.c

command.o : command.c defs.h command.h
        cc -c command.c

display.o : display.c defs.h buffer.h
        cc -c display.c

insert.o : insert.c defs.h buffer.h
        cc -c insert.c

search.o : search.c defs.h buffer.h
        cc -c search.c

files.o : files.c defs.h buffer.h command.h
         cc -c files.c

utils.o : utils.c defs.h
         cc -c utils.c

clean :
        rm edit main.o kbd.o command.o display.o insert.o \
                search.o files.o utils.o

The targets in the example makefile include the executable file, edit, and the main.o and kbd.o object files. main.c and defs.h are the dependency files. Each .o file is both a target and a dependency. When a target is a file, it needs to be recompiled or relinked if any of its dependencies change. You must first update any dependencies that automatically generate. In the example Makefile, edit depends on eight object files; the object file, main.o, depends on the source file, main.c, and on the defs.h header file. A shell command follows each line that contains a target and dependencies, saying how to update the target file; a tab character must come at the beginning of every command line to distinguish command lines from other lines in the makefile. make does not know anything about how the commands work; it is up to you to supply commands that update the target file properly. All make does is execute the commands in the rule you have specified when the target file needs updating.

For more details, refer to Using make.

rhel-devtools-en-3/s1-gnu-bin-utils.html0100744000076400007640000001144407734710337016430 0ustar jhajha binutils, the GNU Binary Utilities

2.11. binutils, the GNU Binary Utilities

binutils, the GNU binary utilities, include ar, nm, objcopy, objdump, ranlib, size, strings, and strip. For targets that use the ELF file format, there is also a tool called readelf.

There are three binary utilities, addr2line, windres, and dlltool, that are for use with Cygwin, the porting layer application for Win32 development. The most important of the binary utilities are objcopy and objdump.

rhel-devtools-en-3/s1-using-info.html0100744000076400007640000001452007734710337016007 0ustar jhajha Using info, the Documentation Tools

2.12. Using info, the Documentation Tools

info provides the sources for documentation for the GNU tools; it requires the following tools, including the TeX tools.

Texinfo, texindex, texi2dvi

Documentation formatting tools. Texinfo requires TEX, the free technical documentation formatting tool written by Donald Knuth. Refer to Texinfo: The GNU Documentation Format (ISBN: 1-882114 67 1).

makeinfo, info

Online documentation tools.

man pages

Includes documentation on all the tools and programs in this release.

FLEX: A Fast Lexical Analyzer Generator

Generates lexical analyzers suitable for GCC and other compilers. Refer to Flex: The Lexical Scanner Generator (ISBN: 1-882114 21 3).

Using and Porting GNU CC

Contains information about requirements for putting GCC on different platforms, or for modifying GCC; includes documentation from Using the GNU Compiler Collection (GCC).

BYacc

Discusses the Berkeley Yacc parser generator. Refer to Bison Manual: Using the YACC-compatible Parser Generator (ISBN: 1-882114 44 2).

Texinfo: The GNU Documentation Format

Details TEX and the printing and generating of documentation, as well as how to write manuals in the TEX style.

Configuration program

Describes the configuration program that Red Hat Enterprise Linux Developer Tools uses.

GNU Coding Standards

Elaborates on the coding standards with which the GNU projects develop.

GNU gprof

Details the GNU performance analyzer (only for the Solaris systems).

You have the freedom to copy the documentation using the accompanying copyright statements, which include the necessary permissions. To get the documentation in HTML or printable form, refer to http://www.fsf.org/doc/doc.html and http://www.fsf.org/doc/other-free-books.html.

For more information on using info tools (requiring the TEX tools), refer to Using info.

2.12.1. Reading info Documentation

Browse through the documentation using either Emacs or the info documentation browser program. The information is in nodes, which correspond to the sections of a printed book. Follow them in sequence, as in books, or, using the hyperlinks, find the node that has the information you need. info has hot references (if one section refers to another section, info takes you directly to that other section, but gives you the ability to return easily. You can also search for particular words or phrases. Use info by typing its name at a shell prompt; no options or arguments are necessary. Check that info is in your shell path. If you have problems running info, contact your system administrator.

To get help with using info, type h for a programmed instruction sequence, or [Ctrl]-[h] for a short summary of commands. To stop using info, type [q].

rhel-devtools-en-3/s1-learn-more.html0100744000076400007640000000521307734710337015771 0ustar jhajha Learn More About the Tools

2.13. Learn More About the Tools

There are many sources to teach you more about GNU tools:

rhel-devtools-en-3/ch-work.html0100744000076400007640000000626407734710337014770 0ustar jhajha Developing with Red Hat Enterprise Linux Developer Tools

Chapter 3. Developing with Red Hat Enterprise Linux Developer Tools

Use the tutorials in this chapter to learn about standard native development with the tools.

See http://www.redhat.com/docs/manuals/gnupro/ for details about the tools.

3.1. Create Source Code

To start, create the following sample source code file and save it as hello.c. The following sections show you how to compile this file to form an executable and how to run it.

#include <stdio.h>

int a, c;

static void
foo (int b)
{
  c = a + b;
  printf ("%d + %d = %d\n", a, b, c);
}

int
main (void)
{
  int b;

  a = 3;
  b = 4;

  printf ("Hello, world!\n");

  foo (b);

  return 0;
}

Example 3-1. Source code to save as hello.c

rhel-devtools-en-3/s1-compile-assemble-link.html0100744000076400007640000000575307734710337020115 0ustar jhajha Compile, Assemble, and Link from Source Code

3.2. Compile, Assemble, and Link from Source Code

To compile the code, use the following command:

gcc -g hello.c -o hello

The -g option generates debugging information and -o specifies the name of the executable to be produced. Both of these can be omitted. Other useful options include -O to enable standard optimizations and -O2 for extensive optimizations. If no -O is specified, GCC will not optimize.

See Using the GNU Compiler Collection (GCC) for additional basic compiler information.

rhel-devtools-en-3/s1-run-exec.html0100744000076400007640000000514607734710337015463 0ustar jhajha Run the Executable

3.3. Run the Executable

To run the program, use the following example:

./hello

The program generates

hello world!
3 + 4 = 7

and returns when the program exits.

rhel-devtools-en-3/s1-debug-exec.html0100744000076400007640000002022007734710337015733 0ustar jhajha Debug the Executable

3.4. Debug the Executable

To start GDB, use the following commands:

gdb hello

After the initial copyright and configuration information, GDB returns its own prompt, (gdb). The following is a sample debugging session:

  1. To set a breakpoint, type:

    break main

    The following output displays:

    Breakpoint 1 at 0x132: file hello.c, line 15.

    Note the exact address and line number may vary, depending upon the target architecture being debugged and the exact layout of the C code in the hello.c file.

  2. To run the program, type:

    run

    The following output displays (when the program stops at a breakpoint):

        Starting program: hello
        Breakpoint 1, main () at hello.c:15
        15 a = 3;

    Again note that the exact line number and instruction displayed is dependent upon the source code layout.

  3. To print the value of variable, a, type:

    print a

    The following output displays:

    $1 = 0
  4. To execute the next command, type next:

    next

    The following output displays:

        16 b = 4;
  5. To display the value of a again, type:

    print a

    The following output displays:

        $2 = 3
  6. To display the program being debugged, type:

    list

    The following output displays:

    12         int
    13         main (void)
    14         {
    15           int b;
    16
    17           a = 3;
    18           b = 4;
    19
    20           printf ("Hello, world!\n");
    21
    22           foo (b);
    23
    24           return 0;
    25         }
  7. To list a specific function code, use the list command with the name of the function to be display. For example, type:

    list foo

    The following output displays:

     1          #include <stdio.h>
     2
     3          int a, c;
     4
     5          static void
     6          foo (int b)
     7          {
     8            c = a + b;
     9            printf ("%d + %d = %d\n", a, b, c);
    10          }
  8. To set a breakpoint at line seven, enter the following input (set a breakpoint at any line by entering break linenumber, where linenumber is the specific line number to break):

    break 8

    The following output displays:

    Breakpoint 2 at 0xf4: file hello.c, line 8.
  9. To resume normal execution of the program until the next breakpoint, type:

    continue

    The following output displays:

    Continuing.
    Hello, world!
    Breakpoint 2, foo (b=4) at hello.c:8
    8 c = a + b;
  10. To step to the next instruction and execute it, type:

    step

    The following output displays:

    9 printf ("%d + %d = %d\n", a, b, c);
  11. To display the value of c, type:

    print c

    The following output displays:

    $3 = 7
  12. To see how you got to where you are, type:

    backtrace

    The following output displays:

    #0 foo (b=4) at hello.c:9
    #1 0x15c in main () at hello.c:18
  13. To exit the program and quit the debugger, type:

    quit
rhel-devtools-en-3/s1-assembler-listings.html0100744000076400007640000001123507734710337017540 0ustar jhajha Assembler Listings

3.5. Assembler Listings

The compiler normally turns a text based source file into a binary object file. It is possible however to instruct it to just convert the source code into assembler and stop there. The -S option does this. It also possible to instruct the compiler to produce an assembler listing as well as an object file. That can be done as follows:

gcc -c -O2 -Wa,-al hello.c

-c tells GCC to compile or assemble source files, but not to link them. -O2 produces more fully optimized code. These are both optional. -Wa tells the compiler to pass the comma-separated list of options which follows it on to the assembler. The -al option is an assembler option to request an assembler listing.

This example shows a partial excerpt of an assembler listing for an x386-based target.

  29                            .text
  30 0027 90                    .p2align 2,,3
  31                    .globl main
  32                            .type   main,@function
  33                    main:
  34 0028 55                    pushl   %ebp
  35 0029 89E5                  movl    %esp, %ebp
  36 002b 83EC08                subl    $8, %esp
  37 002e 83E4F0                andl    $-16, %esp
  38 0031 83EC0C                subl    $12, %esp
  39 0034 680E0000              pushl   $.LC1
  39      00
  40 0039 C7050000              movl    $3, a
  40      00000300
  40      0000
  41 0043 E8FCFFFF              call    puts
  41      FF
  42 0048 C7042404              movl    $4, (%esp) 

Example 3-2. Assembly listing excerpt

It also possible to produce an assembler listing that intermixes the original input source code with the assembler instructions produced by the compiler. This can help track down bugs, discover how the compiler handles certain language constructs (such as function calls) and to learn more about assembly language. To do this, just add an h to the assembler option like this:

gcc -c -g -O2 -Wa,-alh hello.c
rhel-devtools-en-3/s1-disassembling.html0100744000076400007640000000543407734710337016561 0ustar jhajha Disassembling

3.6. Disassembling

The objdump tool can be used to to produce an disassembly of an object or executable file. It is used like this:

objdump -d hello.o

You could also use the -D option to produce a dissassembly of all of the sections in an object file, not only those that have been marked as containing instructions, and -z to tell objdump to disassemble instructions whose value is zero. (Normally such instructions are just skipped).

rhel-devtools-en-3/generated-index.html0100744000076400007640000001523507734710337016457 0ustar jhajha Index

Index

A

as (GNU assembler)
overview, as, the GNU Assembler
assembler directives, Assembler Directives
assembler listings
overview, Assembler Listings
auxiliary development tools
overview, Auxiliary Development Tools

B

binutils (GNU binary utilities)
overview, binutils, the GNU Binary Utilities

C

compile, assemble, and link tutorial, Compile, Assemble, and Link from Source Code
creating source code tutorial, Create Source Code

D

debug the executable tutorial, Debug the Executable
disassembling
overview, Disassembling

G

gcc
overview, gcc, the GNU Compiler Collection, cpp, the GNU Preprocessor
gcov
overview, gcov, the Test Coverage Tool
gdb (GNU debugger)
overview, gdb, the Debugging Tool

I

info (documentation tools)
overview, Using info, the Documentation Tools

L

ld (GNU linker)
overview, ld, the GNU Linker
libraries
overview, Libraries

M

make
example makefile, Example Makefile
overview, make, the GNU Recompiling Tool

O

objdump
disassembles an object file, Disassembling
object files, Object Files

R

run the executable tutorial, Run the Executable

T

tools
basic principles, Basic Principles of the Tools
overview, Overview of Red Hat Enterprise Linux Developer Tools, Compiler and Development Tools
tutorial
compile, assemble, and link, Compile, Assemble, and Link from Source Code
create source code, Create Source Code
debug the executable, Debug the Executable
overview, Developing with Red Hat Enterprise Linux Developer Tools
run the executable, Run the Executable
rhel-devtools-en-3/rhdocs-man.css0100744000076400007640000002132007666650416015270 0ustar jhajha/* CSS stylesheet for the HTML versions of Red Hat Documentation Created by Tammy Fox */ body { background-color: #ffffff; color: #000000; margin: 0; padding: 0; font-family: helvetica, arial,sans-serif; font-size: 12pt; /* needed so buttons created with css don't bleed into text */ line-height: 1.3; } body.book, body.article, body.chapter, body.part, body.preface, body.sect1, body.index, body.colophon { font-family: helvetica, arial,sans-serif; font-size: 12pt; background-color: #ffffff; margin: 0; padding : 0; } p, td, th, .variablelist { font-family: helvetica, arial, sans-serif; font-size: 12pt; /* left must be 0 so it lines up */ margin : 10px 0px 10px 0px; } div.article p { font-family: helvetica, arial, sans-serif; font-size: 12pt; /* if in article made from XML left must be 10 so it lines up */ margin : 10px 10px 10px 10px; } li { font-family: helvetica, arial, sans-serif; font-size: 12pt; } table { width: 90%; font-family: helvetica, arial, sans-serif; font-size: 12pt; margin : 0px 0px 0px 0px; } table.note, table.tip, table.important, table.caution, table.warning { width: 95%; font-family: helvetica, arial, sans-serif; font-size: 12pt; border: 2px solid #B0C4DE; background-color: #F0F8FF; color: #000000; /* padding inside table area */ padding: 0.5em; margin-bottom: 0.5em; margin-top: 0.5em; } /* set width smaller is IE is happy */ ul table.note, ul table.tip, ul table.important, ul table.caution, ul table.warning, ol table.note, ol table.t\ip, ol table.important, ol table.caution, ol table.warning { width: 95%; } .computeroutput, .command { font-family: courier, courier new, monospace; font-size: 12pt; } .userinput { font-family: courier, courier new, monospace; font-size: 12pt; font-weight: bold; } table.screen { width: 95%; font-family: courier, courier new, monospace; font-size: 12pt; border: 2px solid #A9A9A9; background-color: #DCDCDC; color: #000000; padding: 0.5em; margin-bottom: 0.5em; margin-top: 0.5em; } table.calstable { width: 95%; font-family: helvetica, arial, sans-serif; font-size: 12pt; background-color: #DCDCDC; color: #000000; } table.calstable td { font-family: helvetica, arial, sans-serif; font-size: 12pt; border: 1px solid #A9A9A9; background-color: #DCDCDC; color: #000000; padding: 0.5em; margin-bottom: 0.5em; margin-top: 2px; margin : 0px 0px 0px 10px; } table.calstable th { border: 2px solid #A9A9A9; background-color: #A9A9A9; color: #000000; } .navheader, .navfooter { background-color: #ffffff; color: #000000; /* need top margin so title line isn't touching the top */ margin : 10px 20px 0px 20px; font-family: helvetica, arial,sans-serif; font-size: 12pt; } div.navheader hr, div.navfooter hr { background-color: #CCCCCC; margin: 0px 0px 0px 0px; height: 1px; border-style: none; } div.navheader table, div.navfooter table { width: 95%; background-color: #ffffff; margin: 0px 0px 0px 0px; padding: 0; font-family: helvetica, arial,sans-serif; font-size: 12pt; } body>div.navheader table, body>div.navfooter table { /* Hidden from IE */ width: 100%; } /* top hr on index page is not in a div so it needs div margins */ hr { background-color: #CCCCCC; margin: 0px 10px 0px 10px; height: 1px; border-style: none; } h2, h2.indexdiv { font-family: helvetica, arial, sans-serif; font-size: 12pt; font-weight: bold; color: #990000; } h3 { font-family: helvetica, arial, sans-serif; font-size: 12pt; font-weight: bold; line-height: 1.4em; color: #990000; } h4 { font-family: helvetica, arial, sans-serif; font-size: 12pt; font-weight: bold; color: #990000; } h5 { font-family: helvetica, arial, sans-serif; font-size: 12pt; font-weight: bold; color: #990000; } h6 { font-family: helvetica, arial, sans-serif; font-size: 12pt; font-weight: bold; color: #666666; } a:link { color: #000066; } a:visited { color: #333399; } /* not in a div, so need standard left margin */ .footnotes { width: 95%; margin : 10px 20px 10px 20px; font-size: 12pt; } div.preface, div.colophon, div.chapter, div.appendix, div.index, div.partintro, div.legalnotice { margin : 0px 20px 0px 20px; font-family: helvetica, arial, sans-serif; } /* A, B, etc. in Index */ div.indexdiv { font-family: helvetica, arial, sans-serif; } div.titlepage { margin : 0px 10px 0px 10px; font-family: helvetica, arial, sans-serif; } /* div.sect1 for an article doesn't have the extra padding from a div.chapter */ div.article div.sect1 { margin : 0px 10px 0px 10px; font-family: helvetica, arial, sans-serif; } /* div.sect1 on same page as div.chapter, etc. with margins and padding already */ div.chapter div.sect1, div.preface div.sect1, div.appendix div.sect1, div.colophon div.sect1 { margin : 0px 0px 0px 0px; font-family: helvetica, arial, sans-serif; padding: 0; } /* on separate page without div.chapter, so need same padding */ div.sect1 { margin : 0px 20px 0px 20px; font-family: helvetica, arial, sans-serif; } /* same as dev.sect1 except no padding because div.sect1 doesn't end before div.sect2, etc.*/ div.sect2, div.sect3, div.sect4 { margin : 0px 0px 0px 0px; font-family: helvetica, arial, sans-serif; padding: 0; } /* chapter, preface, and colophon titles don't have a class */ h1 { margin : 0px 0px 0px 0px; font-family: helvetica, arial, sans-serif; font-size: 18pt; font-weight: bold; color: #990000; } h1.sect1, h2.sect1 { /* already in div.sect1, so no margins */ margin : 0px 0px 0px 0px; font-family: helvetica, arial, sans-serif; font-size: 18pt; font-weight: bold; color: #990000; } h2.sect2, h2.title { /* already in div.sect1, so no margins */ margin : 0px 0px 0px 0px; font-family: helvetica, arial, sans-serif; font-size: 16pt; font-weight: bold; color: #990000; } h3.sect3, h3.title { /* already in div.sect1, so no margins */ margin : 0px 0px 0px 0px; font-family: helvetica, arial, sans-serif; font-size: 14pt; font-weight: bold; color: #990000; } h4.sect4, h5.sect5, h6.sect6 { /* already in div.sect1, so no margins */ margin : 0px 0px 0px 0px; font-family: helvetica, arial, sans-serif; font-size: 12pt; font-weight: bold; color: #990000; } /* book and article titles on index.html page and part title pages */ h1.title { font-family: helvetica, arial, sans-serif; font-size: 22pt; font-weight: bold; color: #990000; margin : 10px 10px 10px 10px; /* add padding so title is not touching top margin */ padding: 10 0 0; } .subtitle { font-family: helvetica, arial, sans-serif; font-size: 18pt; color:#666666; font-weight: bold; margin : 10px 10px 10px 10px; padding: 0; } b.othername { font-family: helvetica, arial, sans-serif; font-size: 18pt; color:#666666; font-weight: bold; margin : 10px 10px 10px 10px; padding: 0; } .copyright { font-family: helvetica, arial, sans-serif; font-size: 12pt; color:#666666; margin : 10px 10px 10px 10px; padding: 0; } isbn.isbn { font-family: helvetica, arial, sans-serif; font-size: 12pt; color:#666666; margin : 10px 10px 10px 10px; padding: 0; } .toc { font-family: helvetica, arial, sans-serif; font-size: 12pt; padding: 0; margin : 10px 20px 10px 20px; } .citetitle { font-family: helvetica, arial, sans-serif; font-size: 12pt; color:#666666; font-weight: bold; } div.qandaset big { font-family: helvetica, arial, sans-serif; font-size: 12pt; color: #990000; } .author { font-family: helvetica, arial, sans-serif; font-size: 12pt; color:#990000; font-weight: bold; margin : 10px; line-height: 1.4em; } /* make guibuttons look like real buttons */ .guibutton { color: #000000; font-family: helvetica, arial, sans-serif; background-color: #DCDCDC; padding: 1px 3px; font-size: 10pt; border: outset 2px; text-decoration: none; } rhel-devtools-en-3/figs/0040755000076400007640000000000007734712311013444 5ustar jhajharhel-devtools-en-3/figs/caution.png0100744000076400007640000000251107610647132015612 0ustar jhajhaPNG  IHDR"":G bKGD pHYs  ~tIME |IDATxMh\Uf2dt&Ydj"))-W"hHu!Q֍BڍjemIH&AEMMfZp?sogzZ+Gv$?߽ ɭKp%4^mΑ* R,̝۠$RhRݻ*PǕr4wHlRq5V+$Qs w_ֆ0fBmYG]t-OO.!B$̀± H044D?`4I$߿{X5>)XŎ-@FK `&a`ii" [grrV7ޢTUrޯ֚ u]؄iiq @A__/zHtz iZ7 ! #Tu?X6Ed[+J~*a]'.4 æVbz|4lm:Z GRLk ;&i@OaՒU"Ep%!%: )BBĞQ螈 k<@{K% ^BQ!6P=EE U =hRF}+0+~*)s s1PT\ٙϜ~q"L-Ǚ|7ou ^nxFLGaP8/m~ZsDyb/klړm!%StdLOӇ^$=x% jѷmLi9&ED/*gڝA($e$.5@ݹNN7n@ڄ;<8?s%sʠa{U%QiUE7 $;0eSq]>/7vCI(ةt~MZL.r3өYYSAUfĊ Jh"5vڼyX! b5# o[jߢr{FgHFc4k灢ԲcԿy 6%?z$.Fg6-!-Iۂ#C\` xڇ/šSA>aᬎ 7ۚil*CՎ^d #pH݇l[m aXCfM,kDܕGBr$q?mqdC8#d<#6CWES0+ƀ$+W!ՑYS50oW-zZ}U3 @_R4C0cKc0XY (+N`gWM*b0ےHdZ™Q:bĤIn`>AnPN6Q|1 \|<R*.p" qil4+M.*S]+' h,---Y)!椲 %B{LٿI\ٙ#zP4VVjq1.c!Hi .Z2=Wκ+RBECqmY}ubA+OUFɄP4@KZ[GDHAUӯ;b5Ml1#LuJ dןI*jIENDB`rhel-devtools-en-3/figs/logo_big2.png0100744000076400007640000000314507531246366016025 0ustar jhajhaPNG  IHDRPD!BtIME ' D; pHYs  ~PLTEZZGGGM'''怀օ,jjjkﱱ;; 8IDATxڭ۶ E TE>x=BJ'IVHhQ& FaItm" Xo+ͯ*"&\+ iܬ@"'z&ʅ.-F' h mEs,' \CED2)}V ^=YP3(V)@ hUhBW2#'{9PȻLz]vh82+arzž1W [Dvr?AR^.q:B!,;'emk8K+;Zmvmͨqv=9:]k_:ٳҝd./1Ctس"q#(.^;5?tF)N9KW,r%6t_L;:qعc~.E6ϦDhlۆۄ( ($'d{Q2~8?*Ip0l2ѤrRJ5+C5&7L]3?nyk\V)8e='P@x9W&_!uIENDB`rhel-devtools-en-3/figs/logo_sm.png0100744000076400007640000000221407531246366015615 0ustar jhajhaPNG  IHDR("k9tIME (l pHYs  ~PLTEZZGGGM'''怀օ,jjjkﱱ;; 8IDATxڍ떃 CDPPVh\=??'$EC.HQA@"~G4](Rͳ#v cSM {e.p)F܉%R +YVFߙ X}"iϝgQ "&RPd;0-j+ˁY%q{5/ڪ}@D gZ37w@u1Ƿ?)/x:ZZàqr,Saז~pFش{%Uk"5̞GgOGO"IM3x<^0]򐜒1!@MXs!+߶ZhhjY9btn\ىzɌX}~<^/^ oWLjR &=1J>ln}/`kR2G <^#$& ќ=Wv$艧ϯD37o;A'%q J`p-` 9A/;X;Ȳ@&l6S[{+jU%aȣJ~ʖ,Fj)ׁQBUUEp) 9s-_o>ǑSW9VԩSٷc"Ib't=wE$ ĒUT]=|%7>j[v,Hq},v>2:B 8rӎ\»"nOЮz=gʘL&^/>nubTDՕ<#5]])2g4Na0B NG|.{X׫F׍>:[F'~ھ>`g8qFbD.XFEҬ3͝;).>`Ŋθ81161|0=7TI[+VDh {'xgF=1F[k=- A|| xq1u;&F?<.D$Ysim+A~,TGEE9n'ݚmkqgv/Y5)Oy~f#ẃ}Ev OĜ9>#y |xw`f:nLI2fQu>[_8:W i')) !Fb}={~sh&n\f'qwM%~gpEE W z -1`$LO5q!Ol/ZbߎI kBv~4fӳTD CҒN)h|iB0%g9$m9C?~cB| =9ϗ19 T~IENDB`rhel-devtools-en-3/figs/rhlogo-chapter-title.png0100744000076400007640000001432407576523770020226 0ustar jhajhaPNG  IHDR@nVAXbKGD pHYs  ~tIME 2aIDATx=pF>F29U&!7ф.!|UWu)gvyDޝLw6[r\=Khl+i.XQZZ8ɨ."55z$AU$@w |_k      bQ&$d T5-?. i<—Tn]jBRAIP nHXG7nkaϓ&& .4ML^m{L!4 &/nN]dB \ e_ f u[Ac"< [\ FEA Fs t@uDDi8cݾjZ* Kvq3M1QxZyc8c >z}e܋Eƣ#XWvm)x, ̃jQ.q?e o;8Y(UND?uQO氬m~b4 ۝{&b1GW2D>D BL$~9[W).kސQPZ<û.-]lAH "@ Ei1!5gWC-)^rAGmՑDany?ٹe3=ABJr鶒2 #B^-,u㙿%yc_C%PQ|i~]pzOJIAxƋdIW <!Q%Eݨ!eO/ Y] (uuz܉(҃" /S~ XF?.RĄq+OFǑ>: -RF>s6Q/U AqK z 2g~I;Qx~Gq~!@ T-ய|" m;3|.|ݎzz"(H⟴ $N}*ז J`ɅmQL˓s1Q9B]ڻg"Xwy|xv52WA[!XbhQEr bzWM#s c{),$y_{ H n8QwפԂ?b@AZChA5$>@ČEx S DMQaN!GĤڄ4ӼM\Y@B&L-mY`( )t_ {<=Ǝ=ߋݬU1ǁ6o%㋶4\vD`L}Ʊ{/Dj<*,d]^F|~+PY:='IY-4x X)N6ⷤO&bwƆG=Ϯq}p]`"5@r X=EW" ּigGqt uᄎ7.Θq&YVF}f@BR%+\Ϸ8sz[D-PA`e>$_1bit1p79)>W=^]E; ~Da"b{a1PF c:gfp"e߶{xt.5{ s+D ZÓ[W k\ aYQ5'-zcF^vV܏Ey|<8} =fO*rIˎm6'܉D𧥹X^wzP}H\pǓ9˯?1b7mC\7d1<8S hD܍FPZLyqQ6ĒnXs)t#%?r`y;M^Ikm(9P"YpcE5kgc:]R/m{U׶uHjt8qK-ߴgcV+ Z/xokXM o:9f+CSЊkimR{u.1پNYM:xTI̮vL\ŨZyӽ,8g+()2<xkKqbN}0M~6dGXf!qYFF;~ަϩpVLpxjIEDhRn-+| 㯯l8JD[xQ k].N pJQBV]h :>N5<6zsu GgyO@B㥶0I+,Nin؃Ug6 _6{~YtyY.p\twf_U khUa/VNs`TxN)qbF}vPn刺^9pW} 2)؆FE.3~?'jz [U0ٯ/j3,\Zaa+h_h> V}ַ!&~|Qw">U>&5poIg< 1Y2vx6a]l unU* #X?.)Z[E 3lx,GO/xeX p1Q*R3ZiuL5_- 6؍sURPe렄h7 &>ãv`I CFEKL ;gc[^`|QWO6e e<wu(%Ј}u.76/H=pfm>wӿh׏5Nߩ vrA fO!ukA "9ngWS& H"`NA,nɹyk6EڢF_WXfuIJTŃkIBǦ8Y\"]3Dg5t^]9c:dӓf>l|1[%޶rh4CUUd2z'2g^,[}z^oێAQh HdH1K]V>3] ښm_T Z ڢO׺ F#X(d #鋡@͏BC&z7Ab 'C-"IM`&/=3*9==CCaDrVxDV Q:W}e8_N gh[-J|DTr[@N5 [p0&k}}3fJ~Byagg%IƦm΅ScY!BӦ̊׆;@'/P/g^W_ڰߞE52xd|>϶X+XJe丝O"xxx-ؔDpB/=Fa ~[ːddJ"vww2"R)Cr:2KHHR`U:F&A^P2ހJ'A cRUK`?m{aP цm@'SMll6;Kf=}||666X>.7N|><+JRÑ6J%fYP`{{{CR<[__gJ5j}؂t,@ =$v.n:m.#+` ^1zP1?pR-~;A@ EmN,s]7U|:cDzв01~ ڶnFڥ $}Ћunv`C,W]a.svww-"J% };hw@7YH*HY 'KSھ¬;OPVñH!n!1dM& ~Z u;lH_M\+`]WZh/()c@}/fK;QaN% O8YxVc>e .Z:\%^Y@xFs:Vamm b{{{(1CB&[Dc72&I$b>|!oEmɤPTl~Q7X@u/K_g"|iiAA"f1~-nOц1fo61 iўnA[,Se?Y-"ciEyo#Vb8vG2zpz = , ڙ8θl֫k1M0-ffFϘmѓsAxf%HM&$T*2D+ dd)f2(bt} U]r >ArY({jzc3${{{C'##Y^,2$"fsڒQ,Aiw{|hNOOL&MϳTm*!A!Õk"b ge ď Ba1 U5n^deܖ?唿=|񺃣AxŵDݼH[An8Z^I\eO/hAp-| [vb7ifr?qN AOJ@G-\bU+ãM"BOp7jOAk r "x@&Ep*3Lk4U3Kr bHx΀GWuz~w{ۋG2ܭAºۀ bB̙1E,"q @U(N bH@#(-&kB. o;!1y|@VB_Јf fE|wl,LH b&:"cxy1RW\庶E/&,-q?&_ssjqH7k8n@m|}e4"     [9ЫCIENDB`rhel-devtools-en-3/figs/rhlogo-title.png0100744000076400007640000001432407576523770016602 0ustar jhajhaPNG  IHDR@nVAXbKGD pHYs  ~tIME 2aIDATx=pF>F29U&!7ф.!|UWu)gvyDޝLw6[r\=Khl+i.XQZZ8ɨ."55z$AU$@w |_k      bQ&$d T5-?. i<—Tn]jBRAIP nHXG7nkaϓ&& .4ML^m{L!4 &/nN]dB \ e_ f u[Ac"< [\ FEA Fs t@uDDi8cݾjZ* Kvq3M1QxZyc8c >z}e܋Eƣ#XWvm)x, ̃jQ.q?e o;8Y(UND?uQO氬m~b4 ۝{&b1GW2D>D BL$~9[W).kސQPZ<û.-]lAH "@ Ei1!5gWC-)^rAGmՑDany?ٹe3=ABJr鶒2 #B^-,u㙿%yc_C%PQ|i~]pzOJIAxƋdIW <!Q%Eݨ!eO/ Y] (uuz܉(҃" /S~ XF?.RĄq+OFǑ>: -RF>s6Q/U AqK z 2g~I;Qx~Gq~!@ T-ய|" m;3|.|ݎzz"(H⟴ $N}*ז J`ɅmQL˓s1Q9B]ڻg"Xwy|xv52WA[!XbhQEr bzWM#s c{),$y_{ H n8QwפԂ?b@AZChA5$>@ČEx S DMQaN!GĤڄ4ӼM\Y@B&L-mY`( )t_ {<=Ǝ=ߋݬU1ǁ6o%㋶4\vD`L}Ʊ{/Dj<*,d]^F|~+PY:='IY-4x X)N6ⷤO&bwƆG=Ϯq}p]`"5@r X=EW" ּigGqt uᄎ7.Θq&YVF}f@BR%+\Ϸ8sz[D-PA`e>$_1bit1p79)>W=^]E; ~Da"b{a1PF c:gfp"e߶{xt.5{ s+D ZÓ[W k\ aYQ5'-zcF^vV܏Ey|<8} =fO*rIˎm6'܉D𧥹X^wzP}H\pǓ9˯?1b7mC\7d1<8S hD܍FPZLyqQ6ĒnXs)t#%?r`y;M^Ikm(9P"YpcE5kgc:]R/m{U׶uHjt8qK-ߴgcV+ Z/xokXM o:9f+CSЊkimR{u.1پNYM:xTI̮vL\ŨZyӽ,8g+()2<xkKqbN}0M~6dGXf!qYFF;~ަϩpVLpxjIEDhRn-+| 㯯l8JD[xQ k].N pJQBV]h :>N5<6zsu GgyO@B㥶0I+,Nin؃Ug6 _6{~YtyY.p\twf_U khUa/VNs`TxN)qbF}vPn刺^9pW} 2)؆FE.3~?'jz [U0ٯ/j3,\Zaa+h_h> V}ַ!&~|Qw">U>&5poIg< 1Y2vx6a]l unU* #X?.)Z[E 3lx,GO/xeX p1Q*R3ZiuL5_- 6؍sURPe렄h7 &>ãv`I CFEKL ;gc[^`|QWO6e e<wu(%Ј}u.76/H=pfm>wӿh׏5Nߩ vrA fO!ukA "9ngWS& H"`NA,nɹyk6EڢF_WXfuIJTŃkIBǦ8Y\"]3Dg5t^]9c:dӓf>l|1[%޶rh4CUUd2z'2g^,[}z^oێAQh HdH1K]V>3] ښm_T Z ڢO׺ F#X(d #鋡@͏BC&z7Ab 'C-"IM`&/=3*9==CCaDrVxDV Q:W}e8_N gh[-J|DTr[@N5 [p0&k}}3fJ~Byagg%IƦm΅ScY!BӦ̊׆;@'/P/g^W_ڰߞE52xd|>϶X+XJe丝O"xxx-ؔDpB/=Fa ~[ːddJ"vww2"R)Cr:2KHHR`U:F&A^P2ހJ'A cRUK`?m{aP цm@'SMll6;Kf=}||666X>.7N|><+JRÑ6J%fYP`{{{CR<[__gJ5j}؂t,@ =$v.n:m.#+` ^1zP1?pR-~;A@ EmN,s]7U|:cDzв01~ ڶnFڥ $}Ћunv`C,W]a.svww-"J% };hw@7YH*HY 'KSھ¬;OPVñH!n!1dM& ~Z u;lH_M\+`]WZh/()c@}/fK;QaN% O8YxVc>e .Z:\%^Y@xFs:Vamm b{{{(1CB&[Dc72&I$b>|!oEmɤPTl~Q7X@u/K_g"|iiAA"f1~-nOц1fo61 iўnA[,Se?Y-"ciEyo#Vb8vG2zpz = , ڙ8θl֫k1M0-ffFϘmѓsAxf%HM&$T*2D+ dd)f2(bt} U]r >ArY({jzc3${{{C'##Y^,2$"fsڒQ,Aiw{|hNOOL&MϳTm*!A!Õk"b ge ď Ba1 U5n^deܖ?唿=|񺃣AxŵDݼH[An8Z^I\eO/hAp-| [vb7ifr?qN AOJ@G-\bU+ãM"BOp7jOAk r "x@&Ep*3Lk4U3Kr bHx΀GWuz~w{ۋG2ܭAºۀ bB̙1E,"q @U(N bH@#(-&kB. o;!1y|@VB_Јf fE|wl,LH b&:"cxy1RW\庶E/&,-q?&_ssjqH7k8n@m|}e4"     [9ЫCIENDB`rhel-devtools-en-3/figs/rhlogo.png0100744000076400007640000000221307576523770015455 0ustar jhajhaPNG  IHDR DRPLTEƵ```)))III 4 .2< ,KKK0""& #!$!; # $!%!%!%!%xJJJ? 9 8 "LLLl!"L ***: I J h,,,{ s $ $bbb+" "eee $#T  m3 !!!S !%iX !bdF pAAAa23A -(((2""""ddduuuey}K ggg}}}###ooo{{{^^^---kkkrrrsss+++ PPPvvv񣣣IDATxc`@L,,L X+;'psbH3r"^>4cB"b@4 pY9yyyE%%eEHj c!@CSK[WӅv>XH>S-, Xiq-vv0sߙCxxyp") T  w+:136$kKJN*Hed0IL gfqrfChgq3L*AY2!% ``圜PUH0PYP QPWЈ.tRCsX CKk[;)i ]` =}0i “1yig0l,NNsKo!Pt(0.^H-[b+׬]Mz580:z˰a [ bћ_av;wރ32XKG%Ge )yL,XIENDB`rhel-devtools-en-3/figs/tip.png0100744000076400007640000000364207610647132014752 0ustar jhajhaPNG  IHDR"":G bKGD pHYs  ~tIME j/IDATxkpTg{I݄%\ [P vhi $h)^uZ SDh-#:TgTƩ)bH"B asKv9f.Py=;37>yG5FMpv߀;jǾb!* L4]C5< \zQ_; ( @knz*VO4]GӦNrG;[Df-eOb_hx 2qኸ,ɩUȔPgDI.l| E RU[ݶ0 h38NFcHBF ,WYeJG{Ę#9lQ`2UA$!6bZ(k_<% &cǮ e 8#:BaY\ʜ("Ab LyV\7LjI}{#<ƶGUl('~މg4uEUb22(sEd=j‹OQc?7D8_k*6?QB45 j Ob,2N"tö:6` [Dڟl38CG Ӈ짗\@2 :$M+M!eު;2')?s25*R:76.Yqe |شdBWA ,t tR۟sq,VXb묭鐍K*pwx:o9 +A(Rt]6T"H $?Ud "f~ y:yxшk#:G[ A@WAL]uV "dPY YDMUaZ Eܼ B#0h1qHPu}ER((iE]Yo"Z4uS5ȸxpy0T=AݚH2 ^Q7J8Z1]GTGBEtBn/׮uz75bt^ c0gE(,e0 Շie۲Co: Dҏ(RiYL<q>R-C̉P$e&phwleo[?BC҇H(JhRJx(B 8xR9}!CW9ʬG$nTq5P'@ },yd-EEG!ˀX)E?rmG$S%]$j "Z?'Bz@jie!g+74\ϏH᫯ L >|Ã| |۟)B=纳F+ݣfEl͔U40oŗhyy|>)0nۆ["Nu1e+tYV /^8?Gn3ga-B;RdJG/'"&Ξ=K2DuE3䖈?'Wۘ,;4cyaW`6fE(܁3f|2<,iZq{6nCMwƚ5v g !c`0ANX,ƽV񦜈p /Mӣ-"b+i[3Ɯb]v*o_}>ӽ؟7=טE;T좷GZk^dsW8=^Ftvk TVa6.N;HϾGm@3`!òz n ?1 cJIENDB`rhel-devtools-en-3/figs/warning.png0100744000076400007640000000326607610647132015625 0ustar jhajhaPNG  IHDR"":G bKGD pHYs  ~tIME ɉCIDATxmp\UϹwifo2Ilݴ&8UQ5:բc0վ@bd@GK242CfFh33H)-MIM{{%/-F3}{?Ϲ wyqBzFWUިD&=߬ñ|i*7忾ף]z;xzBlۼy8|mV-ӵ573n2qϭu6 PTPhP:S5;wm,k6ƿ* d? [3x&KJw\h; F*4^bnNwn !?8ڎyl|9O - 13'ֽ-=y=ڶ18}#>X6%RUc?={ L0&xEgӵ/;=9%Do/\_ xW[ePs 20Gɡz#7q1 gr#'{U ( }^;5 ?3A:Ķ-> [='@y)F@EdAڛl?vwu ?Kpdߩǎ]I@,++d ycZkѼ{H@c ?mю Z@UA«oVh'ThҸ24C`^J 2C nBې$DdiA0ВRc7PZh|7(s;M p{5a2⛖C9?x@V h039^]Z^D@$Jj*T~u^>9RD(%!{~ХT# ^>9=*q=P#" ? woφ9M`iII@Ԩ W}/U|"s ^$`X72R{Jj%Sa"EIUf[ɳ2 ʒ/=ڸ}7DFOdL,?VS'A;-b=KB4nRIE:Zۃ [Yt"$mPh ZwQPȬ9ss>ŇVʨ d˦(-nASSAM3 ]rHۨH(:K_oSh5+U bPj?#$;q䋖c@T)ʍnϻL /aM2@%U^@#8Pa%^/R~ɧFڐA|N.Nŏ6љE´v@"8"> *ʂxo0%tZF8^8v@qB m5OIi8Xץޤ6pnhۃ#Tbk ;&i@OaՒU"Ep%!%: )BBĞQ螈 k<@{K% ^BQ!6P=EE U =hRF}+0+~*)s s1PT\ٙϜ~q"L-Ǚ|7ou ^nxFLGaP8/m~ZsDyb/klړm!%StdLOӇ^$=x% jѷmLi9&ED/*gڝA($e$.5@ݹNN7n@ڄ;<8?s%sʠa{U%QiUE7 $;0eSq]>/7vCI(ةt~MZL.r3өYYSAUfĊ Jh"5vڼyX! b5# o[jߢr{FgHFc4k灢ԲcԿy 6%?z$.Fg6-!-Iۂ#C\` xڇ/šSA>aᬎ 7ۚil*CՎ^d #pH݇l[m aXCfM,kDܕGBr$q?mqdC8#d<#6CWES0+ƀ$+W!ՑYS50oW-zZ}U3 @_R4C0cKc0XY (+N`gWM*b0ےHdZ™Q:bĤIn`>AnPN6Q|1 \|<R*.p" qil4+M.*S]+' h,---Y)!椲 %B{LٿI\ٙ#zP4VVjq1.c!Hi .Z2=Wκ+RBECqmY}ubA+OUFɄP4@KZ[GDHAUӯ;b5Ml1#LuJ dןI*jIENDB`rhel-devtools-en-3/stylesheet-images/caution.png0100744000076400007640000000251107610647132020316 0ustar jhajhaPNG  IHDR"":G bKGD pHYs  ~tIME |IDATxMh\Uf2dt&Ydj"))-W"hHu!Q֍BڍjemIH&AEMMfZp?sogzZ+Gv$?߽ ɭKp%4^mΑ* R,̝۠$RhRݻ*PǕr4wHlRq5V+$Qs w_ֆ0fBmYG]t-OO.!B$̀± H044D?`4I$߿{X5>)XŎ-@FK `&a`ii" [grrV7ޢTUrޯ֚ u]؄iiq @A__/zHtz iZ7 ! #Tu?X6Ed[+J~*a]'.4 æVbz|4lm:Z GRLx=BJ'IVHhQ& FaItm" Xo+ͯ*"&\+ iܬ@"'z&ʅ.-F' h mEs,' \CED2)}V ^=YP3(V)@ hUhBW2#'{9PȻLz]vh82+arzž1W [Dvr?AR^.q:B!,;'emk8K+;Zmvmͨqv=9:]k_:ٳҝd./1Ctس"q#(.^;5?tF)N9KW,r%6t_L;:qعc~.E6ϦDhlۆۄ( ($'d{Q2~8?*Ip0l2ѤrRJ5+C5&7L]3?nyk\V)8e='P@x9W&_!uIENDB`rhel-devtools-en-3/stylesheet-images/logo_sm.png0100744000076400007640000000221407531246366020321 0ustar jhajhaPNG  IHDR("k9tIME (l pHYs  ~PLTEZZGGGM'''怀օ,jjjkﱱ;; 8IDATxڍ떃 CDPPVh\=??'$EC.HQA@"~G4](Rͳ#v cSM {e.p)F܉%R +YVFߙ X}"iϝgQ "&RPd;0-j+ˁY%q{5/ڪ}@D gZ37w@u1Ƿ?)/x:ZZàqr,Saז~pFش{%Uk"5̞GgOGO"IM3x<^0]򐜒1!@MXs!+߶ZhhjY9btn\ىzɌX}~<^/^ oWLjR &=1J>ln}/`kR2G <^#$& ќ=Wv$艧ϯD37o;A'%q J`p-` 9A/;X;Ȳ@&l6S[{+jU%aȣJ~ʖ,Fj)ׁQBUUEp) 9s-_o>ǑSW9VԩSٷc"Ib't=wE$ ĒUT]=|%7>j[v,Hq},v>2:B 8rӎ\»"nOЮz=gʘL&^/>nubTDՕ<#5]])2g4Na0B NG|.{X׫F׍>:[F'~ھ>`g8qFbD.XFEҬ3͝;).>`Ŋθ81161|0=7TI[+VDh {'xgF=1F[k=- A|| xq1u;&F?<.D$Ysim+A~,TGEE9n'ݚmkqgv/Y5)Oy~f#ẃ}Ev OĜ9>#y |xw`f:nLI2fQu>[_8:W i')) !Fb}={~sh&n\f'qwM%~gpEE W z -1`$LO5q!Ol/ZbߎI kBv~4fӳTD CҒN)h|iB0%g9$m9C?~cB| =9ϗ19 T~IENDB`rhel-devtools-en-3/stylesheet-images/rhlogo.png0100744000076400007640000000221307576523770020161 0ustar jhajhaPNG  IHDR DRPLTEƵ```)))III 4 .2< ,KKK0""& #!$!; # $!%!%!%!%xJJJ? 9 8 "LLLl!"L ***: I J h,,,{ s $ $bbb+" "eee $#T  m3 !!!S !%iX !bdF pAAAa23A -(((2""""ddduuuey}K ggg}}}###ooo{{{^^^---kkkrrrsss+++ PPPvvv񣣣IDATxc`@L,,L X+;'psbH3r"^>4cB"b@4 pY9yyyE%%eEHj c!@CSK[WӅv>XH>S-, Xiq-vv0sߙCxxyp") T  w+:136$kKJN*Hed0IL gfqrfChgq3L*AY2!% ``圜PUH0PYP QPWЈ.tRCsX CKk[;)i ]` =}0i “1yig0l,NNsKo!Pt(0.^H-[b+׬]Mz580:z˰a [ bћ_av;wރ32XKG%Ge )yL,XIENDB`rhel-devtools-en-3/stylesheet-images/rhlogo-chapter-title.png0100744000076400007640000001432407576523770022732 0ustar jhajhaPNG  IHDR@nVAXbKGD pHYs  ~tIME 2aIDATx=pF>F29U&!7ф.!|UWu)gvyDޝLw6[r\=Khl+i.XQZZ8ɨ."55z$AU$@w |_k      bQ&$d T5-?. i<—Tn]jBRAIP nHXG7nkaϓ&& .4ML^m{L!4 &/nN]dB \ e_ f u[Ac"< [\ FEA Fs t@uDDi8cݾjZ* Kvq3M1QxZyc8c >z}e܋Eƣ#XWvm)x, ̃jQ.q?e o;8Y(UND?uQO氬m~b4 ۝{&b1GW2D>D BL$~9[W).kސQPZ<û.-]lAH "@ Ei1!5gWC-)^rAGmՑDany?ٹe3=ABJr鶒2 #B^-,u㙿%yc_C%PQ|i~]pzOJIAxƋdIW <!Q%Eݨ!eO/ Y] (uuz܉(҃" /S~ XF?.RĄq+OFǑ>: -RF>s6Q/U AqK z 2g~I;Qx~Gq~!@ T-ய|" m;3|.|ݎzz"(H⟴ $N}*ז J`ɅmQL˓s1Q9B]ڻg"Xwy|xv52WA[!XbhQEr bzWM#s c{),$y_{ H n8QwפԂ?b@AZChA5$>@ČEx S DMQaN!GĤڄ4ӼM\Y@B&L-mY`( )t_ {<=Ǝ=ߋݬU1ǁ6o%㋶4\vD`L}Ʊ{/Dj<*,d]^F|~+PY:='IY-4x X)N6ⷤO&bwƆG=Ϯq}p]`"5@r X=EW" ּigGqt uᄎ7.Θq&YVF}f@BR%+\Ϸ8sz[D-PA`e>$_1bit1p79)>W=^]E; ~Da"b{a1PF c:gfp"e߶{xt.5{ s+D ZÓ[W k\ aYQ5'-zcF^vV܏Ey|<8} =fO*rIˎm6'܉D𧥹X^wzP}H\pǓ9˯?1b7mC\7d1<8S hD܍FPZLyqQ6ĒnXs)t#%?r`y;M^Ikm(9P"YpcE5kgc:]R/m{U׶uHjt8qK-ߴgcV+ Z/xokXM o:9f+CSЊkimR{u.1پNYM:xTI̮vL\ŨZyӽ,8g+()2<xkKqbN}0M~6dGXf!qYFF;~ަϩpVLpxjIEDhRn-+| 㯯l8JD[xQ k].N pJQBV]h :>N5<6zsu GgyO@B㥶0I+,Nin؃Ug6 _6{~YtyY.p\twf_U khUa/VNs`TxN)qbF}vPn刺^9pW} 2)؆FE.3~?'jz [U0ٯ/j3,\Zaa+h_h> V}ַ!&~|Qw">U>&5poIg< 1Y2vx6a]l unU* #X?.)Z[E 3lx,GO/xeX p1Q*R3ZiuL5_- 6؍sURPe렄h7 &>ãv`I CFEKL ;gc[^`|QWO6e e<wu(%Ј}u.76/H=pfm>wӿh׏5Nߩ vrA fO!ukA "9ngWS& H"`NA,nɹyk6EڢF_WXfuIJTŃkIBǦ8Y\"]3Dg5t^]9c:dӓf>l|1[%޶rh4CUUd2z'2g^,[}z^oێAQh HdH1K]V>3] ښm_T Z ڢO׺ F#X(d #鋡@͏BC&z7Ab 'C-"IM`&/=3*9==CCaDrVxDV Q:W}e8_N gh[-J|DTr[@N5 [p0&k}}3fJ~Byagg%IƦm΅ScY!BӦ̊׆;@'/P/g^W_ڰߞE52xd|>϶X+XJe丝O"xxx-ؔDpB/=Fa ~[ːddJ"vww2"R)Cr:2KHHR`U:F&A^P2ހJ'A cRUK`?m{aP цm@'SMll6;Kf=}||666X>.7N|><+JRÑ6J%fYP`{{{CR<[__gJ5j}؂t,@ =$v.n:m.#+` ^1zP1?pR-~;A@ EmN,s]7U|:cDzв01~ ڶnFڥ $}Ћunv`C,W]a.svww-"J% };hw@7YH*HY 'KSھ¬;OPVñH!n!1dM& ~Z u;lH_M\+`]WZh/()c@}/fK;QaN% O8YxVc>e .Z:\%^Y@xFs:Vamm b{{{(1CB&[Dc72&I$b>|!oEmɤPTl~Q7X@u/K_g"|iiAA"f1~-nOц1fo61 iўnA[,Se?Y-"ciEyo#Vb8vG2zpz = , ڙ8θl֫k1M0-ffFϘmѓsAxf%HM&$T*2D+ dd)f2(bt} U]r >ArY({jzc3${{{C'##Y^,2$"fsڒQ,Aiw{|hNOOL&MϳTm*!A!Õk"b ge ď Ba1 U5n^deܖ?唿=|񺃣AxŵDݼH[An8Z^I\eO/hAp-| [vb7ifr?qN AOJ@G-\bU+ãM"BOp7jOAk r "x@&Ep*3Lk4U3Kr bHx΀GWuz~w{ۋG2ܭAºۀ bB̙1E,"q @U(N bH@#(-&kB. o;!1y|@VB_Јf fE|wl,LH b&:"cxy1RW\庶E/&,-q?&_ssjqH7k8n@m|}e4"     [9ЫCIENDB`rhel-devtools-en-3/stylesheet-images/rhlogo-title.png0100744000076400007640000001432407576523770021306 0ustar jhajhaPNG  IHDR@nVAXbKGD pHYs  ~tIME 2aIDATx=pF>F29U&!7ф.!|UWu)gvyDޝLw6[r\=Khl+i.XQZZ8ɨ."55z$AU$@w |_k      bQ&$d T5-?. i<—Tn]jBRAIP nHXG7nkaϓ&& .4ML^m{L!4 &/nN]dB \ e_ f u[Ac"< [\ FEA Fs t@uDDi8cݾjZ* Kvq3M1QxZyc8c >z}e܋Eƣ#XWvm)x, ̃jQ.q?e o;8Y(UND?uQO氬m~b4 ۝{&b1GW2D>D BL$~9[W).kސQPZ<û.-]lAH "@ Ei1!5gWC-)^rAGmՑDany?ٹe3=ABJr鶒2 #B^-,u㙿%yc_C%PQ|i~]pzOJIAxƋdIW <!Q%Eݨ!eO/ Y] (uuz܉(҃" /S~ XF?.RĄq+OFǑ>: -RF>s6Q/U AqK z 2g~I;Qx~Gq~!@ T-ய|" m;3|.|ݎzz"(H⟴ $N}*ז J`ɅmQL˓s1Q9B]ڻg"Xwy|xv52WA[!XbhQEr bzWM#s c{),$y_{ H n8QwפԂ?b@AZChA5$>@ČEx S DMQaN!GĤڄ4ӼM\Y@B&L-mY`( )t_ {<=Ǝ=ߋݬU1ǁ6o%㋶4\vD`L}Ʊ{/Dj<*,d]^F|~+PY:='IY-4x X)N6ⷤO&bwƆG=Ϯq}p]`"5@r X=EW" ּigGqt uᄎ7.Θq&YVF}f@BR%+\Ϸ8sz[D-PA`e>$_1bit1p79)>W=^]E; ~Da"b{a1PF c:gfp"e߶{xt.5{ s+D ZÓ[W k\ aYQ5'-zcF^vV܏Ey|<8} =fO*rIˎm6'܉D𧥹X^wzP}H\pǓ9˯?1b7mC\7d1<8S hD܍FPZLyqQ6ĒnXs)t#%?r`y;M^Ikm(9P"YpcE5kgc:]R/m{U׶uHjt8qK-ߴgcV+ Z/xokXM o:9f+CSЊkimR{u.1پNYM:xTI̮vL\ŨZyӽ,8g+()2<xkKqbN}0M~6dGXf!qYFF;~ަϩpVLpxjIEDhRn-+| 㯯l8JD[xQ k].N pJQBV]h :>N5<6zsu GgyO@B㥶0I+,Nin؃Ug6 _6{~YtyY.p\twf_U khUa/VNs`TxN)qbF}vPn刺^9pW} 2)؆FE.3~?'jz [U0ٯ/j3,\Zaa+h_h> V}ַ!&~|Qw">U>&5poIg< 1Y2vx6a]l unU* #X?.)Z[E 3lx,GO/xeX p1Q*R3ZiuL5_- 6؍sURPe렄h7 &>ãv`I CFEKL ;gc[^`|QWO6e e<wu(%Ј}u.76/H=pfm>wӿh׏5Nߩ vrA fO!ukA "9ngWS& H"`NA,nɹyk6EڢF_WXfuIJTŃkIBǦ8Y\"]3Dg5t^]9c:dӓf>l|1[%޶rh4CUUd2z'2g^,[}z^oێAQh HdH1K]V>3] ښm_T Z ڢO׺ F#X(d #鋡@͏BC&z7Ab 'C-"IM`&/=3*9==CCaDrVxDV Q:W}e8_N gh[-J|DTr[@N5 [p0&k}}3fJ~Byagg%IƦm΅ScY!BӦ̊׆;@'/P/g^W_ڰߞE52xd|>϶X+XJe丝O"xxx-ؔDpB/=Fa ~[ːddJ"vww2"R)Cr:2KHHR`U:F&A^P2ހJ'A cRUK`?m{aP цm@'SMll6;Kf=}||666X>.7N|><+JRÑ6J%fYP`{{{CR<[__gJ5j}؂t,@ =$v.n:m.#+` ^1zP1?pR-~;A@ EmN,s]7U|:cDzв01~ ڶnFڥ $}Ћunv`C,W]a.svww-"J% };hw@7YH*HY 'KSھ¬;OPVñH!n!1dM& ~Z u;lH_M\+`]WZh/()c@}/fK;QaN% O8YxVc>e .Z:\%^Y@xFs:Vamm b{{{(1CB&[Dc72&I$b>|!oEmɤPTl~Q7X@u/K_g"|iiAA"f1~-nOц1fo61 iўnA[,Se?Y-"ciEyo#Vb8vG2zpz = , ڙ8θl֫k1M0-ffFϘmѓsAxf%HM&$T*2D+ dd)f2(bt} U]r >ArY({jzc3${{{C'##Y^,2$"fsڒQ,Aiw{|hNOOL&MϳTm*!A!Õk"b ge ď Ba1 U5n^deܖ?唿=|񺃣AxŵDݼH[An8Z^I\eO/hAp-| [vb7ifr?qN AOJ@G-\bU+ãM"BOp7jOAk r "x@&Ep*3Lk4U3Kr bHx΀GWuz~w{ۋG2ܭAºۀ bB̙1E,"q @U(N bH@#(-&kB. o;!1y|@VB_Јf fE|wl,LH b&:"cxy1RW\庶E/&,-q?&_ssjqH7k8n@m|}e4"     [9ЫCIENDB`rhel-devtools-en-3/stylesheet-images/tip.png0100744000076400007640000000364207610647132017456 0ustar jhajhaPNG  IHDR"":G bKGD pHYs  ~tIME j/IDATxkpTg{I݄%\ [P vhi $h)^uZ SDh-#:TgTƩ)bH"B asKv9f.Py=;37>yG5FMpv߀;jǾb!* L4]C5< \zQ_; ( @knz*VO4]GӦNrG;[Df-eOb_hx 2qኸ,ɩUȔPgDI.l| E RU[ݶ0 h38NFcHBF ,WYeJG{Ę#9lQ`2UA$!6bZ(k_<% &cǮ e 8#:BaY\ʜ("Ab LyV\7LjI}{#<ƶGUl('~މg4uEUb22(sEd=j‹OQc?7D8_k*6?QB45 j Ob,2N"tö:6` [Dڟl38CG Ӈ짗\@2 :$M+M!eު;2')?s25*R:76.Yqe |شdBWA ,t tR۟sq,VXb묭鐍K*pwx:o9 +A(Rt]6T"H $?Ud "f~ y:yxшk#:G[ A@WAL]uV "dPY YDMUaZ Eܼ B#0h1qHPu}ER((iE]Yo"Z4uS5ȸxpy0T=AݚH2 ^Q7J8Z1]GTGBEtBn/׮uz75bt^ c0gE(,e0 Շie۲Co: Dҏ(RiYL<q>R-C̉P$e&phwleo[?BC҇H(JhRJx(B 8xR9}!CW9ʬG$nTq5P'@ },yd-EEG!ˀX)E?rmG$S%]$j "Z?'Bz@jie!g+74\ϏH᫯ L >|Ã| |۟)B=纳F+ݣfEl͔U40oŗhyy|>)0nۆ["Nu1e+tYV /^8?Gn3ga-B;RdJG/'"&Ξ=K2DuE3䖈?'Wۘ,;4cyaW`6fE(܁3f|2<,iZq{6nCMwƚ5v g !c`0ANX,ƽV񦜈p /Mӣ-"b+i[3Ɯb]v*o_}>ӽ؟7=טE;T좷GZk^dsW8=^Ftvk TVa6.N;HϾGm@3`!òz n ?1 cJIENDB`rhel-devtools-en-3/stylesheet-images/warning.png0100744000076400007640000000326607610647132020331 0ustar jhajhaPNG  IHDR"":G bKGD pHYs  ~tIME ɉCIDATxmp\UϹwifo2Ilݴ&8UQ5:բc0վ@bd@GK242CfFh33H)-MIM{{%/-F3}{?Ϲ wyqBzFWUިD&=߬ñ|i*7忾ף]z;xzBlۼy8|mV-ӵ573n2qϭu6 PTPhP:S5;wm,k6ƿ* d? [3x&KJw\h; F*4^bnNwn !?8ڎyl|9O - 13'ֽ-=y=ڶ18}#>X6%RUc?={ L0&xEgӵ/;=9%Do/\_ xW[ePs 20Gɡz#7q1 gr#'{U ( }^;5 ?3A:Ķ-> [='@y)F@EdAڛl?vwu ?Kpdߩǎ]I@,++d ycZkѼ{H@c ?mю Z@UA«oVh'ThҸ24C`^J 2C nBې$DdiA0ВRc7PZh|7(s;M p{5a2⛖C9?x@V h039^]Z^D@$Jj*T~u^>9RD(%!{~ХT# ^>9=*q=P#" ? woφ9M`iII@Ԩ W}/U|"s ^$`X72R{Jj%Sa"EIUf[ɳ2 ʒ/=ڸ}7DFOdL,?VS'A;-b=KB4nRIE:Zۃ [Yt"$mPh ZwQPȬ9ss>ŇVʨ d˦(-nASSAM3 ]rHۨH(:K_oSh5+U bPj?#$;q䋖c@T)ʍnϻL /aM2@%U^@#8Pa%^/R~ɧFڐA|N.Nŏ6љE´v@"8"> *ʂxo0%tZF8^8v@qB m5OIi8Xץޤ6pnhۃ#Tb