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:

        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 or show the number of spaces to indent at each level of
        recursion.  Defaults to 4.

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

        (gdb) set gdb_reflect_max_depth 2
        (gdb) pr v
        [
            [ { ... }, { ... }, { ... } ], 
            [ { ... }, { ... }, { ... } ], 
            [ { ... }, { ... }, { ... } ]
        ]
        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:

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.