Re: [eigen] MSVC debug tools

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]


2009/12/21 Björn Piltz <bjornpiltz@xxxxxxxxxxxxxx>:
> 2009/12/20 Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
>>
>> Is that something that could be added to debug/msvc/ ?
>> Perhaps along with some explanatory text?
>
> That was my intention.
> Hauke's concern is certainly valid, but I think that can be handled with the
> normal disclaimers. Since this feature isn't even officially supported by
> Microsoft, we certainly can't make any guarantees. I am more worried about
> which regexes to include.

Yes, it looks like a matter of documentation.

> Add a to greedy one, and suddenly the debugger
> will act very unpredictably. Also, different developers have different
> needs. For example I thought about adding "operator::new" since I almost
> always want to step directly into the ctor and not into new(), but with
> Eigen doing all this magic with overloaded new, aligned and unaligned
> mallocs, sometimes you do want to know which function is actually called.
> So the reason I started this thread was to find out which set of functions
> to be included if we add this file to the Wiki.

The example you just pointed out shows that there isn't a
one-size-fits-all set of functions to avoid.

As you noted, the meta selectors are among the functions one is the
least likely in wanting to debug into, but there are many of them, if
we added them all we already would have a big .reg file, that would be
aa lot of effort, and that would still cover a small fraction of what
a given person wants to avoid.

> We could also just document the feature and give some examples and leave it
> to the developer to make the changes.

Yes, I agree with that! However, it is always interesting to provide a
minimalistic eigen.reg with a few functions that come by very
frequently. I agree that ei_assign_selector::run is such a function.
There also is derived() and const_cast_derived() in MatrixBase,
_check_template_params() in Matrix...

We have started a debug/msvc/ directory in the Mercurial repository,
so I think that a minimalist .reg file with a more explicit name,
perhaps eigen_debugging_skip_functions.reg and a README, would be
welcome there. Then you can also mention that on the wiki, on
http://eigen.tuxfamily.org/index.php?title=Developer%27s_Corner
to make it more discoverable. by the way that page needs to be updated
now that eigen_autoexp_part.dat lives in Mercurial.

Benoit



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/