Devel-GDB-Reflect version 0.1
=============================

Devel::GDB::Reflect provides a reflection API for GDB/C++, which can
be used to recursively print the contents of STL data structures
(vector, set, map, etc.) within a GDB session.  It is not limited
to STL, however; you can write your own delegates for printing custom
container types.

The module provides a script, "gdb++", which serves as a wrapper
around GDB.  Invoke it the same way you would invoke gdb, e.g.:

$ gdb++ MYPROG

Within the gdb++ session, you can execute the same commands as within
gdb, with the following extensions:

    * print_r VAR

        Recursively prints the contents of VAR.  The command can be
        abbreviated as "pr".  For example, if "v" is of type
        vector< vector<int> >:

        (gdb) pr v
        [
            [ 11, 12, 13 ], 
            [ 21, 22, 23 ], 
            [ 31, 32, 33 ]
        ]

    * set gdb_reflect_indent VALUE
    * show gdb_reflect_indent

        Set or show the number of spaces to indent at each level of
        recursion.  Defaults to 4.

    * set gdb_reflect_max_depth VALUE
    * show gdb_reflect_max_depth

        Set or show the maximum recursion depth.  Defaults to 5.  Example:

        (gdb) set gdb_reflect_max_depth 2
        (gdb) pr v
        [
            [ { ... }, { ... }, { ... } ], 
            [ { ... }, { ... }, { ... } ], 
            [ { ... }, { ... }, { ... } ]
        ]

    * set gdb_reflect_max_width VALUE
    * show gdb_reflect_max_width

        Set or show the maximum number of elements to show from a given
        container.  Defaults to 10.  Example:

        (gdb) set gdb_reflect_max_width 2
        (gdb) pr v                       
        [
          [ 11, 12, ... ], 
          [ 21, 22, ... ], 
          ...
        ]


INSTALLATION

To install this module type the following:

   perl Makefile.PL
   make
   make test
   make install

DEPENDENCIES

This module requires these other modules and libraries:

    * Parse::Yapp
    * Devel::GDB
    * Data::Dumper
    * Term::ReadLine

COPYRIGHT AND LICENCE

Put the correct copyright and licence information here.

Copyright (C) 2006 by Antal Novak

This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself, either Perl version 5.8.8 or,
at your option, any later version of Perl 5 you may have available.


