[eigen] MSVC debug tools

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


There is an undocumented feature in Visual Studio which let's you
avoid stepping into certain functions when you're debugging. This
could be very helpful when debugging Eigen, since you often have to
step in and out of trivial functions before getting to the real
functionality.
e.g. :
      return ei_assign_selector<Derived,OtherDerived,false>::run(this->derived(),
other.derived());
Here you would have to step into derived() twice, before getting into
the more interesting run().
The fix consists of adding the following registry key to
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\NativeDE\StepOver
      Eigen\:\:.*\:\:derived=NoStepInto
or
      Eigen\:\:.*Base\<.*\>\:\:.*Base\<.*\>=NoStepInto
which will disable stepping into any empty constructor like
MatrixBase::MatrixBase()
I have attached a registry patch, but it would be great if someone
could test it before I put it on the wiki. Also post candidates here
for the most annoying functions to be included.
You have to rename the file to .reg to use it.
For reference here is a blog post describing the feature
http://blogs.msdn.com/andypennell/archive/2004/02/06/69004.aspx.

Björn
Windows Registry Editor Version 5.00



[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\NativeDE\StepOver]

"Eigen::rows()"="Eigen\\:\\:.*\\:\\:rows=NoStepInto"

"Eigen::cols()"="Eigen\\:\\:.*\\:\\:cols=NoStepInto"

"Eigen::size()"="Eigen\\:\\:.*\\:\\:size=NoStepInto"

"Eigen::lhs()"="Eigen\\:\\:.*\\:\\:lhs=NoStepInto"

"Eigen::rhs()"="Eigen\\:\\:.*\\:\\:rhs=NoStepInto"

"Eigen::derived()"="Eigen\\:\\:.*\\:\\:derived=NoStepInto"

"Eigen empty constructors"="Eigen\\:\\:.*Base\\<.*\\>\\:\\:.*Base\\<.*\\>=NoStepInto"

"Eigen::_check_template_params"="Eigen\\:\\:.*\\:\\:_check_template_params=NoStepInto"

"Eigen::_resize_to_match"="Eigen\\:\\:.*\\:\\:_resize_to_match.*=NoStepInto"





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