MSVC Visualizers Update

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

MSVC Visualizers Update

Filip Konvička
Hi all,

I've just updated the Boost visualizers wiki page at

https://svn.boost.org/trac/boost/wiki/DebuggerVisualizers

I updated the visualizer for Boost.MultiIndex, which did not work since
Boost 1.35.

I also added new visualizers for Boost.DateTime (ptime and
time_duration) and a simple boost::shared_ptr visualizer.

The visualizers are available for checkout via SVN at

https://svn.boost.org/svn/boost/sandbox/boost_docs/subprojects/DebuggerVisualizers

Cheers,
Filip

_______________________________________________
Boost-users mailing list
[hidden email]
http://lists.boost.org/mailman/listinfo.cgi/boost-users
Reply | Threaded
Open this post in threaded view
|

Re: MSVC Visualizers Update

Michael Fawcett
On Fri, Apr 3, 2009 at 8:16 AM, Filip Konvička <[hidden email]> wrote:

> Hi all,
>
> I've just updated the Boost visualizers wiki page at
>
> https://svn.boost.org/trac/boost/wiki/DebuggerVisualizers
>
> I updated the visualizer for Boost.MultiIndex, which did not work since
> Boost 1.35.
>
> I also added new visualizers for Boost.DateTime (ptime and time_duration)
> and a simple boost::shared_ptr visualizer.
>
> The visualizers are available for checkout via SVN at
>
> https://svn.boost.org/svn/boost/sandbox/boost_docs/subprojects/DebuggerVisualizers

Thank you very much for your continued effort!  I'll download these shortly.

--Michael Fawcett
_______________________________________________
Boost-users mailing list
[hidden email]
http://lists.boost.org/mailman/listinfo.cgi/boost-users
Max
Reply | Threaded
Open this post in threaded view
|

Re: MSVC Visualizers Update

Max
> On Fri, Apr 3, 2009 at 8:16 AM, Filip Konvička <[hidden email]> wrote:
> > Hi all,
> >
> > I've just updated the Boost visualizers wiki page at
> >
> > https://svn.boost.org/trac/boost/wiki/DebuggerVisualizers
> >
> > I updated the visualizer for Boost.MultiIndex, which did not work since
> > Boost 1.35.
> >
> > I also added new visualizers for Boost.DateTime (ptime and time_duration)
> > and a simple boost::shared_ptr visualizer.
> >
> > The visualizers are available for checkout via SVN at
> >
> >
> https://svn.boost.org/svn/boost/sandbox/boost_docs/subprojects/Debugger
> Visualizers
>
> Thank you very much for your continued effort!  I'll download these shortly.
>

Hello,

It's really interesting and probably an undermined power feature of MSVS.

I've appended the autoexp.dat for my VS2008SP1 and given demo.cpp a try.
But I have not noticed any apparent benefit.

I believe I must have missed something abvious.

Thanks for any help.

B/Rgds
Max

_______________________________________________
Boost-users mailing list
[hidden email]
http://lists.boost.org/mailman/listinfo.cgi/boost-users
Reply | Threaded
Open this post in threaded view
|

Re: MSVC Visualizers Update

Andrey Tcherepanov
Well, you need not to append them, but insert into proper section of this  
file -- it has a headers like in the ini files [header]. So, if you  
appended it, you added them into wrong section. As far as I rememmber, You  
need to insert them into [AutoExpand] or [Visualizers], not the last  
[hresult] sections

HTH,

  Andrey

On Sat, 04 Apr 2009 02:20:29 -0600, Max <[hidden email]> wrote:

>> On Fri, Apr 3, 2009 at 8:16 AM, Filip Konvička  
>> <[hidden email]> wrote:
>> > Hi all,
>> >
>> https://svn.boost.org/svn/boost/sandbox/boost_docs/subprojects/Debugger
>> Visualizers
>>
>> Thank you very much for your continued effort!  I'll download these  
>> shortly.
>>
>
> Hello,
>
> It's really interesting and probably an undermined power feature of MSVS.
>
> I've appended the autoexp.dat for my VS2008SP1 and given demo.cpp a try.
> But I have not noticed any apparent benefit.
>
> I believe I must have missed something abvious.
>
> Thanks for any help.
>
> B/Rgds
> Max

_______________________________________________
Boost-users mailing list
[hidden email]
http://lists.boost.org/mailman/listinfo.cgi/boost-users
Reply | Threaded
Open this post in threaded view
|

Re: MSVC Visualizers Update

Filip Konvička
> Well, you need not to append them, but insert into proper section of
> this file -- it has a headers like in the ini files [header]. So, if you
> appended it, you added them into wrong section. As far as I rememmber,
> You need to insert them into [AutoExpand] or [Visualizers], not the last
> [hresult] sections

Yes, it is the [Visualizers] section. We say so in the wiki:

http://tinyurl.com/d9qqfo

Cheers,
Filip

_______________________________________________
Boost-users mailing list
[hidden email]
http://lists.boost.org/mailman/listinfo.cgi/boost-users
Reply | Threaded
Open this post in threaded view
|

Re: MSVC Visualizers Update

Filip Konvička
In reply to this post by Filip Konvička
P.S.: I was asked several times why we need to use the headers for
visualization. There are two situations that require this.

First, when a template class has multiple base classes and we need to
access data in a base class that is not listed first, we need to know
its type to be able to cast the original object. The trouble is in that
we may not use any member typedefs that typically appear in the main
class. The general rule is that the debugger does not see any aliases
introduced using typedef. As an example, we may not use

   (A::some_base_class*)&$e

This is required for visualizing Boost.MultiIndex. So we work around
this by introducing our own classes that mimic the layout of the
original classes and allow us to access the appropriate base classes (or
do some other dark magic).

The other case (introduced by this update) is the need to call custom
code for visualization. We use this for visualizing
boost::posix_time::ptime. There is no simple transformation of the
internal ptime data to a human readable form - so we use a trick that
allows us to call a user function during visualization. The function
must be simple enough (no constructors involved in the call,
well-matching argument types etc.) and it must be "accessible" - which
means visible and actually present in the translation unit (which we
enforce by having a global initializer call it in each translation unit).

I hope that this explains why we need the headers.

Cheers,
Filip

_______________________________________________
Boost-users mailing list
[hidden email]
http://lists.boost.org/mailman/listinfo.cgi/boost-users
Reply | Threaded
Open this post in threaded view
|

Re: MSVC Visualizers Update

Andy
Hi Filip,

Thanks for your hardwork with these Visualizers.
I'm using Boost 1.39 with vs2008 and have the up to date version of the autoexp contents you've uploaded.

I'm finding the multi-index visualizer works well as long as I only have one index; I get a preview and a nice list of children. As soon as I add a second index I can no longer easily see the contents of my container. Is this expected?

Regards,
Andy

My code is below:
#include "mic_visualizer.hpp"

#include <boost/multi_index_container.hpp>
#include <boost/multi_index/ordered_index.hpp>
#include <boost/multi_index/identity.hpp>
#include <boost/multi_index/member.hpp>
#include <boost/multi_index/sequenced_index.hpp>

#define BOOST_MULTI_INDEX_LIMIT_INDEXED_BY_SIZE    5
#define BOOST_MULTI_INDEX_LIMIT_TAG_SIZE           3
#define BOOST_MULTI_INDEX_LIMIT_COMPOSITE_KEY_SIZE 5


typedef boost::multi_index_container
                <
                int,
                boost::multi_index::indexed_by
                        <
                                boost::multi_index::sequenced<>,
                                boost::multi_index::ordered_unique
                                <
                                        boost::multi_index::identity<int>
                                >
                        >
                > table_entry_set;

VISUALIZE_MULTI_INDEX_CONTAINER(table_entry_set);

int main(void)
{
        table_entry_set new_set;
        new_set.get<0>().insert(new_set.get<0>().begin(), 21);
        new_set.get<0>().insert(new_set.get<0>().begin(), 2);

        return 1;
}
Reply | Threaded
Open this post in threaded view
|

Re: MSVC Visualizers Update

Bill Buklis-2
Speaking of the MSVC Visualizers, is there a link to the visualizers
anywhere on the boost web site? I can't recall ever seeing one. I think
this would be a nice thing to have - perhaps on the "Getting Started on
Windows" page. Visualizers and the ability to add custom entries is one
of the best things about Visual Studio. I think most boost users don't
even know that there are some boost oriented visualizers out there.


--
Bill

_______________________________________________
Boost-users mailing list
[hidden email]
http://lists.boost.org/mailman/listinfo.cgi/boost-users